{
 "cells": [
  {
   "attachments": {
    "rai_banner.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAABjAAAAGMCAIAAAD7qnwpAAAOEmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMy40IChNYWNpbnRvc2gpIgogICB4bXA6Q3JlYXRlRGF0ZT0iMjAyMi0wNy0yN1QxNzoxNzoxMC0wNTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNy0yOFQxMDoyNToxOC0wNzowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjItMDctMjhUMTA6MjU6MTgtMDc6MDAiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgZGM6Zm9ybWF0PSJhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ4YTcyZDkzLTkwMmQtNDZmMi04ZmNkLWNhYmJlZTE4ZjUwYiIKICAgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjJhM2FkYzIxLThkYTAtYzA0OC04ZmVlLWJiNmIxYjIwYzA1OCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjVlZTk1NmU2LTljMWUtNDZiZi05YzA0LTFjY2I5MjRhMmYzYiIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgdGlmZjpYUmVzb2x1dGlvbj0iMzAwLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjMwMC8xIgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOkltYWdlV2lkdGg9IjE1ODQiCiAgIHRpZmY6SW1hZ2VMZW5ndGg9IjM5NiIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTU4NCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjM5NiI+CiAgIDxwaG90b3Nob3A6VGV4dExheWVycz4KICAgIDxyZGY6QmFnPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0iLiIKICAgICAgcGhvdG9zaG9wOkxheWVyVGV4dD0iLiIvPgogICAgIDxyZGY6bGkKICAgICAgcGhvdG9zaG9wOkxheWVyTmFtZT0iQnVpbGQgRGF0YSBBcHBzICB3aXRoIEludGVsbGlnZW5jZSIKICAgICAgcGhvdG9zaG9wOkxheWVyVGV4dD0iQnVpbGQgRGF0YSBBcHBzICB3aXRoIEludGVsbGlnZW5jZSIvPgogICAgPC9yZGY6QmFnPgogICA8L3Bob3Rvc2hvcDpUZXh0TGF5ZXJzPgogICA8ZGM6dGl0bGU+CiAgICA8cmRmOkFsdD4KICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPmxpbmtlZC1pbi1kcmFmdDQ8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1ZWU5NTZlNi05YzFlLTQ2YmYtOWMwNC0xY2NiOTI0YTJmM2IiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDctMjdUMTc6MTc6MTAtMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy40IChNYWNpbnRvc2gpIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJjYjMxYzQxLTJlOTMtNDZlYS05NDlmLTlkMGJjMmY1NjlmYSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wNy0yN1QxNzoyMTozOS0wNTowMCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjQgKE1hY2ludG9zaCkiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTg2NTIwYmItMDI0Yy00MmRmLThlYWMtMjE5NGU0YWE0ZTNhIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA3LTI3VDE4OjA5OjIzLTA1OjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjMuNCAoTWFjaW50b3NoKSIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiCiAgICAgIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gZG9jdW1lbnQvdm5kLmFkb2JlLmNwc2QrZGN4IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIKICAgICAgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gZG9jdW1lbnQvdm5kLmFkb2JlLmNwc2QrZGN4IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDhhNzJkOTMtOTAyZC00NmYyLThmY2QtY2FiYmVlMThmNTBiIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA3LTI3VDE4OjA5OjIzLTA1OjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjMuNCAoTWFjaW50b3NoKSIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgRGVzaWduZXIgMS4xMC41IgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA3LTI4VDEwOjI1OjE4LTA3OjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHhtcE1NOkRlcml2ZWRGcm9tCiAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmE4NjUyMGJiLTAyNGMtNDJkZi04ZWFjLTIxOTRlNGFhNGUzYSIKICAgIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NWVlOTU2ZTYtOWMxZS00NmJmLTljMDQtMWNjYjkyNGEyZjNiIgogICAgc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjVlZTk1NmU2LTljMWUtNDZiZi05YzA0LTFjY2I5MjRhMmYzYiIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgog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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![rai_banner.png](attachment:rai_banner.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Community Detection and Group Recommendations using RelationalAI\n",
    "\n",
    "## Overview\n",
    "In this notebook, we will review how to use RelationalAI to run community detection algorithms to identify communities of customers that eat together.\n",
    "\n",
    "## What you will learn\n",
    "- How to run all sorts of graph algorithms on our data, where it already lives, to discover new insights.\n",
    "- How to visualize graphs.\n",
    "- How thanks to native applications with Snowpark Container Services, we can do all of this within the Data Cloud!\n",
    "\n",
    "***\n",
    "\n",
    "## Let's get started!\n",
    "We start by importing all the Python packages and modules that we will need.\n",
    "\n",
    "> **Note**. The last section in this notebook is an Appendix with a cell that you can run to perform all of the setup necessary to execute this notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import colorsys\n",
    "\n",
    "import relationalai as rai\n",
    "from relationalai.std import aggregates, rel\n",
    "from relationalai.std.graphs import Graph\n",
    "\n",
    "random.seed(123)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define Model in RelationalAI\n",
    "Let's define our model object. **Models** represent collections of objects. **Objects**, like Python objects, have **types** and **properties**, which we will define in a bit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = rai.Model(\"TastyBytes\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Referencing Snowflake Data\n",
    "Due to RelationalAI's tight integration with Snowflake, we can refer to data that we are streaming to our RelationalAI database by simply referring to the source:\\\n",
    "**\\<my_database>.\\<my_schema>.<my_table\\>**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "Record = model.Type(\"Record\", source=\"RAI_DEMO.TASTYBYTES.ORDERS\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's run a small query to understand the shape of our data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>1603564</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<relationalai.dsl.Context at 0x16858d710>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Count number of rows in the data\n",
    "with model.query() as select:\n",
    "    record = Record()\n",
    "    num_records = aggregates.count(record)\n",
    "    result = select(num_records)\n",
    "\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Type Declarations\n",
    "Now that we know how to refer to our data within RAI, let's define our **Types**. Types are collections of objects. You create then using the `model.Type()` method, which returns an instance of the `Type` class.\n",
    "\n",
    "Our data contains a set of **records** which are associated with a **Customer**, who buys food at a specific **Truck**. We'll describe the other types, namely  **Transaction** , **Community** and **RelevantConnection** in a little while, when we will actually be deriving this information."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "Customer = model.Type(\"Customer\")\n",
    "Truck = model.Type(\"Trucks\")\n",
    "Transaction = model.Type(\"Transaction\")\n",
    "Community = model.Type(\"Community\")\n",
    "RelevantConnection = model.Type(\"RelevantConnection\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Weaving data into our Model\n",
    "It's time to start weaving our data into our model. We do this by writing some rules. **Rules describe objects in a model and the relationships between them**. They are created using the `model.rule()` context manager.\n",
    "\n",
    "### Defining Customers\n",
    "This rule adds an object to the `Customers` type for each occurrence of a unique `customer_id`. Let's run a query to see how many customers we have in our dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>10613</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<relationalai.dsl.Context at 0x1687c0a50>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Define Customer Type\n",
    "with model.rule():\n",
    "    r = Record()\n",
    "    Customer.add(customer_id=r.customer_id)\n",
    "\n",
    "# Check total number of customers\n",
    "with model.query() as select:\n",
    "    customer = Customer()\n",
    "    num_records = aggregates.count(customer)\n",
    "    result = select(num_records)\n",
    "\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Defining Trucks\n",
    "We do the same as we just did with customers - but now for `Trucks`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<relationalai.dsl.Context at 0x1687a06d0>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Define Truck Type\n",
    "with model.rule():\n",
    "    r = Record()\n",
    "    Truck.add(truck_id=r.truck_id)\n",
    "\n",
    "# Check total number of trucks\n",
    "with model.query() as select:\n",
    "    truck = Truck()\n",
    "    num_records = aggregates.count(truck)\n",
    "    result = select(num_records)\n",
    "\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Defining Transactions\n",
    "\n",
    "\n",
    "We pull the relevant data about a `Transaction` from the `Records` in the table."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "with model.rule():\n",
    "    r = Record()\n",
    "    Transaction.add(\n",
    "        customer_id=r.customer_id,\n",
    "        order_id=r.order_id,\n",
    "        truck_id=r.truck_id,\n",
    "        order_ts=r.order_ts,\n",
    "        order_ts_seconds=r.order_ts_seconds,\n",
    "        location_id=r.location_id,\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding Connections\n",
    "Identify pairs of transactions occurring within a 20-minute interval in the same truck.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "with model.rule():\n",
    "    t1 = Transaction()\n",
    "    t2 = Transaction()\n",
    "\n",
    "    t1.truck_id == t2.truck_id\n",
    "    t1.customer_id != t2.customer_id\n",
    "    rel.abs(t1.order_ts_seconds - t2.order_ts_seconds) <= 1200\n",
    "\n",
    "    t1.connected.add(t2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>1214311</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<relationalai.dsl.Context at 0x168809f90>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "with model.query() as select:\n",
    "    t = Transaction()\n",
    "    num_records = aggregates.count(t.customer_id, t.order_ts, t.connected, t.connected.customer_id)\n",
    "    result = select(num_records)\n",
    "\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reducing connections to 'relevant' ones\n",
    "To be able to assess the strength of a connection, we first need to know how often a specific connection occurred. We define a `RelevantConnection` as a connection where two customers have placed orders together more than once. Let's see how many relevant connections we have in our dataset.\n",
    "\n",
    "If you do not see any output from the result query below, you most likely have the original TastyBytes dataset. Try lowering the filter line ( total_connection > 4 ) to a smaller number like 1 or 2. Reach out to RAI if you would like is to share the custom TastyBytes dataset that shows a richer customer social graph. We can use Snowflake's Data Sharing to quickly give you access."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "with model.rule():\n",
    "    t = Transaction()\n",
    "    total_connections = aggregates.count(\n",
    "        t, per=[t.customer_id, t.connected.customer_id]\n",
    "    )\n",
    "    total_connections > 4\n",
    "    RelevantConnection.add(\n",
    "        customer_1=Customer(customer_id=t.customer_id),\n",
    "        customer_2=Customer(customer_id=t.connected.customer_id),\n",
    "        total_connections=total_connections,\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>9704</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<relationalai.dsl.Context at 0x142b73750>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get the total occurrences where pairs of customers coexisted together more than once\n",
    "with model.query() as select:\n",
    "    relevant_con = RelevantConnection()\n",
    "    num_records = aggregates.count(relevant_con)\n",
    "    result = select(num_records)\n",
    "\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Community Detection\n",
    "Let's build out our community graph. Our **nodes** are our customers. We use the relevant connections between customers, which we derived earlier, as the **edges** of our graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "community_graph = Graph(model, undirected=True)\n",
    "\n",
    "# Add edges to the graph between customers / Nodes will be added automatically\n",
    "with model.rule():\n",
    "    relevant_con = RelevantConnection()\n",
    "    community_graph.Edge.add(\n",
    "        relevant_con.customer_1,\n",
    "        relevant_con.customer_2,\n",
    "        weight=relevant_con.total_connections,\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Detecting communities using Louvain\n",
    "Let's use the **Louvain** algorithm to detect communities within our graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "with model.rule():\n",
    "    customer = Customer()\n",
    "    community_id = community_graph.compute.louvain(customer)\n",
    "    customer.set(community_id=community_id)\n",
    "\n",
    "    community_graph.Node(customer).set(\n",
    "        community_id=community_id,\n",
    "        customer_id=customer.customer_id\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize Graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def generate_random_colors(num_colors):\n",
    "    \"\"\"generate random color for each group in large graph.\"\"\"\n",
    "    colors = []\n",
    "    for i in range(num_colors):\n",
    "        hue = random.random()\n",
    "        # adjust for better palette\n",
    "        saturation = random.uniform(0.5, 1.0)\n",
    "        lightness = random.uniform(0.4, 0.8)\n",
    "\n",
    "        rgb_color = colorsys.hls_to_rgb(hue, lightness, saturation)\n",
    "        colors.append('#%02x%02x%02x' % tuple(int(255 * x) for x in rgb_color))\n",
    "    return colors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of nodes: 3493, Number of edges: 4939\n",
      "Number of communities: 555\n"
     ]
    }
   ],
   "source": [
    "data = community_graph.fetch()\n",
    "\n",
    "num_nodes = len(data[\"nodes\"])\n",
    "num_edges = len(data[\"edges\"])\n",
    "print(f\"Number of nodes: {num_nodes}, Number of edges: {num_edges}\")\n",
    "\n",
    "community_set = {node['community_id'] for node in data['nodes'].values() if 'community_id' in node}\n",
    "num_communities = len(community_set)\n",
    "print(f\"Number of communities: {num_communities}\")\n",
    "\n",
    "random_colors = generate_random_colors(num_communities)\n",
    "\n",
    "community_colors = {}\n",
    "for i, community in enumerate(community_set):\n",
    "    community_colors[community] = random_colors[i]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "  <style>\n",
       "    /* Main divisions */\n",
       "    #iK7xgtGfFHVbMnp3n-main-div {\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "      padding: 3px;\n",
       "      background-color: white;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-left-div {\n",
       "      float: left;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-right-div {\n",
       "      float: left;\n",
       "      height: 100%;\n",
       "      display: none;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-right-inner-div {\n",
       "      padding-left: 5px;\n",
       "      padding-right: 2px;\n",
       "      overflow-x: hidden;\n",
       "      overflow-y: auto;\n",
       "      height: 100%;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "\n",
       "    /* Graph and details (contained in left-inner-div) */\n",
       "    #iK7xgtGfFHVbMnp3n-graph-div {\n",
       "      overflow: hidden;\n",
       "      resize: vertical;\n",
       "      position: relative;\n",
       "      border: 1px solid #ccc;\n",
       "      border-radius: 4px;\n",
       "      box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);\n",
       "      display: none;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-details-div {\n",
       "      overflow: auto;\n",
       "      resize: vertical;\n",
       "      margin-top: 5px;\n",
       "      border: 1px solid #ccc;\n",
       "      border-radius: 4px;\n",
       "      box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);\n",
       "      display: none;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-details-head {\n",
       "      user-select: none;\n",
       "      padding-left: 4px !important;\n",
       "      padding-top: 4px !important;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: gray;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-details-body {\n",
       "      padding: 10px;\n",
       "      padding-top: 6px;\n",
       "      font-size: 10px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "\n",
       "    /* Control menu (contained in right-inner-div) */\n",
       "    .iK7xgtGfFHVbMnp3n-menu-item-head {\n",
       "      font-size: 11px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      cursor: pointer;\n",
       "      padding-left: 5px;\n",
       "      padding-right: 0px;\n",
       "      padding-top: 5px;\n",
       "      padding-bottom: 5px;\n",
       "      margin-bottom: 5px;\n",
       "      border-radius: 4px;\n",
       "      border: 1px solid #ccc;\n",
       "      box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2);\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-menu-item-body {\n",
       "      margin-left: 5px;\n",
       "      margin-bottom: 10px;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-menu-subitem-head {\n",
       "      font-size: 9px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      font-weight: 600;\n",
       "      color: #006429;\n",
       "      cursor: default;\n",
       "      margin-bottom: 2px;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-menu-subitem-body {\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      margin-left: 7px;\n",
       "      margin-bottom: 5px;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-labeled-input {\n",
       "      all: initial;\n",
       "      display: flex;\n",
       "      align-items: center;\n",
       "      margin-top: 1px;\n",
       "      margin-bottom: 1px;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-label {\n",
       "      all: initial;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      font-style: italic;\n",
       "      cursor: pointer;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-slider {\n",
       "      width: 100%;\n",
       "      margin-bottom: 2px;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-slider::-moz-focus-outer {\n",
       "      border: 0;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-slider-text-left {\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      font-style: italic;\n",
       "      color: black;\n",
       "      float: left;\n",
       "      margin-top: 2px;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-slider-text-right {\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      float: right;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-checkbox {\n",
       "      margin-left: 0px !important;\n",
       "      margin-right: 4px !important;\n",
       "      margin-top: 2px !important;\n",
       "      margin-bottom: 2px !important;\n",
       "      padding: 0px !important;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-select {\n",
       "      cursor: pointer;\n",
       "      outline: none;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      background-color: #f5f5f5;\n",
       "      width: 100%;\n",
       "      padding-top: 4px !important;\n",
       "      padding-bottom: 4px !important;\n",
       "      padding-left: 5px;\n",
       "      padding-right: 10px;\n",
       "      margin-right: 5px;\n",
       "      margin-top: 2px;\n",
       "      margin-bottom: 2px;\n",
       "      border-radius: 4px;\n",
       "      border: 1.2px solid #bbb;\n",
       "      box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.04);\n",
       "\n",
       "      -moz-appearance: none;\n",
       "      -webkit-appearance: none;\n",
       "      appearance: none;\n",
       "      background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuNCIgaGVpZ2h0PSIyOTIuNCI+PHBhdGggZmlsbD0iIzAwMDAwMCIgZD0iTSAtNS4yMDY0NjJlLTYsNjQuNTcyNjU2IDI5Mi4zOTk5OSw2NC41NzI2NTQgMTQ2LjE5OTk3LDIzMy42Mjg0NyAtNS4yMDY0NjJlLTYsNjQuNTcyNjU2Ii8+PC9zdmc+Cg==');\n",
       "      background-repeat: no-repeat;\n",
       "      background-position: right 4px top 50%;\n",
       "      background-size: 6px;\n",
       "    }\n",
       "    @-moz-document url-prefix() {\n",
       "      /* Dirty hack to remove dotted border on focus */\n",
       "      .iK7xgtGfFHVbMnp3n-select {\n",
       "        color: transparent !important;\n",
       "        text-shadow: 0 0 0 black !important;\n",
       "      }\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-select:after {\n",
       "      cursor: pointer;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-button {\n",
       "      cursor: pointer;\n",
       "      outline: none;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      background-color: #f2f2f2;\n",
       "      padding-top: 4px !important;\n",
       "      padding-bottom: 4px !important;\n",
       "      padding-left: 10px;\n",
       "      padding-right: 10px;\n",
       "      margin-top: 2px;\n",
       "      margin-bottom: 2px;\n",
       "      border-radius: 4px;\n",
       "      border: 1.2px solid #bbb;\n",
       "      box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.04);\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-button:hover {\n",
       "      border: 1.2px solid #999;\n",
       "      background-color: #f2f2f2;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-button:active {\n",
       "      background-color: #ddd;\n",
       "    }\n",
       "    .iK7xgtGfFHVbMnp3n-button::-moz-focus-inner {\n",
       "      border: 0;\n",
       "    }\n",
       "    /* Hidden menu items */\n",
       "    #iK7xgtGfFHVbMnp3n-graph-select-div {\n",
       "      display: none;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-node-size-norm-div {\n",
       "      display: none;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-edge-size-norm-div {\n",
       "      display: none;\n",
       "    }\n",
       "\n",
       "    /* Graph */\n",
       "    #iK7xgtGfFHVbMnp3n-tooltip-div {\n",
       "      font-size: 10px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      z-index: 42001;\n",
       "      opacity: 0;\n",
       "      visibility: hidden;\n",
       "      position: absolute !important;\n",
       "      max-width: 40%;\n",
       "      padding: 5px;\n",
       "      white-space: pre-wrap;\n",
       "      word-break: break-word;\n",
       "      color: black;\n",
       "      background-color: white;\n",
       "      border-radius: 4px;\n",
       "      border: 1px solid #ccc;\n",
       "      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-menu-toggle-button, #iK7xgtGfFHVbMnp3n-details-toggle-button, #iK7xgtGfFHVbMnp3n-progress-container {\n",
       "      font-size: 14px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      z-index: 42000;\n",
       "      cursor: pointer;\n",
       "      position: absolute;\n",
       "      background-color: white;\n",
       "      border-radius: 4px;\n",
       "      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-menu-toggle-button {\n",
       "      top: 0;\n",
       "      right: 0;\n",
       "      padding-left: 6px;\n",
       "      padding-right: 6px;\n",
       "      padding-top: 12px;\n",
       "      padding-bottom: 12px;\n",
       "      border-top: 0px;\n",
       "      border-right: 0px;\n",
       "      border-bottom: 1px solid #ccc;\n",
       "      border-left: 1px solid #ccc;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-details-toggle-button {\n",
       "      bottom: 0;\n",
       "      left: 0;\n",
       "      padding-left: 19px;\n",
       "      padding-right: 19px;\n",
       "      padding-top: 0.5px;\n",
       "      padding-bottom: 2px;\n",
       "      border-top: 1px solid #ccc;\n",
       "      border-right: 1px solid #ccc;\n",
       "      border-bottom: 0px;\n",
       "      border-left: 0px;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-progress-container {\n",
       "      font-size: 10px;\n",
       "      text-align: center;\n",
       "      top: 46%;\n",
       "      left: 15%;\n",
       "      width: 70%;\n",
       "      padding: 8px;\n",
       "      border: none;\n",
       "      box-shadow: none;\n",
       "    }\n",
       "\n",
       "    /* Details */\n",
       "    #iK7xgtGfFHVbMnp3n-details-user-provided {\n",
       "      margin-top: 3px;\n",
       "      padding-top: 3.5px;\n",
       "      border-top: 0.5px dashed black;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "      white-space: pre-wrap;\n",
       "      word-break: break-word;\n",
       "    }\n",
       "    #iK7xgtGfFHVbMnp3n-details-user-provided ul {\n",
       "      list-style-position: inside;\n",
       "      padding-left: 6px;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "  <div id=\"iK7xgtGfFHVbMnp3n-main-div\">\n",
       "    <div id=\"iK7xgtGfFHVbMnp3n-tooltip-div\"></div>\n",
       "\n",
       "    <div id=\"iK7xgtGfFHVbMnp3n-left-div\">\n",
       "      <div id=\"iK7xgtGfFHVbMnp3n-left-inner-div\">\n",
       "        <div id=\"iK7xgtGfFHVbMnp3n-graph-div\"></div>\n",
       "        <div id=\"iK7xgtGfFHVbMnp3n-details-div\">\n",
       "          <div id=\"iK7xgtGfFHVbMnp3n-details-head\">\n",
       "            Details for selected element\n",
       "          </div>\n",
       "          <div id=\"iK7xgtGfFHVbMnp3n-details-body\">\n",
       "          </div>\n",
       "        </div>\n",
       "      </div>\n",
       "    </div>\n",
       "\n",
       "    <div id=\"iK7xgtGfFHVbMnp3n-right-div\">\n",
       "      <div id=\"iK7xgtGfFHVbMnp3n-right-inner-div\">\n",
       "        <!-- Menu: General -->\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-general-head\">\n",
       "          General\n",
       "        </div>\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-general-body\">\n",
       "          <!-- Sub-menu: State -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              App state\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <button class=\"iK7xgtGfFHVbMnp3n-button\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-reset\"\n",
       "                      type=\"button\">Reset</button>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Display mode (fullscreen or not) -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Display mode\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <button class=\"iK7xgtGfFHVbMnp3n-button\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-fullscreen-button\"\n",
       "                      type=\"button\">Enter full screen</button>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Export -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Export\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <button class=\"iK7xgtGfFHVbMnp3n-button\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-png\"\n",
       "                      type=\"button\">PNG</button>\n",
       "              <button class=\"iK7xgtGfFHVbMnp3n-button\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-jpg\"\n",
       "                      type=\"button\">JPG</button>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Data -->\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-data-head\">\n",
       "          Data selection\n",
       "        </div>\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-data-body\">\n",
       "          <!-- Sub-menu: Graph (only shown if multiple graphs in data) -->\n",
       "          <div id=\"iK7xgtGfFHVbMnp3n-graph-select-div\">\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Graph\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <select class=\"iK7xgtGfFHVbMnp3n-select\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-graph-select\"></select>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Node label text -->\n",
       "          <div id=\"iK7xgtGfFHVbMnp3n-node-label-data-source-div\">\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Node label text\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <select class=\"iK7xgtGfFHVbMnp3n-select\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-label-data-source-select\"></select>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Node size -->\n",
       "          <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "            Node size\n",
       "          </div>\n",
       "          <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "            <div>\n",
       "              <select class=\"iK7xgtGfFHVbMnp3n-select\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-size-data-source-select\"></select>\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "              <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                     id=\"iK7xgtGfFHVbMnp3n-node-size-normalization-checkbox\"\n",
       "                     type=\"checkbox\">\n",
       "              <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                     for=\"iK7xgtGfFHVbMnp3n-node-size-normalization-checkbox\">Normalize</label>\n",
       "            </div>\n",
       "            <div id=\"iK7xgtGfFHVbMnp3n-node-size-norm-div\">\n",
       "              <div>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Minimum</span>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-size-normalization-min-text\"></span>\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-size-normalization-min-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"300.0\" step=\"0.01\">\n",
       "              </div>\n",
       "              <div>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Maximum</span>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-size-normalization-max-text\"></span>\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-size-normalization-max-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"300.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Edge size -->\n",
       "          <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "            Edge size\n",
       "          </div>\n",
       "          <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "            <div>\n",
       "              <select class=\"iK7xgtGfFHVbMnp3n-select\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-edge-size-data-source-select\"></select>\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "              <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                     id=\"iK7xgtGfFHVbMnp3n-edge-size-normalization-checkbox\"\n",
       "                     type=\"checkbox\">\n",
       "              <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                     for=\"iK7xgtGfFHVbMnp3n-edge-size-normalization-checkbox\">Normalize</label>\n",
       "            </div>\n",
       "            <div id=\"iK7xgtGfFHVbMnp3n-edge-size-norm-div\">\n",
       "              <div>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Minimum</span>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-edge-size-normalization-min-text\"></span>\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-edge-size-normalization-min-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"50.0\" step=\"0.01\">\n",
       "              </div>\n",
       "              <div>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Maximum</span>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-edge-size-normalization-max-text\"></span>\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-edge-size-normalization-max-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"50.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Nodes -->\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-node-head\">\n",
       "          Nodes\n",
       "        </div>\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-node-body\">\n",
       "          <!-- Sub-menu: Visibility -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Visibility\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-node-checkbox\">Show nodes</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Size -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Size\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Scaling factor</span>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-size-factor-text\"></span>\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-size-factor-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Position -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Position\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <button class=\"iK7xgtGfFHVbMnp3n-button\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-release-button\"\n",
       "                      type=\"button\">Release fixed nodes</button>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Drag behavior -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Drag behavior\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-drag-fix-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-node-drag-fix-checkbox\">Fix node position</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Hover behavior -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Hover behavior\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-hover-tooltip-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-node-hover-tooltip-checkbox\">Show tooltips (if provided)</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Node images -->\n",
       "        <div id=\"iK7xgtGfFHVbMnp3n-node-image-meta-control\">\n",
       "          <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "               id=\"iK7xgtGfFHVbMnp3n-node-image-head\">\n",
       "            Node images\n",
       "          </div>\n",
       "          <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "               id=\"iK7xgtGfFHVbMnp3n-node-image-body\">\n",
       "            <!-- Sub-menu: Visibility -->\n",
       "            <div>\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "                Visibility\n",
       "              </div>\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "                <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-node-image-checkbox\"\n",
       "                         type=\"checkbox\">\n",
       "                  <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                         for=\"iK7xgtGfFHVbMnp3n-node-image-checkbox\">Show node images</label>\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "            <!-- Sub-menu: Size -->\n",
       "            <div>\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "                Size\n",
       "              </div>\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Scaling factor</span>\n",
       "                <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                      id=\"iK7xgtGfFHVbMnp3n-node-image-size-factor-text\"></span>\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-image-size-factor-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Node labels -->\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-node-label-head\">\n",
       "          Node labels\n",
       "        </div>\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-node-label-body\">\n",
       "          <!-- Sub-menu: Visibility -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Visibility\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-label-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-node-label-checkbox\">Show node labels</label>\n",
       "              </div>\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-node-label-border-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-node-label-border-checkbox\">Show borders</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Size -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Size\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Scaling factor</span>\n",
       "              <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                    id=\"iK7xgtGfFHVbMnp3n-node-label-size-factor-text\"></span>\n",
       "              <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                     id=\"iK7xgtGfFHVbMnp3n-node-label-size-factor-slider\"\n",
       "                     type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Edges -->\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-edge-head\">\n",
       "          Edges\n",
       "        </div>\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-edge-body\">\n",
       "          <!-- Sub-menu: Visibility -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Visibility\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-edge-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-edge-checkbox\">Show edges</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Size -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Size\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Scaling factor</span>\n",
       "              <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                    id=\"iK7xgtGfFHVbMnp3n-edge-size-factor-text\"></span>\n",
       "              <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                     id=\"iK7xgtGfFHVbMnp3n-edge-size-factor-slider\"\n",
       "                     type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Form -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Form\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Curvature</span>\n",
       "              <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                    id=\"iK7xgtGfFHVbMnp3n-edge-curvature-text\"></span>\n",
       "              <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                     id=\"iK7xgtGfFHVbMnp3n-edge-curvature-slider\"\n",
       "                     type=\"range\" min=\"-1.2\" max=\"1.2\" step=\"0.02\">\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Hover behavior -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Hover behavior\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-edge-hover-tooltip-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-edge-hover-tooltip-checkbox\">Show tooltips (if provided)</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Layout algorithm -->\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-head\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-layout-algorithm-head\">\n",
       "          Layout algorithm\n",
       "        </div>\n",
       "        <div class=\"iK7xgtGfFHVbMnp3n-menu-item-body\"\n",
       "             id=\"iK7xgtGfFHVbMnp3n-layout-algorithm-body\">\n",
       "\n",
       "          <!-- Sub-menu: Simulation -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Simulation\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-simulation-active-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-simulation-active-checkbox\">Active</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Many-body force -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Many-body force\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-many-body-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-many-body-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iK7xgtGfFHVbMnp3n-many-body-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-many-body-force-strength-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-many-body-force-strength-slider\"\n",
       "                         type=\"range\" min=\"-2000.0\" max=\"200.0\" step=\"0.01\"\n",
       "                         style=\"direction:rtl;\">\n",
       "                </div>\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Theta</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-many-body-force-theta-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-many-body-force-theta-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"2.0\" step=\"0.001\">\n",
       "                </div>\n",
       "                <div style=\"margin-top: 6px;\">\n",
       "                  <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                    <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-checkbox\"\n",
       "                         type=\"checkbox\">\n",
       "                    <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                           for=\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-checkbox\">Use minimum distance</label>\n",
       "                  </div>\n",
       "                  <div id=\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-div\">\n",
       "                    <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Min</span>\n",
       "                    <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                          id=\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-text\"></span>\n",
       "                    <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                           id=\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-slider\"\n",
       "                           type=\"range\" min=\"0.01\" max=\"10000.0\" step=\"0.01\">\n",
       "                  </div>\n",
       "                </div>\n",
       "                <div style=\"margin-top: 6px;\">\n",
       "                  <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                    <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-checkbox\"\n",
       "                         type=\"checkbox\">\n",
       "                    <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                           for=\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-checkbox\">Use maximum distance</label>\n",
       "                  </div>\n",
       "                  <div id=\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-div\">\n",
       "                    <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Max</span>\n",
       "                    <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                          id=\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-text\"></span>\n",
       "                    <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                           id=\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-slider\"\n",
       "                           type=\"range\" min=\"0.01\" max=\"10000.0\" step=\"0.01\">\n",
       "                  </div>\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Links force -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Links force\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-links-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-links-force-checkbox\">On</label>\n",
       "                </label>\n",
       "              </div>\n",
       "              <div id=\"iK7xgtGfFHVbMnp3n-links-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Distance</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-links-force-distance-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-links-force-distance-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1000.0\" step=\"0.01\">\n",
       "                </div>\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-links-force-strength-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-links-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: x-positioning force -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              x-positioning force\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-x-positioning-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-x-positioning-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iK7xgtGfFHVbMnp3n-x-positioning-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-x-positioning-force-strength-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-x-positioning-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: y-positioning force -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              y-positioning force\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-y-positioning-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-y-positioning-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iK7xgtGfFHVbMnp3n-y-positioning-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-y-positioning-force-strength-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-y-positioning-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: z-positioning force -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              z-positioning force\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-z-positioning-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-z-positioning-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iK7xgtGfFHVbMnp3n-z-positioning-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iK7xgtGfFHVbMnp3n-slider-text-right\"\n",
       "                        id=\"iK7xgtGfFHVbMnp3n-z-positioning-force-strength-text\"></span>\n",
       "                  <input class=\"iK7xgtGfFHVbMnp3n-slider\"\n",
       "                         id=\"iK7xgtGfFHVbMnp3n-z-positioning-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Centering force -->\n",
       "          <div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-head\">\n",
       "              Centering force\n",
       "            </div>\n",
       "            <div class=\"iK7xgtGfFHVbMnp3n-menu-subitem-body\">\n",
       "              <div class=\"iK7xgtGfFHVbMnp3n-labeled-input\">\n",
       "                <input class=\"iK7xgtGfFHVbMnp3n-checkbox\"\n",
       "                       id=\"iK7xgtGfFHVbMnp3n-centering-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iK7xgtGfFHVbMnp3n-label\"\n",
       "                       for=\"iK7xgtGfFHVbMnp3n-centering-force-checkbox\">On</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "      </div>\n",
       "    </div>\n",
       "  </div>\n",
       "\n",
       "  <script charset=\"utf-8\" type=\"text/javascript\">\n",
       "    if(typeof(require) === \"undefined\"){\n",
       "      // Project sites:    https://requirejs.org\n",
       "//                   https://github.com/requirejs/requirejs\n",
       "// Code source:      https://requirejs.org/docs/release/2.3.6/minified/require.js - accessed on 19.11.2020\n",
       "// Original license: MIT\n",
       "// Code changes:     None\n",
       "\n",
       "/** vim: et:ts=4:sw=4:sts=4\n",
       " * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.\n",
       " * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE\n",
       " */\n",
       "var requirejs,require,define;!function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version=\"2.3.6\",commentRegExp=/\\/\\*[\\s\\S]*?\\*\\/|([^:\"'=]|^)\\/\\/.*$/gm,cjsRequireRegExp=/[^.]\\s*require\\s*\\(\\s*[\"']([^'\"\\s]+)[\"']\\s*\\)/g,jsSuffixRegExp=/\\.js$/,currDirRegExp=/^\\.\\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!(\"undefined\"==typeof window||\"undefined\"==typeof navigator||!window.document),isWebWorker=!isBrowser&&\"undefined\"!=typeof importScripts,readyRegExp=isBrowser&&\"PLAYSTATION 3\"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName=\"_\",isOpera=\"undefined\"!=typeof opera&&\"[object Opera]\"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||\"\"}function isFunction(e){return\"[object Function]\"===ostring.call(e)}function isArray(e){return\"[object Array]\"===ostring.call(e)}function each(e,t){var i;if(e)for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}function eachReverse(e,t){var i;if(e)for(i=e.length-1;-1<i&&(!e[i]||!t(e[i],i,e));i-=1);}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(i,e,r,n){return e&&eachProp(e,function(e,t){!r&&hasProp(i,t)||(!n||\"object\"!=typeof e||!e||isArray(e)||isFunction(e)||e instanceof RegExp?i[t]=e:(i[t]||(i[t]={}),mixin(i[t],e,r,n)))}),i}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName(\"script\")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split(\".\"),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+\"\\nhttps://requirejs.org/docs/errors.html#\"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||\"string\"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),(n=getOwn(contexts,a))||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\\/|:|\\?|\\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each([\"toUrl\",\"undef\",\"defined\",\"specified\"],function(t){req[t]=function(){var e=contexts[defContextName];return e.require[t].apply(e,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName(\"head\")[0],baseElement=document.getElementsByTagName(\"base\")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"html:script\"):document.createElement(\"script\");return r.type=e.scriptType||\"text/javascript\",r.charset=\"utf-8\",r.async=!0,r},req.load=function(t,i,r){var e,n=t&&t.config||{};if(isBrowser)return(e=req.createNode(n,i,r)).setAttribute(\"data-requirecontext\",t.contextName),e.setAttribute(\"data-requiremodule\",i),!e.attachEvent||e.attachEvent.toString&&e.attachEvent.toString().indexOf(\"[native code\")<0||isOpera?(e.addEventListener(\"load\",t.onScriptLoad,!1),e.addEventListener(\"error\",t.onScriptError,!1)):(useInteractive=!0,e.attachEvent(\"onreadystatechange\",t.onScriptLoad)),e.src=r,n.onNodeCreated&&n.onNodeCreated(e,n,i,r),currentlyAddingScript=e,baseElement?head.insertBefore(e,baseElement):head.appendChild(e),currentlyAddingScript=null,e;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),t.completeLoad(i)}catch(e){t.onError(makeError(\"importscripts\",\"importScripts failed for \"+i+\" at \"+r,e,[i]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute(\"data-main\"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf(\"!\")||(mainScript=(src=mainScript.split(\"/\")).pop(),subPath=src.length?src.join(\"/\")+\"/\":\"./\",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,\"\"),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,i,t){var r,n;\"string\"!=typeof e&&(t=i,i=e,e=null),isArray(i)||(t=i,i=null),!i&&isFunction(t)&&(i=[],t.length&&(t.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,t){i.push(t)}),i=(1===t.length?[\"require\"]:[\"require\",\"exports\",\"module\"]).concat(i))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute(\"data-requiremodule\")),n=contexts[r.getAttribute(\"data-requirecontext\")]),n?(n.defQueue.push([e,i,t]),n.defQueueMap[e]=!0):globalDefQueue.push([e,i,t])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}function newContext(u){var i,e,l,c,d,g={waitSeconds:7,baseUrl:\"./\",paths:{},bundles:{},pkgs:{},shim:{},config:{}},p={},f={},r={},h=[],m={},n={},v={},x=1,b=1;function q(e,t,i){var r,n,o,a,s,u,c,d,p,f,l=t&&t.split(\"/\"),h=g.map,m=h&&h[\"*\"];if(e&&(u=(e=e.split(\"/\")).length-1,g.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].replace(jsSuffixRegExp,\"\")),\".\"===e[0].charAt(0)&&l&&(e=l.slice(0,l.length-1).concat(e)),function(e){var t,i;for(t=0;t<e.length;t++)if(\".\"===(i=e[t]))e.splice(t,1),t-=1;else if(\"..\"===i){if(0===t||1===t&&\"..\"===e[2]||\"..\"===e[t-1])continue;0<t&&(e.splice(t-1,2),t-=2)}}(e),e=e.join(\"/\")),i&&h&&(l||m)){e:for(o=(n=e.split(\"/\")).length;0<o;o-=1){if(s=n.slice(0,o).join(\"/\"),l)for(a=l.length;0<a;a-=1)if((r=getOwn(h,l.slice(0,a).join(\"/\")))&&(r=getOwn(r,s))){c=r,d=o;break e}!p&&m&&getOwn(m,s)&&(p=getOwn(m,s),f=o)}!c&&p&&(c=p,d=f),c&&(n.splice(0,d,c),e=n.join(\"/\"))}return getOwn(g.pkgs,e)||e}function E(t){isBrowser&&each(scripts(),function(e){if(e.getAttribute(\"data-requiremodule\")===t&&e.getAttribute(\"data-requirecontext\")===l.contextName)return e.parentNode.removeChild(e),!0})}function w(e){var t=getOwn(g.paths,e);if(t&&isArray(t)&&1<t.length)return t.shift(),l.require.undef(e),l.makeRequire(null,{skipMap:!0})([e]),!0}function y(e){var t,i=e?e.indexOf(\"!\"):-1;return-1<i&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function S(e,t,i,r){var n,o,a,s,u=null,c=t?t.name:null,d=e,p=!0,f=\"\";return e||(p=!1,e=\"_@r\"+(x+=1)),u=(s=y(e))[0],e=s[1],u&&(u=q(u,c,r),o=getOwn(m,u)),e&&(u?f=i?e:o&&o.normalize?o.normalize(e,function(e){return q(e,c,r)}):-1===e.indexOf(\"!\")?q(e,c,r):e:(u=(s=y(f=q(e,c,r)))[0],f=s[1],i=!0,n=l.nameToUrl(f))),{prefix:u,name:f,parentMap:t,unnormalized:!!(a=!u||o||i?\"\":\"_unnormalized\"+(b+=1)),url:n,originalName:d,isDefine:p,id:(u?u+\"!\"+f:f)+a}}function k(e){var t=e.id,i=getOwn(p,t);return i||(i=p[t]=new l.Module(e)),i}function M(e,t,i){var r=e.id,n=getOwn(p,r);!hasProp(m,r)||n&&!n.defineEmitComplete?(n=k(e)).error&&\"error\"===t?i(n.error):n.on(t,i):\"defined\"===t&&i(m[r])}function O(i,e){var t=i.requireModules,r=!1;e?e(i):(each(t,function(e){var t=getOwn(p,e);t&&(t.error=i,t.events.error&&(r=!0,t.emit(\"error\",i)))}),r||req.onError(i))}function j(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];\"string\"==typeof t&&(l.defQueueMap[t]=!0),h.push(e)}),globalDefQueue=[])}function P(e){delete p[e],delete f[e]}function R(){var e,r,t=1e3*g.waitSeconds,n=t&&l.startTime+t<(new Date).getTime(),o=[],a=[],s=!1,u=!0;if(!i){if(i=!0,eachProp(f,function(e){var t=e.map,i=t.id;if(e.enabled&&(t.isDefine||a.push(e),!e.error))if(!e.inited&&n)w(i)?s=r=!0:(o.push(i),E(i));else if(!e.inited&&e.fetched&&t.isDefine&&(s=!0,!t.prefix))return u=!1}),n&&o.length)return(e=makeError(\"timeout\",\"Load timeout for modules: \"+o,null,o)).contextName=l.contextName,O(e);u&&each(a,function(e){!function n(o,a,s){var e=o.map.id;o.error?o.emit(\"error\",o.error):(a[e]=!0,each(o.depMaps,function(e,t){var i=e.id,r=getOwn(p,i);!r||o.depMatched[t]||s[i]||(getOwn(a,i)?(o.defineDep(t,m[i]),o.check()):n(r,a,s))}),s[e]=!0)}(e,{},{})}),n&&!r||!s||!isBrowser&&!isWebWorker||d||(d=setTimeout(function(){d=0,R()},50)),i=!1}}function a(e){hasProp(m,e[0])||k(S(e[0],null,!0)).init(e[1],e[2])}function o(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function s(e){var t=e.currentTarget||e.srcElement;return o(t,l.onScriptLoad,\"load\",\"onreadystatechange\"),o(t,l.onScriptError,\"error\"),{node:t,id:t&&t.getAttribute(\"data-requiremodule\")}}function T(){var e;for(j();h.length;){if(null===(e=h.shift())[0])return O(makeError(\"mismatch\",\"Mismatched anonymous define() module: \"+e[e.length-1]));a(e)}l.defQueueMap={}}return c={require:function(e){return e.require?e.require:e.require=l.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?m[e.map.id]=e.exports:e.exports=m[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(g.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(e=function(e){this.events=getOwn(r,e.id)||{},this.map=e,this.shim=getOwn(g.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on(\"error\",i):this.events.error&&(i=bind(this,function(e){this.emit(\"error\",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,l.startTime=(new Date).getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();l.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;n[e]||(n[e]=!0,l.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var t,e,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit(\"error\",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=l.execCb(i,o,r,n)}catch(e){t=e}else n=l.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&((e=this.module)?n=e.exports:this.usingExports&&(n=this.exports)),t)return t.requireMap=this.map,t.requireModules=this.map.isDefine?[this.map.id]:null,t.requireType=this.map.isDefine?\"define\":\"require\",O(this.error=t)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(m[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(l,this.map,a)}P(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit(\"defined\",this.exports),this.defineEmitComplete=!0)}}else hasProp(l.defQueueMap,i)||this.fetch()}},callPlugin:function(){var u=this.map,c=u.id,e=S(u.prefix);this.depMaps.push(e),M(e,\"defined\",bind(this,function(e){var o,t,i,r=getOwn(v,this.map.id),n=this.map.name,a=this.map.parentMap?this.map.parentMap.name:null,s=l.makeRequire(u.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(e.normalize&&(n=e.normalize(n,function(e){return q(e,a,!0)})||\"\"),M(t=S(u.prefix+\"!\"+n,this.map.parentMap,!0),\"defined\",bind(this,function(e){this.map.normalizedMap=t,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),void((i=getOwn(p,t.id))&&(this.depMaps.push(t),this.events.error&&i.on(\"error\",bind(this,function(e){this.emit(\"error\",e)})),i.enable()))):r?(this.map.url=l.nameToUrl(r),void this.load()):((o=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,(this.error=e).requireModules=[c],eachProp(p,function(e){0===e.map.id.indexOf(c+\"_unnormalized\")&&P(e.map.id)}),O(e)}),o.fromText=bind(this,function(e,t){var i=u.name,r=S(i),n=useInteractive;t&&(e=t),n&&(useInteractive=!1),k(r),hasProp(g.config,c)&&(g.config[i]=g.config[c]);try{req.exec(e)}catch(e){return O(makeError(\"fromtexteval\",\"fromText eval for \"+c+\" failed: \"+e,e,[c]))}n&&(useInteractive=!0),this.depMaps.push(r),l.completeLoad(i),s([i],o)}),void e.load(u.name,s,o,g))})),l.enable(e,this),this.pluginMaps[e.id]=e},enable:function(){(f[this.map.id]=this).enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if(\"string\"==typeof e){if(e=S(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(c,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,M(e,\"defined\",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?M(e,\"error\",bind(this,this.errback)):this.events.error&&M(e,\"error\",bind(this,function(e){this.emit(\"error\",e)}))}i=e.id,r=p[i],hasProp(c,i)||!r||r.enabled||l.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(p,e.id);t&&!t.enabled&&l.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),\"error\"===e&&delete this.events[e]}},(l={config:g,contextName:u,registry:p,defined:m,urlFetched:n,defQueue:h,defQueueMap:{},Module:e,makeModuleMap:S,nextTick:req.nextTick,onError:O,configure:function(e){if(e.baseUrl&&\"/\"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+=\"/\"),\"string\"==typeof e.urlArgs){var i=e.urlArgs;e.urlArgs=function(e,t){return(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}}var r=g.shim,n={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){n[t]?(g[t]||(g[t]={}),mixin(g[t],e,!0,!0)):g[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(v[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=l.makeShimExports(e)),r[t]=e}),g.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e=\"string\"==typeof e?{name:e}:e).name,e.location&&(g.paths[t]=e.location),g.pkgs[t]=e.name+\"/\"+(e.main||\"main\").replace(currDirRegExp,\"\").replace(jsSuffixRegExp,\"\")}),eachProp(p,function(e,t){e.inited||e.map.unnormalized||(e.map=S(t,null,!0))}),(e.deps||e.callback)&&l.require(e.deps||[],e.callback)},makeShimExports:function(t){return function(){var e;return t.init&&(e=t.init.apply(global,arguments)),e||t.exports&&getGlobal(t.exports)}},makeRequire:function(o,a){function s(e,t,i){var r,n;return a.enableBuildCallback&&t&&isFunction(t)&&(t.__requireJsBuild=!0),\"string\"==typeof e?isFunction(t)?O(makeError(\"requireargs\",\"Invalid require call\"),i):o&&hasProp(c,e)?c[e](p[o.id]):req.get?req.get(l,e,o,s):(r=S(e,o,!1,!0).id,hasProp(m,r)?m[r]:O(makeError(\"notloaded\",'Module name \"'+r+'\" has not been loaded yet for context: '+u+(o?\"\":\". Use require([])\")))):(T(),l.nextTick(function(){T(),(n=k(S(null,o))).skipMap=a.skipMap,n.init(e,t,i,{enabled:!0}),R()}),s)}return a=a||{},mixin(s,{isBrowser:isBrowser,toUrl:function(e){var t,i=e.lastIndexOf(\".\"),r=e.split(\"/\")[0];return-1!==i&&(!(\".\"===r||\"..\"===r)||1<i)&&(t=e.substring(i,e.length),e=e.substring(0,i)),l.nameToUrl(q(e,o&&o.id,!0),t,!0)},defined:function(e){return hasProp(m,S(e,o,!1,!0).id)},specified:function(e){return e=S(e,o,!1,!0).id,hasProp(m,e)||hasProp(p,e)}}),o||(s.undef=function(i){j();var e=S(i,o,!0),t=getOwn(p,i);t.undefed=!0,E(i),delete m[i],delete n[e.url],delete r[i],eachReverse(h,function(e,t){e[0]===i&&h.splice(t,1)}),delete l.defQueueMap[i],t&&(t.events.defined&&(r[i]=t.events),P(i))}),s},enable:function(e){getOwn(p,e.id)&&k(e).enable()},completeLoad:function(e){var t,i,r,n=getOwn(g.shim,e)||{},o=n.exports;for(j();h.length;){if(null===(i=h.shift())[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);a(i)}if(l.defQueueMap={},r=getOwn(p,e),!t&&!hasProp(m,e)&&r&&!r.inited){if(!(!g.enforceDefine||o&&getGlobal(o)))return w(e)?void 0:O(makeError(\"nodefine\",\"No define call for \"+e,null,[e]));a([e,n.deps||[],n.exportsFn])}R()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c=getOwn(g.pkgs,e);if(c&&(e=c),u=getOwn(v,e))return l.nameToUrl(u,t,i);if(req.jsExtRegExp.test(e))a=e+(t||\"\");else{for(r=g.paths,o=(n=e.split(\"/\")).length;0<o;o-=1)if(s=getOwn(r,n.slice(0,o).join(\"/\"))){isArray(s)&&(s=s[0]),n.splice(0,o,s);break}a=n.join(\"/\"),a=(\"/\"===(a+=t||(/^data\\:|^blob\\:|\\?/.test(a)||i?\"\":\".js\")).charAt(0)||a.match(/^[\\w\\+\\.\\-]+:/)?\"\":g.baseUrl)+a}return g.urlArgs&&!/^blob\\:/.test(a)?a+g.urlArgs(e,a):a},load:function(e,t){req.load(l,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if(\"load\"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=s(e);l.completeLoad(t.id)}},onScriptError:function(e){var i=s(e);if(!w(i.id)){var r=[];return eachProp(p,function(e,t){0!==t.indexOf(\"_@r\")&&each(e.depMaps,function(e){if(e.id===i.id)return r.push(t),!0})}),O(makeError(\"scripterror\",'Script error for \"'+i.id+(r.length?'\", needed by: '+r.join(\", \"):'\"'),e,[i.id]))}}}).require=l.makeRequire(),l}function getInteractiveScript(){return interactiveScript&&\"interactive\"===interactiveScript.readyState||eachReverse(scripts(),function(e){if(\"interactive\"===e.readyState)return interactiveScript=e}),interactiveScript}}(this,\"undefined\"==typeof setTimeout?void 0:setTimeout);\n",
       "\n",
       "    }\n",
       "    // Project site:     https://threejs.org\n",
       "//                   https://github.com/mrdoob/three.js\n",
       "// Code source:      https://registry.yarnpkg.com/three/-/three-0.130.1.tgz#797588b2877ace31603bbbc864eb2e3022f0b3b4 - accessed on 07.12.2021\n",
       "//                   URL was found in yarn.lock file of 3d-force-graph\n",
       "//                   used three.min.js from this source in order to have console warning about loading different three versions\n",
       "// Original license: MIT\n",
       "// Code changes:     Commented out outermost functions\n",
       "//                   Wrapped all into a require define function\n",
       "\n",
       "if(!require.defined(\"gravis-three\")){\n",
       "  define(\"gravis-three\", [\"exports\"],\n",
       "\n",
       "/**\n",
       " * @license\n",
       " * Copyright 2010-2021 Three.js Authors\n",
       " * SPDX-License-Identifier: MIT\n",
       " */\n",
       "// !function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(\n",
       "function(t){\"use strict\";const e=\"130\",n=100,i=300,r=301,s=302,a=303,o=304,l=306,c=307,h=1e3,u=1001,d=1002,p=1003,m=1004,f=1005,g=1006,v=1007,y=1008,x=1009,_=1012,b=1014,M=1015,w=1016,S=1020,T=1022,E=1023,A=1026,L=1027,R=33776,C=33777,P=33778,D=33779,I=35840,N=35841,B=35842,z=35843,F=37492,O=37496,H=2300,U=2301,G=2302,k=2400,V=2401,W=2402,j=2500,q=2501,X=3e3,Y=3001,J=3007,Z=3002,Q=3004,K=3005,$=3006,tt=7680,et=35044,nt=35048,it=\"300 es\";class rt{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}const st=[];for(let t=0;t<256;t++)st[t]=(t<16?\"0\":\"\")+t.toString(16);let at=1234567;const ot=Math.PI/180,lt=180/Math.PI;function ct(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(st[255&t]+st[t>>8&255]+st[t>>16&255]+st[t>>24&255]+\"-\"+st[255&e]+st[e>>8&255]+\"-\"+st[e>>16&15|64]+st[e>>24&255]+\"-\"+st[63&n|128]+st[n>>8&255]+\"-\"+st[n>>16&255]+st[n>>24&255]+st[255&i]+st[i>>8&255]+st[i>>16&255]+st[i>>24&255]).toUpperCase()}function ht(t,e,n){return Math.max(e,Math.min(n,t))}function ut(t,e){return(t%e+e)%e}function dt(t,e,n){return(1-n)*t+n*e}function pt(t){return 0==(t&t-1)&&0!==t}function mt(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ft(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var gt=Object.freeze({__proto__:null,DEG2RAD:ot,RAD2DEG:lt,generateUUID:ct,clamp:ht,euclideanModulo:ut,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:dt,damp:function(t,e,n,i){return dt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(ut(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(at=t%2147483647),at=16807*at%2147483647,(at-1)/2147483646},degToRad:function(t){return t*ot},radToDeg:function(t){return t*lt},isPowerOfTwo:pt,ceilPowerOfTwo:mt,floorPowerOfTwo:ft,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case\"XYX\":t.set(o*h,l*u,l*d,o*c);break;case\"YZY\":t.set(l*d,o*h,l*u,o*c);break;case\"ZXZ\":t.set(l*u,l*d,o*h,o*c);break;case\"XZX\":t.set(o*h,l*m,l*p,o*c);break;case\"YXY\":t.set(l*p,o*h,l*m,o*c);break;case\"ZYZ\":t.set(l*m,l*p,o*h,o*c);break;default:console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \"+r)}}});class vt{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}vt.prototype.isVector2=!0;class yt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],b=i[5],M=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*b,r[6]=s*g+a*x+o*M,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*b,r[7]=l*g+c*x+h*M,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*b,r[8]=u*g+d*x+p*M,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let xt;yt.prototype.isMatrix3=!0;class _t{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\"undefined\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===xt&&(xt=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")),xt.width=t.width,xt.height=t.height;const n=xt.getContext(\"2d\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=xt}return e.width>2048||e.height>2048?(console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",t),e.toDataURL(\"image/jpeg\",.6)):e.toDataURL(\"image/png\")}}let bt=0;class Mt extends rt{constructor(t=Mt.DEFAULT_IMAGE,e=Mt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,s=1008,a=1023,o=1009,l=1,c=3e3){super(),Object.defineProperty(this,\"id\",{value:bt++}),this.uuid=ct(),this.name=\"\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new vt(0,0),this.repeat=new vt(1,1),this.center=new vt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new yt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\"string\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ct()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)i[t].isDataTexture?e.push(wt(i[t].image)):e.push(wt(i[t]))}else e=wt(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(t){if(this.mapping!==i)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function wt(t){return\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap?_t.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\"THREE.Texture: Unable to serialize Texture.\"),{})}Mt.DEFAULT_IMAGE=void 0,Mt.DEFAULT_MAPPING=i,Mt.prototype.isTexture=!0;class St{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-m)<s&&Math.abs(p-f)<s){if(Math.abs(c+u)<a&&Math.abs(h+m)<a&&Math.abs(p+f)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,o=(d+1)/2,v=(g+1)/2,y=(c+u)/4,x=(h+m)/4,_=(p+f)/4;return t>o&&t>v?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=y/n,r=x/n):o>v?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=y/i,r=_/i):v<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(v),n=x/r,i=_/r),this.set(n,i,r,e),this}let v=Math.sqrt((f-p)*(f-p)+(h-m)*(h-m)+(u-c)*(u-c));return Math.abs(v)<.001&&(v=1),this.x=(f-p)/v,this.y=(h-m)/v,this.z=(u-c)/v,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}St.prototype.isVector4=!0;class Tt extends rt{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new St(0,0,t,e),this.scissorTest=!1,this.viewport=new St(0,0,t,e),this.texture=new Mt(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:g,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}Tt.prototype.isWebGLRenderTarget=!0;class Et extends Tt{constructor(t,e,n){super(t,e);const i=this.texture;this.texture=[];for(let t=0;t<n;t++)this.texture[t]=i.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.texture.length;i<r;i++)this.texture[i].image.width=t,this.texture[i].image.height=e,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}Et.prototype.isWebGLMultipleRenderTargets=!0;class At extends Tt{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}At.prototype.isWebGLMultisampleRenderTarget=!0;class Lt{constructor(t=0,e=0,n=0,i=1){this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return console.warn(\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\"),n.slerpQuaternions(t,e,i)}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=r[s+0],d=r[s+1],p=r[s+2],m=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=m);if(h!==m||o!==u||l!==d||c!==p){let t=1-a;const e=o*u+l*d+c*p+h*m,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case\"XYZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"YXZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"ZXY\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"ZYX\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"YZX\":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case\"XZY\":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ht(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Lt.prototype.isQuaternion=!0;class Rt{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),this.applyQuaternion(Pt.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Pt.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Ct.copy(this).projectOnVector(t),this.sub(Ct)}reflect(t){return this.sub(Ct.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ht(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}Rt.prototype.isVector3=!0;const Ct=new Rt,Pt=new Lt;class Dt{constructor(t=new Rt(1/0,1/0,1/0),e=new Rt(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;o<l;o+=3){const l=t[o],c=t[o+1],h=t[o+2];l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;o<l;o++){const l=t.getX(o),c=t.getY(o),h=t.getZ(o);l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Nt.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),Bt.copy(e.boundingBox),Bt.applyMatrix4(t.matrixWorld),this.union(Bt));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Nt),Nt.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(kt),Vt.subVectors(this.max,kt),zt.subVectors(t.a,kt),Ft.subVectors(t.b,kt),Ot.subVectors(t.c,kt),Ht.subVectors(Ft,zt),Ut.subVectors(Ot,Ft),Gt.subVectors(zt,Ot);let e=[0,-Ht.z,Ht.y,0,-Ut.z,Ut.y,0,-Gt.z,Gt.y,Ht.z,0,-Ht.x,Ut.z,0,-Ut.x,Gt.z,0,-Gt.x,-Ht.y,Ht.x,0,-Ut.y,Ut.x,0,-Gt.y,Gt.x,0];return!!qt(e,zt,Ft,Ot,Vt)&&(e=[1,0,0,0,1,0,0,0,1],!!qt(e,zt,Ft,Ot,Vt)&&(Wt.crossVectors(Ht,Ut),e=[Wt.x,Wt.y,Wt.z],qt(e,zt,Ft,Ot,Vt)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Nt.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(Nt).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(It[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),It[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),It[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),It[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),It[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),It[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),It[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),It[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(It)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Dt.prototype.isBox3=!0;const It=[new Rt,new Rt,new Rt,new Rt,new Rt,new Rt,new Rt,new Rt],Nt=new Rt,Bt=new Dt,zt=new Rt,Ft=new Rt,Ot=new Rt,Ht=new Rt,Ut=new Rt,Gt=new Rt,kt=new Rt,Vt=new Rt,Wt=new Rt,jt=new Rt;function qt(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){jt.fromArray(t,s);const a=r.x*Math.abs(jt.x)+r.y*Math.abs(jt.y)+r.z*Math.abs(jt.z),o=e.dot(jt),l=n.dot(jt),c=i.dot(jt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Xt=new Dt,Yt=new Rt,Jt=new Rt,Zt=new Rt;class Qt{constructor(t=new Rt,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Xt.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Zt.subVectors(t,this.center);const e=Zt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Zt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Jt.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(Yt.copy(t.center).add(Jt)),this.expandByPoint(Yt.copy(t.center).sub(Jt)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Kt=new Rt,$t=new Rt,te=new Rt,ee=new Rt,ne=new Rt,ie=new Rt,re=new Rt;class se{constructor(t=new Rt,e=new Rt(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Kt)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Kt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Kt.copy(this.direction).multiplyScalar(e).add(this.origin),Kt.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){$t.copy(t).add(e).multiplyScalar(.5),te.copy(e).sub(t).normalize(),ee.copy(this.origin).sub($t);const r=.5*t.distanceTo(e),s=-this.direction.dot(te),a=ee.dot(this.direction),o=-ee.dot(te),l=ee.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(te).multiplyScalar(u).add($t),d}intersectSphere(t,e){Kt.subVectors(t.center,this.origin);const n=Kt.dot(this.direction),i=Kt.dot(Kt)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s<i||i!=i)&&(i=s),h>=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o<i||i!=i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Kt)}intersectTriangle(t,e,n,i,r){ne.subVectors(e,t),ie.subVectors(n,t),re.crossVectors(ne,ie);let s,a=this.direction.dot(re);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ee.subVectors(this.origin,t);const o=s*this.direction.dot(ie.crossVectors(ee,ie));if(o<0)return null;const l=s*this.direction.dot(ne.cross(ee));if(l<0)return null;if(o+l>a)return null;const c=-s*ee.dot(re);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class ae{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new ae).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/oe.setFromMatrixColumn(t,0).length(),r=1/oe.setFromMatrixColumn(t,1).length(),s=1/oe.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if(\"XYZ\"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if(\"YXZ\"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if(\"ZXY\"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if(\"ZYX\"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if(\"YZX\"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if(\"XZY\"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(ce,t,he)}lookAt(t,e,n){const i=this.elements;return pe.subVectors(t,e),0===pe.lengthSq()&&(pe.z=1),pe.normalize(),ue.crossVectors(n,pe),0===ue.lengthSq()&&(1===Math.abs(n.z)?pe.x+=1e-4:pe.z+=1e-4,pe.normalize(),ue.crossVectors(n,pe)),ue.normalize(),de.crossVectors(pe,ue),i[0]=ue.x,i[4]=de.x,i[8]=pe.x,i[1]=ue.y,i[5]=de.y,i[9]=pe.y,i[2]=ue.z,i[6]=de.z,i[10]=pe.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],b=i[0],M=i[4],w=i[8],S=i[12],T=i[1],E=i[5],A=i[9],L=i[13],R=i[2],C=i[6],P=i[10],D=i[14],I=i[3],N=i[7],B=i[11],z=i[15];return r[0]=s*b+a*T+o*R+l*I,r[4]=s*M+a*E+o*C+l*N,r[8]=s*w+a*A+o*P+l*B,r[12]=s*S+a*L+o*D+l*z,r[1]=c*b+h*T+u*R+d*I,r[5]=c*M+h*E+u*C+d*N,r[9]=c*w+h*A+u*P+d*B,r[13]=c*S+h*L+u*D+d*z,r[2]=p*b+m*T+f*R+g*I,r[6]=p*M+m*E+f*C+g*N,r[10]=p*w+m*A+f*P+g*B,r[14]=p*S+m*L+f*D+g*z,r[3]=v*b+y*T+x*R+_*I,r[7]=v*M+y*E+x*C+_*N,r[11]=v*w+y*A+x*P+_*B,r[15]=v*S+y*L+x*D+_*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,b=e*v+n*y+i*x+r*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const M=1/b;return t[0]=v*M,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*M,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*M,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*M,t[4]=y*M,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*M,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*M,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*M,t[8]=x*M,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*M,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*M,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*M,t[12]=_*M,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*M,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*M,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*M,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,b=n.y,M=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*b,i[5]=(1-(u+g))*b,i[6]=(f+v)*b,i[7]=0,i[8]=(p+y)*M,i[9]=(f-v)*M,i[10]=(1-(u+m))*M,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=oe.set(i[0],i[1],i[2]).length();const s=oe.set(i[4],i[5],i[6]).length(),a=oe.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],le.copy(this);const o=1/r,l=1/s,c=1/a;return le.elements[0]*=o,le.elements[1]*=o,le.elements[2]*=o,le.elements[4]*=l,le.elements[5]*=l,le.elements[6]*=l,le.elements[8]*=c,le.elements[9]*=c,le.elements[10]*=c,e.setFromRotationMatrix(le),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn(\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}ae.prototype.isMatrix4=!0;const oe=new Rt,le=new ae,ce=new Rt(0,0,0),he=new Rt(1,1,1),ue=new Rt,de=new Rt,pe=new Rt,me=new ae,fe=new Lt;class ge{constructor(t=0,e=0,n=0,i=ge.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case\"XYZ\":this._y=Math.asin(ht(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case\"YXZ\":this._x=Math.asin(-ht(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case\"ZXY\":this._x=Math.asin(ht(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case\"ZYX\":this._y=Math.asin(-ht(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case\"YZX\":this._z=Math.asin(ht(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case\"XZY\":this._z=Math.asin(-ht(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return me.makeRotationFromQuaternion(t),this.setFromRotationMatrix(me,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return fe.setFromEuler(this),this.setFromQuaternion(fe,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new Rt(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}ge.prototype.isEuler=!0,ge.DefaultOrder=\"XYZ\",ge.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"];class ve{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let ye=0;const xe=new Rt,_e=new Lt,be=new ae,Me=new Rt,we=new Rt,Se=new Rt,Te=new Lt,Ee=new Rt(1,0,0),Ae=new Rt(0,1,0),Le=new Rt(0,0,1),Re={type:\"added\"},Ce={type:\"removed\"};class Pe extends rt{constructor(){super(),Object.defineProperty(this,\"id\",{value:ye++}),this.uuid=ct(),this.name=\"\",this.type=\"Object3D\",this.parent=null,this.children=[],this.up=Pe.DefaultUp.clone();const t=new Rt,e=new ge,n=new Lt,i=new Rt(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new ae},normalMatrix:{value:new yt}}),this.matrix=new ae,this.matrixWorld=new ae,this.matrixAutoUpdate=Pe.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new ve,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return _e.setFromAxisAngle(t,e),this.quaternion.multiply(_e),this}rotateOnWorldAxis(t,e){return _e.setFromAxisAngle(t,e),this.quaternion.premultiply(_e),this}rotateX(t){return this.rotateOnAxis(Ee,t)}rotateY(t){return this.rotateOnAxis(Ae,t)}rotateZ(t){return this.rotateOnAxis(Le,t)}translateOnAxis(t,e){return xe.copy(t).applyQuaternion(this.quaternion),this.position.add(xe.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(Ee,t)}translateY(t){return this.translateOnAxis(Ae,t)}translateZ(t){return this.translateOnAxis(Le,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(be.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Me.copy(t):Me.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),we.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?be.lookAt(we,Me,this.up):be.lookAt(Me,we,this.up),this.quaternion.setFromRotationMatrix(be),i&&(be.extractRotation(i.matrixWorld),_e.setFromRotationMatrix(be),this.quaternion.premultiply(_e.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(Re)):console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(Ce)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(Ce)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),be.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),be.multiply(t.parent.matrixWorld)),t.applyMatrix4(be),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\"id\",t)}getObjectByName(t){return this.getObjectByProperty(\"name\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(we,t,Se),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(we,Te,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\"string\"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:\"Object\",generator:\"Object3D.toJSON\"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,\"\"!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),\"{}\"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type=\"InstancedMesh\",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),l=s(t.skeletons),c=s(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}Pe.DefaultUp=new Rt(0,1,0),Pe.DefaultMatrixAutoUpdate=!0,Pe.prototype.isObject3D=!0;const De=new Rt,Ie=new Rt,Ne=new Rt,Be=new Rt,ze=new Rt,Fe=new Rt,Oe=new Rt,He=new Rt,Ue=new Rt,Ge=new Rt;class ke{constructor(t=new Rt,e=new Rt,n=new Rt){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),De.subVectors(t,e),i.cross(De);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){De.subVectors(i,e),Ie.subVectors(n,e),Ne.subVectors(t,e);const s=De.dot(De),a=De.dot(Ie),o=De.dot(Ne),l=Ie.dot(Ie),c=Ie.dot(Ne),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Be),Be.x>=0&&Be.y>=0&&Be.x+Be.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Be),o.set(0,0),o.addScaledVector(r,Be.x),o.addScaledVector(s,Be.y),o.addScaledVector(a,Be.z),o}static isFrontFacing(t,e,n,i){return De.subVectors(n,e),Ie.subVectors(t,e),De.cross(Ie).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return De.subVectors(this.c,this.b),Ie.subVectors(this.a,this.b),.5*De.cross(Ie).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ke.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ke.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return ke.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return ke.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ke.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ze.subVectors(i,n),Fe.subVectors(r,n),He.subVectors(t,n);const o=ze.dot(He),l=Fe.dot(He);if(o<=0&&l<=0)return e.copy(n);Ue.subVectors(t,i);const c=ze.dot(Ue),h=Fe.dot(Ue);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ze,s);Ge.subVectors(t,r);const d=ze.dot(Ge),p=Fe.dot(Ge);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Fe,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Oe.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Oe,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(ze,s).addScaledVector(Fe,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Ve=0;class We extends rt{constructor(){super(),Object.defineProperty(this,\"id\",{value:Ve++}),this.uuid=ct(),this.name=\"\",this.type=\"Material\",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=tt,this.stencilZFail=tt,this.stencilZPass=tt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}onBuild(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(\"THREE.Material: '\"+e+\"' parameter is undefined.\");continue}if(\"shading\"===e){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(\"THREE.\"+this.type+\": '\"+e+\"' is not a property of this material.\")}}toJSON(t){const e=void 0===t||\"string\"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,\"\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(t){!0===t&&this.version++}}We.prototype.isMaterial=!0;const je={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},qe={h:0,s:0,l:0},Xe={h:0,s:0,l:0};function Ye(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Je(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Ze(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Qe{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=ut(t,1),e=ht(e,0,1),n=ht(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Ye(r,i,t+1/3),this.g=Ye(r,i,t),this.b=Ye(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}let n;if(n=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case\"rgb\":case\"rgba\":if(t=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\"hsl\":case\"hsla\":if(t=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\\#([A-Fa-f\\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=je[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\"THREE.Color: Unknown color \"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Je(t.r),this.g=Je(t.g),this.b=Je(t.b),this}copyLinearToSRGB(t){return this.r=Ze(t.r),this.g=Ze(t.g),this.b=Ze(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\"000000\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(n<i?6:0);break;case n:a=(i-e)/t+2;break;case i:a=(e-n)/t+4}a/=6}return t.h=a,t.s=o,t.l=l,t}getStyle(){return\"rgb(\"+(255*this.r|0)+\",\"+(255*this.g|0)+\",\"+(255*this.b|0)+\")\"}offsetHSL(t,e,n){return this.getHSL(qe),qe.h+=t,qe.s+=e,qe.l+=n,this.setHSL(qe.h,qe.s,qe.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(qe),t.getHSL(Xe);const n=dt(qe.h,Xe.h,e),i=dt(qe.s,Xe.s,e),r=dt(qe.l,Xe.l,e);return this.setHSL(n,i,r),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}Qe.NAMES=je,Qe.prototype.isColor=!0,Qe.prototype.r=1,Qe.prototype.g=1,Qe.prototype.b=1;class Ke extends We{constructor(t){super(),this.type=\"MeshBasicMaterial\",this.color=new Qe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this}}Ke.prototype.isMeshBasicMaterial=!0;const $e=new Rt,tn=new vt;class en{constructor(t,e,n){if(Array.isArray(t))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.name=\"\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyColorsArray(): color is undefined\",i),r=new Qe),e[n++]=r.r,e[n++]=r.g,e[n++]=r.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\",i),r=new vt),e[n++]=r.x,e[n++]=r.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\",i),r=new Rt),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\",i),r=new St),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z,e[n++]=r.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)tn.fromBufferAttribute(this,e),tn.applyMatrix3(t),this.setXY(e,tn.x,tn.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)$e.fromBufferAttribute(this,e),$e.applyMatrix3(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)$e.x=this.getX(e),$e.y=this.getY(e),$e.z=this.getZ(e),$e.applyMatrix4(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)$e.x=this.getX(e),$e.y=this.getY(e),$e.z=this.getZ(e),$e.applyNormalMatrix(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)$e.x=this.getX(e),$e.y=this.getY(e),$e.z=this.getZ(e),$e.transformDirection(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\"\"!==this.name&&(t.name=this.name),this.usage!==et&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}en.prototype.isBufferAttribute=!0;class nn extends en{constructor(t,e,n){super(new Int8Array(t),e,n)}}class rn extends en{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class sn extends en{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class an extends en{constructor(t,e,n){super(new Int16Array(t),e,n)}}class on extends en{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class ln extends en{constructor(t,e,n){super(new Int32Array(t),e,n)}}class cn extends en{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class hn extends en{constructor(t,e,n){super(new Uint16Array(t),e,n)}}hn.prototype.isFloat16BufferAttribute=!0;class un extends en{constructor(t,e,n){super(new Float32Array(t),e,n)}}class dn extends en{constructor(t,e,n){super(new Float64Array(t),e,n)}}function pn(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}const mn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function fn(t,e){return new mn[t](e)}let gn=0;const vn=new ae,yn=new Pe,xn=new Rt,_n=new Dt,bn=new Dt,Mn=new Rt;class wn extends rt{constructor(){super(),Object.defineProperty(this,\"id\",{value:gn++}),this.uuid=ct(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(pn(t)>65535?cn:on)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new yt).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return vn.makeRotationFromQuaternion(t),this.applyMatrix4(vn),this}rotateX(t){return vn.makeRotationX(t),this.applyMatrix4(vn),this}rotateY(t){return vn.makeRotationY(t),this.applyMatrix4(vn),this}rotateZ(t){return vn.makeRotationZ(t),this.applyMatrix4(vn),this}translate(t,e,n){return vn.makeTranslation(t,e,n),this.applyMatrix4(vn),this}scale(t,e,n){return vn.makeScale(t,e,n),this.applyMatrix4(vn),this}lookAt(t){return yn.lookAt(t),yn.updateMatrix(),this.applyMatrix4(yn.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(xn).negate(),this.translate(xn.x,xn.y,xn.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute(\"position\",new un(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Dt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingBox.set(new Rt(-1/0,-1/0,-1/0),new Rt(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];_n.setFromBufferAttribute(n),this.morphTargetsRelative?(Mn.addVectors(this.boundingBox.min,_n.min),this.boundingBox.expandByPoint(Mn),Mn.addVectors(this.boundingBox.max,_n.max),this.boundingBox.expandByPoint(Mn)):(this.boundingBox.expandByPoint(_n.min),this.boundingBox.expandByPoint(_n.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Qt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingSphere.set(new Rt,1/0);if(t){const n=this.boundingSphere.center;if(_n.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];bn.setFromBufferAttribute(n),this.morphTargetsRelative?(Mn.addVectors(_n.min,bn.min),_n.expandByPoint(Mn),Mn.addVectors(_n.max,bn.max),_n.expandByPoint(Mn)):(_n.expandByPoint(bn.min),_n.expandByPoint(bn.max))}_n.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)Mn.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(Mn));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)Mn.fromBufferAttribute(s,e),a&&(xn.fromBufferAttribute(t,e),Mn.add(xn)),i=Math.max(i,n.distanceToSquared(Mn))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeFaceNormals(){}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");const n=t.array,i=e.position.array,r=e.normal.array,s=e.uv.array,a=i.length/3;void 0===e.tangent&&this.setAttribute(\"tangent\",new en(new Float32Array(4*a),4));const o=e.tangent.array,l=[],c=[];for(let t=0;t<a;t++)l[t]=new Rt,c[t]=new Rt;const h=new Rt,u=new Rt,d=new Rt,p=new vt,m=new vt,f=new vt,g=new Rt,v=new Rt;function y(t,e,n){h.fromArray(i,3*t),u.fromArray(i,3*e),d.fromArray(i,3*n),p.fromArray(s,2*t),m.fromArray(s,2*e),f.fromArray(s,2*n),u.sub(h),d.sub(h),m.sub(p),f.sub(p);const r=1/(m.x*f.y-f.x*m.y);isFinite(r)&&(g.copy(u).multiplyScalar(f.y).addScaledVector(d,-m.y).multiplyScalar(r),v.copy(d).multiplyScalar(m.x).addScaledVector(u,-f.x).multiplyScalar(r),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(v),c[e].add(v),c[n].add(v))}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let t=0,e=x.length;t<e;++t){const e=x[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)y(n[t+0],n[t+1],n[t+2])}const _=new Rt,b=new Rt,M=new Rt,w=new Rt;function S(t){M.fromArray(r,3*t),w.copy(M);const e=l[t];_.copy(e),_.sub(M.multiplyScalar(M.dot(e))).normalize(),b.crossVectors(w,e);const n=b.dot(c[t])<0?-1:1;o[4*t]=_.x,o[4*t+1]=_.y,o[4*t+2]=_.z,o[4*t+3]=n}for(let t=0,e=x.length;t<e;++t){const e=x[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)S(n[t+0]),S(n[t+1]),S(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\"position\");if(void 0!==e){let n=this.getAttribute(\"normal\");if(void 0===n)n=new en(new Float32Array(3*e.count),3),this.setAttribute(\"normal\",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Rt,r=new Rt,s=new Rt,a=new Rt,o=new Rt,l=new Rt,c=new Rt,h=new Rt;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),m=t.getX(u+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),s.fromBufferAttribute(e,m),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,p),l.fromBufferAttribute(n,m),a.add(c),o.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,o.x,o.y,o.z),n.setXYZ(m,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\",t);void 0===e&&(e=0,console.warn(\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\"));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const r=n[i].array,s=t.attributes[i],a=s.array,o=s.itemSize*e,l=Math.min(a.length,r.length-o);for(let t=0,e=o;t<l;t++,e++)r[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Mn.fromBufferAttribute(t,e),Mn.normalize(),t.setXYZ(e,Mn.x,Mn.y,Mn.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let r=0,l=e.length;r<l;r++){a=t.isInterleavedBufferAttribute?e[r]*t.data.stride+t.offset:e[r]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new en(s,i,r)}if(null===this.index)return console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\"),this;const e=new wn,n=this.index.array,i=this.attributes;for(const r in i){const s=t(i[r],n);e.setAttribute(r,s)}const r=this.morphAttributes;for(const i in r){const s=[],a=r[i];for(let e=0,i=a.length;e<i;e++){const i=t(a[e],n);s.push(i)}e.morphAttributes[i]=s}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let t=0,n=s.length;t<n;t++){const n=s[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};if(t.uuid=this.uuid,t.type=this.type,\"\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];s.push(i.toJSON(t.data))}s.length>0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new wn).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t<r;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let t=0,e=s.length;t<e;t++){const e=s[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}wn.prototype.isBufferGeometry=!0;const Sn=new ae,Tn=new se,En=new Qt,An=new Rt,Ln=new Rt,Rn=new Rt,Cn=new Rt,Pn=new Rt,Dn=new Rt,In=new Rt,Nn=new Rt,Bn=new Rt,zn=new vt,Fn=new vt,On=new vt,Hn=new Rt,Un=new Rt;class Gn extends Pe{constructor(t=new wn,e=new Ke){super(),this.type=\"Mesh\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),En.copy(n.boundingSphere),En.applyMatrix4(r),!1===t.ray.intersectsSphere(En))return;if(Sn.copy(r).invert(),Tn.copy(t.ray).applyMatrix4(Sn),null!==n.boundingBox&&!1===Tn.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const p=u[n],m=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(p.start+p.count,d.start+d.count);n<i;n+=3){const i=r.getX(n),u=r.getX(n+1),d=r.getX(n+2);s=kn(this,m,t,Tn,a,o,l,c,h,i,u,d),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=p.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),u=Math.min(r.count,d.start+d.count);n<u;n+=3){const u=r.getX(n),d=r.getX(n+1),p=r.getX(n+2);s=kn(this,i,t,Tn,a,o,l,c,h,u,d,p),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}else if(void 0!==a)if(Array.isArray(i))for(let n=0,r=u.length;n<r;n++){const r=u[n],p=i[r.materialIndex];for(let n=Math.max(r.start,d.start),i=Math.min(r.start+r.count,d.start+d.count);n<i;n+=3){s=kn(this,p,t,Tn,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=r.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),r=Math.min(a.count,d.start+d.count);n<r;n+=3){s=kn(this,i,t,Tn,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}}else n.isGeometry&&console.error(\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}function kn(t,e,n,i,r,s,a,o,l,c,h,u){An.fromBufferAttribute(r,c),Ln.fromBufferAttribute(r,h),Rn.fromBufferAttribute(r,u);const d=t.morphTargetInfluences;if(e.morphTargets&&s&&d){In.set(0,0,0),Nn.set(0,0,0),Bn.set(0,0,0);for(let t=0,e=s.length;t<e;t++){const e=d[t],n=s[t];0!==e&&(Cn.fromBufferAttribute(n,c),Pn.fromBufferAttribute(n,h),Dn.fromBufferAttribute(n,u),a?(In.addScaledVector(Cn,e),Nn.addScaledVector(Pn,e),Bn.addScaledVector(Dn,e)):(In.addScaledVector(Cn.sub(An),e),Nn.addScaledVector(Pn.sub(Ln),e),Bn.addScaledVector(Dn.sub(Rn),e)))}An.add(In),Ln.add(Nn),Rn.add(Bn)}t.isSkinnedMesh&&(t.boneTransform(c,An),t.boneTransform(h,Ln),t.boneTransform(u,Rn));const p=function(t,e,n,i,r,s,a,o){let l;if(l=1===e.side?i.intersectTriangle(a,s,r,!0,o):i.intersectTriangle(r,s,a,2!==e.side,o),null===l)return null;Un.copy(o),Un.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(Un);return c<n.near||c>n.far?null:{distance:c,point:Un.clone(),object:t}}(t,e,n,i,An,Ln,Rn,Hn);if(p){o&&(zn.fromBufferAttribute(o,c),Fn.fromBufferAttribute(o,h),On.fromBufferAttribute(o,u),p.uv=ke.getUV(Hn,An,Ln,Rn,zn,Fn,On,new vt)),l&&(zn.fromBufferAttribute(l,c),Fn.fromBufferAttribute(l,h),On.fromBufferAttribute(l,u),p.uv2=ke.getUV(Hn,An,Ln,Rn,zn,Fn,On,new vt));const t={a:c,b:h,c:u,normal:new Rt,materialIndex:0};ke.getNormal(An,Ln,Rn,t.normal),p.face=t}return p}Gn.prototype.isMesh=!0;class Vn extends wn{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type=\"BoxGeometry\",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,b=p/2,M=m/2,w=f+1,S=g+1;let T=0,E=0;const A=new Rt;for(let s=0;s<S;s++){const a=s*x-b;for(let o=0;o<w;o++){const u=o*y-_;A[t]=u*i,A[e]=a*r,A[n]=M,l.push(A.x,A.y,A.z),A[t]=0,A[e]=0,A[n]=m>0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t<g;t++)for(let e=0;e<f;e++){const n=u+e+w*t,i=u+e+w*(t+1),r=u+(e+1)+w*(t+1),s=u+(e+1)+w*t;o.push(n,i,s),o.push(i,r,s),E+=6}a.addGroup(d,E,v),d+=E,u+=T}p(\"z\",\"y\",\"x\",-1,-1,n,e,t,s,r,0),p(\"z\",\"y\",\"x\",1,-1,n,e,-t,s,r,1),p(\"x\",\"z\",\"y\",1,1,t,n,e,i,s,2),p(\"x\",\"z\",\"y\",1,-1,t,n,-e,i,s,3),p(\"x\",\"y\",\"z\",1,-1,t,e,n,i,r,4),p(\"x\",\"y\",\"z\",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute(\"position\",new un(l,3)),this.setAttribute(\"normal\",new un(c,3)),this.setAttribute(\"uv\",new un(h,2))}static fromJSON(t){return new Vn(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function Wn(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function jn(t){const e={};for(let n=0;n<t.length;n++){const i=Wn(t[n]);for(const t in i)e[t]=i[t]}return e}const qn={clone:Wn,merge:jn};class Xn extends We{constructor(t){super(),this.type=\"ShaderMaterial\",this.defines={},this.uniforms={},this.vertexShader=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",this.fragmentShader=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\"),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Wn(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n].value;i&&i.isTexture?e.uniforms[n]={type:\"t\",value:i.toJSON(t).uuid}:i&&i.isColor?e.uniforms[n]={type:\"c\",value:i.getHex()}:i&&i.isVector2?e.uniforms[n]={type:\"v2\",value:i.toArray()}:i&&i.isVector3?e.uniforms[n]={type:\"v3\",value:i.toArray()}:i&&i.isVector4?e.uniforms[n]={type:\"v4\",value:i.toArray()}:i&&i.isMatrix3?e.uniforms[n]={type:\"m3\",value:i.toArray()}:i&&i.isMatrix4?e.uniforms[n]={type:\"m4\",value:i.toArray()}:e.uniforms[n]={value:i}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}Xn.prototype.isShaderMaterial=!0;class Yn extends Pe{constructor(){super(),this.type=\"Camera\",this.matrixWorldInverse=new ae,this.projectionMatrix=new ae,this.projectionMatrixInverse=new ae}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}Yn.prototype.isCamera=!0;class Jn extends Yn{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type=\"PerspectiveCamera\",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*lt*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*ot*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*lt*Math.atan(Math.tan(.5*ot*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*ot*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}Jn.prototype.isPerspectiveCamera=!0;const Zn=90;class Qn extends Pe{constructor(t,e,n){if(super(),this.type=\"CubeCamera\",!0!==n.isWebGLCubeRenderTarget)return void console.error(\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\");this.renderTarget=n;const i=new Jn(Zn,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new Rt(1,0,0)),this.add(i);const r=new Jn(Zn,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Rt(-1,0,0)),this.add(r);const s=new Jn(Zn,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Rt(0,1,0)),this.add(s);const a=new Jn(Zn,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Rt(0,-1,0)),this.add(a);const o=new Jn(Zn,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Rt(0,0,1)),this.add(o);const l=new Jn(Zn,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Rt(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class Kn extends Mt{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o=void 0!==o?o:T,l,c,h),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}Kn.prototype.isCubeTexture=!0;class $n extends Tt{constructor(t,e,n){Number.isInteger(e)&&(console.warn(\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\"),e=n),super(t,t,e),e=e||{},this.texture=new Kn(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=E,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"},i=new Vn(5,5,5),r=new Xn({name:\"CubemapFromEquirect\",uniforms:Wn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new Gn(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new Qn(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}$n.prototype.isWebGLCubeRenderTarget=!0;const ti=new Rt,ei=new Rt,ni=new yt;class ii{constructor(t=new Rt(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=ti.subVectors(n,e).cross(ei.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(ti),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||ni.getNormalMatrix(t),i=this.coplanarPoint(ti).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}ii.prototype.isPlane=!0;const ri=new Qt,si=new Rt;class ai{constructor(t=new ii,e=new ii,n=new ii,i=new ii,r=new ii,s=new ii){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),ri.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSprite(t){return ri.center.set(0,0,0),ri.radius=.7071067811865476,ri.applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(si.x=i.normal.x>0?t.max.x:t.min.x,si.y=i.normal.y>0?t.max.y:t.min.y,si.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(si)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function oi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function li(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const s=i.get(e);void 0===s?i.set(e,function(e,i){const r=e.array,s=e.usage,a=t.createBuffer();t.bindBuffer(i,a),t.bufferData(i,r,s),e.onUploadCallback();let o=5126;return r instanceof Float32Array?o=5126:r instanceof Float64Array?console.warn(\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\"):r instanceof Uint16Array?e.isFloat16BufferAttribute?n?o=5131:console.warn(\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\"):o=5123:r instanceof Int16Array?o=5122:r instanceof Uint32Array?o=5125:r instanceof Int32Array?o=5124:r instanceof Int8Array?o=5120:(r instanceof Uint8Array||r instanceof Uint8ClampedArray)&&(o=5121),{buffer:a,type:o,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version}}(e,r)):s.version<e.version&&(!function(e,i,r){const s=i.array,a=i.updateRange;t.bindBuffer(r,e),-1===a.count?t.bufferSubData(r,0,s):(n?t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s,a.offset,a.count):t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count)),a.count=-1)}(s.buffer,e,r),s.version=e.version)}}}class ci extends wn{constructor(t=1,e=1,n=1,i=1){super(),this.type=\"PlaneGeometry\",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),l=a+1,c=o+1,h=t/a,u=e/o,d=[],p=[],m=[],f=[];for(let t=0;t<c;t++){const e=t*u-s;for(let n=0;n<l;n++){const i=n*h-r;p.push(i,-e,0),m.push(0,0,1),f.push(n/a),f.push(1-t/o)}}for(let t=0;t<o;t++)for(let e=0;e<a;e++){const n=e+l*t,i=e+l*(t+1),r=e+1+l*(t+1),s=e+1+l*t;d.push(n,i,s),d.push(i,r,s)}this.setIndex(d),this.setAttribute(\"position\",new un(p,3)),this.setAttribute(\"normal\",new un(m,3)),this.setAttribute(\"uv\",new un(f,2))}static fromJSON(t){return new ci(t.width,t.height,t.widthSegments,t.heightSegments)}}const hi={alphamap_fragment:\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\",alphamap_pars_fragment:\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",alphatest_fragment:\"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\",aomap_fragment:\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\",aomap_pars_fragment:\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\",begin_vertex:\"vec3 transformed = vec3( position );\",beginnormal_vertex:\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\",bsdfs:\"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\\n}\\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n#else\\n\\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t}\\n\\treturn 1.0;\\n#endif\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\treturn specularColor * brdf.x + brdf.y;\\n}\\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\tvec3 FssEss = F * brdf.x + brdf.y;\\n\\tfloat Ess = brdf.x + brdf.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\",bumpmap_pars_fragment:\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\",color_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",color_pars_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_pars_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\",common:\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\",cube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\t\\tvec2 f = fract( uv );\\n\\t\\tuv += 0.5 - f;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x += texelSize;\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.y += texelSize;\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x -= texelSize;\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\treturn mix( tm, bm, f.y );\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\",defaultnormal_vertex:\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\",displacementmap_pars_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\",displacementmap_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\",encodings_fragment:\"gl_FragColor = linearToOutputTexel( gl_FragColor );\",encodings_pars_fragment:\"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\",envmap_fragment:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifndef ENVMAP_TYPE_CUBE_UV\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\",envmap_common_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\",envmap_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\",envmap_pars_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\",envmap_physical_pars_fragment:\"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\",envmap_vertex:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\",fog_vertex:\"#ifdef USE_FOG\\n\\tfogDepth = - mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\",fog_pars_fragment:\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\",gradientmap_pars_fragment:\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\",lightmap_fragment:\"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n#endif\",lightmap_pars_fragment:\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",lights_lambert_vertex:\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\",lights_pars_begin:\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\",lights_toon_fragment:\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\",lights_toon_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\",lights_phong_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_physical_fragment:\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\",lights_physical_pars_fragment:\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularRoughness;\\n\\tvec3 specularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(\\t\\t0, 1,\\t\\t0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\",lights_fragment_begin:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\",lights_fragment_maps:\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\",lights_fragment_end:\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\",logdepthbuf_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\",map_particle_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\",map_particle_pars_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n#endif\",morphtarget_pars_vertex:\"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",morphtarget_vertex:\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\",normal_fragment_begin:\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\",normal_fragment_maps:\"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\",clearcoat_normal_fragment_begin:\"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\",clearcoat_normal_fragment_maps:\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\",clearcoat_pars_fragment:\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\",packing:\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\",premultiplied_alpha_fragment:\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\",project_vertex:\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\",dithering_fragment:\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\",dithering_pars_fragment:\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\",roughnessmap_pars_fragment:\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",shadowmap_pars_fragment:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t\\tf.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t\\tf.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\",shadowmap_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\",skinbase_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\",skinning_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\",skinnormal_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\",tonemapping_pars_fragment:\"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(\\t1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,\\t1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,\\t1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\",transmission_fragment:\"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSNMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition.xyz / vWorldPosition.w;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tfloat ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );\\n\\tvec3 transmission = transmissionFactor * getIBLVolumeRefraction(\\n\\t\\tnormal, v, roughnessFactor, material.diffuseColor, totalSpecular,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );\\n#endif\",transmission_pars_fragment:\"#ifdef USE_TRANSMISSION\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec4 vWorldPosition;\\n\\tvec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) {\\n\\t\\tvec3 refractionVector = refract(-v, normalize(n), 1.0 / ior);\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length(vec3(modelMatrix[0].xyz));\\n\\t\\tmodelScale.y = length(vec3(modelMatrix[1].xyz));\\n\\t\\tmodelScale.z = length(vec3(modelMatrix[2].xyz));\\n\\t\\treturn normalize(refractionVector) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness(float roughness, float ior) {\\n\\t\\treturn roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0);\\n\\t}\\n\\tvec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) {\\n\\t\\tfloat framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior);\\n\\t\\treturn texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb;\\n\\t}\\n\\tvec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) {\\n\\t\\tif (attenuationDistance == 0.0) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp(-attenuationCoefficient * transmissionDistance);\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor,\\n\\t\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\n\\t\\tvec3 attenuationColor, float attenuationDistance) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix);\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0);\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior);\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance);\\n\\t\\treturn (1.0 - specularColor) * attenuatedColor * baseColor;\\n\\t}\\n#endif\",uv_pars_fragment:\"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\",uv_pars_vertex:\"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\",uv_vertex:\"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\",uv2_pars_fragment:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_pars_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\",uv2_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\",background_frag:\"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",background_vert:\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\",cube_frag:\"#include <envmap_common_pars_fragment>\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",cube_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\",depth_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\",distanceRGBA_frag:\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\",distanceRGBA_vert:\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\",equirect_frag:\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",equirect_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\",linedashed_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\",meshbasic_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshbasic_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_ENVMAP\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshlambert_frag:\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include <lightmap_fragment>\\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshmatcap_frag:\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshmatcap_vert:\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#ifndef FLAT_SHADED\\n\\t\\tvNormal = normalize( transformedNormal );\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\",meshtoon_frag:\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshtoon_vert:\"#define TOON\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphysical_frag:\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define REFLECTIVITY\\n\\t#define CLEARCOAT\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform vec3 attenuationColor;\\n\\tuniform float attenuationDistance;\\n#endif\\n#ifdef REFLECTIVITY\\n\\tuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\n#include <transmission_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphysical_vert:\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec4 vWorldPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition;\\n#endif\\n}\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",points_vert:\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\",shadow_frag:\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",shadow_vert:\"#include <common>\\n#include <fog_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",sprite_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",sprite_vert:\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\"},ui={common:{diffuse:{value:new Qe(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new yt},uv2Transform:{value:new yt},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new vt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Qe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Qe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}},sprite:{diffuse:{value:new Qe(16777215)},opacity:{value:1},center:{value:new vt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}}},di={basic:{uniforms:jn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.fog]),vertexShader:hi.meshbasic_vert,fragmentShader:hi.meshbasic_frag},lambert:{uniforms:jn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.fog,ui.lights,{emissive:{value:new Qe(0)}}]),vertexShader:hi.meshlambert_vert,fragmentShader:hi.meshlambert_frag},phong:{uniforms:jn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,ui.lights,{emissive:{value:new Qe(0)},specular:{value:new Qe(1118481)},shininess:{value:30}}]),vertexShader:hi.meshphong_vert,fragmentShader:hi.meshphong_frag},standard:{uniforms:jn([ui.common,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.roughnessmap,ui.metalnessmap,ui.fog,ui.lights,{emissive:{value:new Qe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:hi.meshphysical_vert,fragmentShader:hi.meshphysical_frag},toon:{uniforms:jn([ui.common,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.gradientmap,ui.fog,ui.lights,{emissive:{value:new Qe(0)}}]),vertexShader:hi.meshtoon_vert,fragmentShader:hi.meshtoon_frag},matcap:{uniforms:jn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,{matcap:{value:null}}]),vertexShader:hi.meshmatcap_vert,fragmentShader:hi.meshmatcap_frag},points:{uniforms:jn([ui.points,ui.fog]),vertexShader:hi.points_vert,fragmentShader:hi.points_frag},dashed:{uniforms:jn([ui.common,ui.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:hi.linedashed_vert,fragmentShader:hi.linedashed_frag},depth:{uniforms:jn([ui.common,ui.displacementmap]),vertexShader:hi.depth_vert,fragmentShader:hi.depth_frag},normal:{uniforms:jn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,{opacity:{value:1}}]),vertexShader:hi.normal_vert,fragmentShader:hi.normal_frag},sprite:{uniforms:jn([ui.sprite,ui.fog]),vertexShader:hi.sprite_vert,fragmentShader:hi.sprite_frag},background:{uniforms:{uvTransform:{value:new yt},t2D:{value:null}},vertexShader:hi.background_vert,fragmentShader:hi.background_frag},cube:{uniforms:jn([ui.envmap,{opacity:{value:1}}]),vertexShader:hi.cube_vert,fragmentShader:hi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:hi.equirect_vert,fragmentShader:hi.equirect_frag},distanceRGBA:{uniforms:jn([ui.common,ui.displacementmap,{referencePosition:{value:new Rt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:hi.distanceRGBA_vert,fragmentShader:hi.distanceRGBA_frag},shadow:{uniforms:jn([ui.lights,ui.fog,{color:{value:new Qe(0)},opacity:{value:1}}]),vertexShader:hi.shadow_vert,fragmentShader:hi.shadow_frag}};function pi(t,e,n,i,r){const s=new Qe(0);let a,o,c=0,h=null,u=0,d=null;function p(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return s},setClearColor:function(t,e=1){s.set(t),c=e,p(s,c)},getClearAlpha:function(){return c},setClearAlpha:function(t){c=t,p(s,c)},render:function(n,r){let m=!1,f=!0===r.isScene?r.background:null;f&&f.isTexture&&(f=e.get(f));const g=t.xr,v=g.getSession&&g.getSession();v&&\"additive\"===v.environmentBlendMode&&(f=null),null===f?p(s,c):f&&f.isColor&&(p(f,1),m=!0),(t.autoClear||m)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||f.mapping===l)?(void 0===o&&(o=new Gn(new Vn(1,1,1),new Xn({name:\"BackgroundCubeMaterial\",uniforms:Wn(di.cube.uniforms),vertexShader:di.cube.vertexShader,fragmentShader:di.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute(\"normal\"),o.geometry.deleteAttribute(\"uv\"),o.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(o.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}}),i.update(o)),o.material.uniforms.envMap.value=f,o.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f._needsFlipEnvMap?-1:1,h===f&&u===f.version&&d===t.toneMapping||(o.material.needsUpdate=!0,h=f,u=f.version,d=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null)):f&&f.isTexture&&(void 0===a&&(a=new Gn(new ci(2,2),new Xn({name:\"BackgroundMaterial\",uniforms:Wn(di.background.uniforms),vertexShader:di.background.vertexShader,fragmentShader:di.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute(\"normal\"),Object.defineProperty(a.material,\"map\",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),a.material.uniforms.uvTransform.value.copy(f.matrix),h===f&&u===f.version&&d===t.toneMapping||(a.material.needsUpdate=!0,h=f,u=f.version,d=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function mi(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get(\"OES_vertex_array_object\"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t<r;t++)e[t]=0,n[t]=0,i[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function m(t){f(t,0)}function f(n,r){const s=c.newAttributes,a=c.enabledAttributes,o=c.attributeDivisors;if(s[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),o[n]!==r){(i.isWebGL2?t:e.get(\"ANGLE_instanced_arrays\"))[i.isWebGL2?\"vertexAttribDivisor\":\"vertexAttribDivisorANGLE\"](n,r),o[n]=r}}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function v(e,n,r,s,a,o){!0!==i.isWebGL2||5124!==r&&5125!==r?t.vertexAttribPointer(e,n,r,s,a,o):t.vertexAttribIPointer(e,n,r,a,o)}function y(){x(),c!==l&&(c=l,h(c.object))}function x(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(r,l,u,y,x){let _=!1;if(a){const e=function(e,n,r){const a=!0===r.wireframe;let l=o[e.id];void 0===l&&(l={},o[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[a];void 0===h&&(h=d(i.isWebGL2?t.createVertexArray():s.createVertexArrayOES()),c[a]=h);return h}(y,u,l);c!==e&&(c=e,h(c.object)),_=function(t,e){const n=c.attributes,i=t.attributes;let r=0;for(const t in i){const e=n[t],s=i[t];if(void 0===e)return!0;if(e.attribute!==s)return!0;if(e.data!==s.data)return!0;r++}return c.attributesNum!==r||c.index!==e}(y,x),_&&function(t,e){const n={},i=t.attributes;let r=0;for(const t in i){const e=i[t],s={};s.attribute=e,e.data&&(s.data=e.data),n[t]=s,r++}c.attributes=n,c.attributesNum=r,c.index=e}(y,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===u.id&&c.wireframe===t||(c.geometry=y.id,c.program=u.id,c.wireframe=t,_=!0)}!0===r.isInstancedMesh&&(_=!0),null!==x&&n.update(x,34963),_&&(!function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get(\"ANGLE_instanced_arrays\"))return;p();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i>=0){const s=l[e];if(void 0!==s){const e=s.normalized,r=s.itemSize,a=n.get(s);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,a=n.stride,u=s.offset;n&&n.isInstancedInterleavedBuffer?(f(i,n.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,a*h,u*h)}else s.isInstancedBufferAttribute?(f(i,s.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,0,0)}else if(\"instanceMatrix\"===e){const e=n.get(r.instanceMatrix);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i+0,1),f(i+1,1),f(i+2,1),f(i+3,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i+0,4,a,!1,64,0),t.vertexAttribPointer(i+1,4,a,!1,64,16),t.vertexAttribPointer(i+2,4,a,!1,64,32),t.vertexAttribPointer(i+3,4,a,!1,64,48)}else if(\"instanceColor\"===e){const e=n.get(r.instanceColor);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i,n);break;case 3:t.vertexAttrib3fv(i,n);break;case 4:t.vertexAttrib4fv(i,n);break;default:t.vertexAttrib1fv(i,n)}}}}g()}(r,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in o){const e=o[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t]}},releaseStatesOfGeometry:function(t){if(void 0===o[t.id])return;const e=o[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t.id]},releaseStatesOfProgram:function(t){for(const e in o){const n=o[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:m,disableUnusedAttributes:g}}function fi(t,e,n,i){const r=i.isWebGL2;let s;this.setMode=function(t){s=t},this.render=function(e,i){t.drawArrays(s,e,i),n.update(i,s,1)},this.renderInstances=function(i,a,o){if(0===o)return;let l,c;if(r)l=t,c=\"drawArraysInstanced\";else if(l=e.get(\"ANGLE_instanced_arrays\"),c=\"drawArraysInstancedANGLE\",null===l)return void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");l[c](s,i,a,o),n.update(a,s,o)}}function gi(t,e,n){let i;function r(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?\"mediump\":\"lowp\"}const s=\"undefined\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||\"undefined\"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:\"highp\";const o=r(a);o!==a&&(console.warn(\"THREE.WebGLRenderer:\",a,\"not supported, using\",o,\"instead.\"),a=o);const l=s||e.has(\"WEBGL_draw_buffers\"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=s||e.has(\"OES_texture_float\");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has(\"EXT_texture_filter_anisotropic\")){const n=e.get(\"EXT_texture_filter_anisotropic\");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:s?t.getParameter(36183):0}}function vi(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new ii,o=new yt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==s;++e,n+=4)a.copy(t[e]).applyMatrix4(r,o),a.normal.toArray(c,n),c[n+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,s){const a=0!==t.length||e||0!==i||r;return r=e,n=h(t,s,0),i=t.length,a},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1,c()},this.setState=function(e,a,o){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,m=t.get(e);if(!r||null===u||0===u.length||s&&!p)s?h(null):c();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=h(u,a,e,o);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function yi(t){let e=new WeakMap;function n(t,e){return e===a?t.mapping=r:e===o&&(t.mapping=s),t}function i(t){const n=t.target;n.removeEventListener(\"dispose\",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping;if(s===a||s===o){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=t.getRenderTarget(),o=new $n(s.height/2);return o.fromEquirectangularTexture(t,r),e.set(r,o),t.setRenderTarget(a),r.addEventListener(\"dispose\",i),n(o.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}function xi(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case\"WEBGL_depth_texture\":i=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":i=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":i=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":i=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n(\"EXT_color_buffer_float\"):(n(\"WEBGL_depth_texture\"),n(\"OES_texture_float\"),n(\"OES_texture_half_float\"),n(\"OES_texture_half_float_linear\"),n(\"OES_standard_derivatives\"),n(\"OES_element_index_uint\"),n(\"OES_vertex_array_object\"),n(\"ANGLE_instanced_arrays\")),n(\"OES_texture_float_linear\"),n(\"EXT_color_buffer_half_float\")},get:function(t){const e=n(t);return null===e&&console.warn(\"THREE.WebGLRenderer: \"+t+\" extension not supported.\"),e}}}function _i(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const t in o.attributes)e.remove(o.attributes[t]);o.removeEventListener(\"dispose\",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}const o=new(pn(n)>65535?cn:on)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener(\"dispose\",a),r[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t++)e.update(n[t],34962)}},getWireframeAttribute:function(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&o(t)}else o(t);return s.get(t)}}}function bi(t,e,n,i){const r=i.isWebGL2;let s,a,o;this.setMode=function(t){s=t},this.setIndex=function(t){a=t.type,o=t.bytesPerElement},this.render=function(e,i){t.drawElements(s,i,a,e*o),n.update(i,s,1)},this.renderInstances=function(i,l,c){if(0===c)return;let h,u;if(r)h=t,u=\"drawElementsInstanced\";else if(h=e.get(\"ANGLE_instanced_arrays\"),u=\"drawElementsInstancedANGLE\",null===h)return void console.error(\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");h[u](s,l,a,i*o,c),n.update(l,s,c)}}function Mi(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,i){switch(e.calls++,n){case 4:e.triangles+=i*(t/3);break;case 1:e.lines+=i*(t/2);break;case 3:e.lines+=i*(t-1);break;case 2:e.lines+=i*t;break;case 0:e.points+=i*t;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",n)}}}}function wi(t,e){return t[0]-e[0]}function Si(t,e){return Math.abs(e[1])-Math.abs(t[1])}function Ti(t){const e={},n=new Float32Array(8),i=[];for(let t=0;t<8;t++)i[t]=[t,0];return{update:function(r,s,a,o){const l=r.morphTargetInfluences,c=void 0===l?0:l.length;let h=e[s.id];if(void 0===h||h.length!==c){h=[];for(let t=0;t<c;t++)h[t]=[t,0];e[s.id]=h}for(let t=0;t<c;t++){const e=h[t];e[0]=t,e[1]=l[t]}h.sort(Si);for(let t=0;t<8;t++)t<c&&h[t][1]?(i[t][0]=h[t][0],i[t][1]=h[t][1]):(i[t][0]=Number.MAX_SAFE_INTEGER,i[t][1]=0);i.sort(wi);const u=a.morphTargets&&s.morphAttributes.position,d=a.morphNormals&&s.morphAttributes.normal;let p=0;for(let t=0;t<8;t++){const e=i[t],r=e[0],a=e[1];r!==Number.MAX_SAFE_INTEGER&&a?(u&&s.getAttribute(\"morphTarget\"+t)!==u[r]&&s.setAttribute(\"morphTarget\"+t,u[r]),d&&s.getAttribute(\"morphNormal\"+t)!==d[r]&&s.setAttribute(\"morphNormal\"+t,d[r]),n[t]=a,p+=a):(u&&!0===s.hasAttribute(\"morphTarget\"+t)&&s.deleteAttribute(\"morphTarget\"+t),d&&!0===s.hasAttribute(\"morphNormal\"+t)&&s.deleteAttribute(\"morphNormal\"+t),n[t]=0)}const m=s.morphTargetsRelative?1:1-p;o.getUniforms().setValue(t,\"morphTargetBaseInfluence\",m),o.getUniforms().setValue(t,\"morphTargetInfluences\",n)}}}function Ei(t,e,n,i){let r=new WeakMap;function s(t){const e=t.target;e.removeEventListener(\"dispose\",s),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const a=i.render.frame,o=t.geometry,l=e.get(t,o);return r.get(l)!==a&&(e.update(l),r.set(l,a)),t.isInstancedMesh&&(!1===t.hasEventListener(\"dispose\",s)&&t.addEventListener(\"dispose\",s),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){r=new WeakMap}}}di.physical={uniforms:jn([di.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new vt(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Qe(0)},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new vt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Qe(0)}}]),vertexShader:hi.meshphysical_vert,fragmentShader:hi.meshphysical_frag};class Ai extends Mt{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=p,this.minFilter=p,this.wrapR=u,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Ai.prototype.isDataTexture2DArray=!0;class Li extends Mt{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=p,this.minFilter=p,this.wrapR=u,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Li.prototype.isDataTexture3D=!0;const Ri=new Mt,Ci=new Ai,Pi=new Li,Di=new Kn,Ii=[],Ni=[],Bi=new Float32Array(16),zi=new Float32Array(9),Fi=new Float32Array(4);function Oi(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=Ii[r];if(void 0===s&&(s=new Float32Array(r),Ii[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Hi(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function Ui(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function Gi(t,e){let n=Ni[e];void 0===n&&(n=new Int32Array(e),Ni[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function ki(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function Vi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(Hi(n,e))return;t.uniform2fv(this.addr,e),Ui(n,e)}}function Wi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(Hi(n,e))return;t.uniform3fv(this.addr,e),Ui(n,e)}}function ji(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(Hi(n,e))return;t.uniform4fv(this.addr,e),Ui(n,e)}}function qi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Hi(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),Ui(n,e)}else{if(Hi(n,i))return;Fi.set(i),t.uniformMatrix2fv(this.addr,!1,Fi),Ui(n,i)}}function Xi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Hi(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),Ui(n,e)}else{if(Hi(n,i))return;zi.set(i),t.uniformMatrix3fv(this.addr,!1,zi),Ui(n,i)}}function Yi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Hi(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),Ui(n,e)}else{if(Hi(n,i))return;Bi.set(i),t.uniformMatrix4fv(this.addr,!1,Bi),Ui(n,i)}}function Ji(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function Zi(t,e){const n=this.cache;Hi(n,e)||(t.uniform2iv(this.addr,e),Ui(n,e))}function Qi(t,e){const n=this.cache;Hi(n,e)||(t.uniform3iv(this.addr,e),Ui(n,e))}function Ki(t,e){const n=this.cache;Hi(n,e)||(t.uniform4iv(this.addr,e),Ui(n,e))}function $i(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function tr(t,e){const n=this.cache;Hi(n,e)||(t.uniform2uiv(this.addr,e),Ui(n,e))}function er(t,e){const n=this.cache;Hi(n,e)||(t.uniform3uiv(this.addr,e),Ui(n,e))}function nr(t,e){const n=this.cache;Hi(n,e)||(t.uniform4uiv(this.addr,e),Ui(n,e))}function ir(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTexture2D(e||Ri,r)}function rr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||Pi,r)}function sr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTextureCube(e||Di,r)}function ar(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||Ci,r)}function or(t,e){t.uniform1fv(this.addr,e)}function lr(t,e){const n=Oi(e,this.size,2);t.uniform2fv(this.addr,n)}function cr(t,e){const n=Oi(e,this.size,3);t.uniform3fv(this.addr,n)}function hr(t,e){const n=Oi(e,this.size,4);t.uniform4fv(this.addr,n)}function ur(t,e){const n=Oi(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function dr(t,e){const n=Oi(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function pr(t,e){const n=Oi(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function mr(t,e){t.uniform1iv(this.addr,e)}function fr(t,e){t.uniform2iv(this.addr,e)}function gr(t,e){t.uniform3iv(this.addr,e)}function vr(t,e){t.uniform4iv(this.addr,e)}function yr(t,e){t.uniform1uiv(this.addr,e)}function xr(t,e){t.uniform2uiv(this.addr,e)}function _r(t,e){t.uniform3uiv(this.addr,e)}function br(t,e){t.uniform4uiv(this.addr,e)}function Mr(t,e,n){const i=e.length,r=Gi(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTexture2D(e[t]||Ri,r[t])}function wr(t,e,n){const i=e.length,r=Gi(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTextureCube(e[t]||Di,r[t])}function Sr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return ki;case 35664:return Vi;case 35665:return Wi;case 35666:return ji;case 35674:return qi;case 35675:return Xi;case 35676:return Yi;case 5124:case 35670:return Ji;case 35667:case 35671:return Zi;case 35668:case 35672:return Qi;case 35669:case 35673:return Ki;case 5125:return $i;case 36294:return tr;case 36295:return er;case 36296:return nr;case 35678:case 36198:case 36298:case 36306:case 35682:return ir;case 35679:case 36299:case 36307:return rr;case 35680:case 36300:case 36308:case 36293:return sr;case 36289:case 36303:case 36311:case 36292:return ar}}(e.type)}function Tr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return or;case 35664:return lr;case 35665:return cr;case 35666:return hr;case 35674:return ur;case 35675:return dr;case 35676:return pr;case 5124:case 35670:return mr;case 35667:case 35671:return fr;case 35668:case 35672:return gr;case 35669:case 35673:return vr;case 5125:return yr;case 36294:return xr;case 36295:return _r;case 36296:return br;case 35678:case 36198:case 36298:case 36306:case 35682:return Mr;case 35680:case 36300:case 36308:case 36293:return wr}}(e.type)}function Er(t){this.id=t,this.seq=[],this.map={}}Tr.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),Ui(e,t)},Er.prototype.setValue=function(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}};const Ar=/(\\w+)(\\])?(\\[|\\.)?/g;function Lr(t,e){t.seq.push(e),t.map[e.id]=e}function Rr(t,e,n){const i=t.name,r=i.length;for(Ar.lastIndex=0;;){const s=Ar.exec(i),a=Ar.lastIndex;let o=s[1];const l=\"]\"===s[2],c=s[3];if(l&&(o|=0),void 0===c||\"[\"===c&&a+2===r){Lr(n,void 0===c?new Sr(o,t,e):new Tr(o,t,e));break}{let t=n.map[o];void 0===t&&(t=new Er(o),Lr(n,t)),n=t}}}function Cr(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);Rr(n,t.getUniformLocation(e,n.name),this)}}function Pr(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}Cr.prototype.setValue=function(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)},Cr.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},Cr.upload=function(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}},Cr.seqWithValue=function(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n};let Dr=0;function Ir(t){switch(t){case X:return[\"Linear\",\"( value )\"];case Y:return[\"sRGB\",\"( value )\"];case Z:return[\"RGBE\",\"( value )\"];case Q:return[\"RGBM\",\"( value, 7.0 )\"];case K:return[\"RGBM\",\"( value, 16.0 )\"];case $:return[\"RGBD\",\"( value, 256.0 )\"];case J:return[\"Gamma\",\"( value, float( GAMMA_FACTOR ) )\"];case 3003:return[\"LogLuv\",\"( value )\"];default:return console.warn(\"THREE.WebGLProgram: Unsupported encoding:\",t),[\"Linear\",\"( value )\"]}}function Nr(t,e,n){const i=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();if(i&&\"\"===r)return\"\";return\"THREE.WebGLShader: gl.getShaderInfoLog() \"+n+\"\\n\"+r+function(t){const e=t.split(\"\\n\");for(let t=0;t<e.length;t++)e[t]=t+1+\": \"+e[t];return e.join(\"\\n\")}(t.getShaderSource(e))}function Br(t,e){const n=Ir(e);return\"vec4 \"+t+\"( vec4 value ) { return \"+n[0]+\"ToLinear\"+n[1]+\"; }\"}function zr(t,e){const n=Ir(e);return\"vec4 \"+t+\"( vec4 value ) { return LinearTo\"+n[0]+n[1]+\"; }\"}function Fr(t,e){let n;switch(e){case 1:n=\"Linear\";break;case 2:n=\"Reinhard\";break;case 3:n=\"OptimizedCineon\";break;case 4:n=\"ACESFilmic\";break;case 5:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e),n=\"Linear\"}return\"vec3 \"+t+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}function Or(t){return\"\"!==t}function Hr(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Ur(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Gr=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function kr(t){return t.replace(Gr,Vr)}function Vr(t,e){const n=hi[e];if(void 0===n)throw new Error(\"Can not resolve #include <\"+e+\">\");return kr(n)}const Wr=/#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g,jr=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function qr(t){return t.replace(jr,Yr).replace(Wr,Xr)}function Xr(t,e,n,i){return console.warn(\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\"),Yr(t,e,n,i)}function Yr(t,e,n,i){let r=\"\";for(let t=parseInt(e);t<parseInt(n);t++)r+=i.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+t+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,t);return r}function Jr(t){let e=\"precision \"+t.precision+\" float;\\nprecision \"+t.precision+\" int;\";return\"highp\"===t.precision?e+=\"\\n#define HIGH_PRECISION\":\"mediump\"===t.precision?e+=\"\\n#define MEDIUM_PRECISION\":\"lowp\"===t.precision&&(e+=\"\\n#define LOW_PRECISION\"),e}function Zr(t,e,n,i){const a=t.getContext(),o=n.defines;let h=n.vertexShader,u=n.fragmentShader;const d=function(t){let e=\"SHADOWMAP_TYPE_BASIC\";return 1===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF\":2===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF_SOFT\":3===t.shadowMapType&&(e=\"SHADOWMAP_TYPE_VSM\"),e}(n),p=function(t){let e=\"ENVMAP_TYPE_CUBE\";if(t.envMap)switch(t.envMapMode){case r:case s:e=\"ENVMAP_TYPE_CUBE\";break;case l:case c:e=\"ENVMAP_TYPE_CUBE_UV\"}return e}(n),m=function(t){let e=\"ENVMAP_MODE_REFLECTION\";if(t.envMap)switch(t.envMapMode){case s:case c:e=\"ENVMAP_MODE_REFRACTION\"}return e}(n),f=function(t){let e=\"ENVMAP_BLENDING_NONE\";if(t.envMap)switch(t.combine){case 0:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case 1:e=\"ENVMAP_BLENDING_MIX\";break;case 2:e=\"ENVMAP_BLENDING_ADD\"}return e}(n),g=t.gammaFactor>0?t.gammaFactor:1,v=n.isWebGL2?\"\":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||\"physical\"===t.shaderID?\"#extension GL_OES_standard_derivatives : enable\":\"\",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?\"#extension GL_EXT_frag_depth : enable\":\"\",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?\"#extension GL_EXT_draw_buffers : require\":\"\",(t.extensionShaderTextureLOD||t.envMap||t.transmission>0)&&t.rendererExtensionShaderTextureLod?\"#extension GL_EXT_shader_texture_lod : enable\":\"\"].filter(Or).join(\"\\n\")}(n),y=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push(\"#define \"+n+\" \"+i)}return e.join(\"\\n\")}(o),x=a.createProgram();let _,b,M=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";n.isRawShaderMaterial?(_=[y].filter(Or).join(\"\\n\"),_.length>0&&(_+=\"\\n\"),b=[v,y].filter(Or).join(\"\\n\"),b.length>0&&(b+=\"\\n\")):(_=[Jr(n),\"#define SHADER_NAME \"+n.shaderName,y,n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+g,\"#define MAX_BONES \"+n.maxBones,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+m:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&!1===n.flatShading?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+d:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(Or).join(\"\\n\"),b=[v,Jr(n),\"#define SHADER_NAME \"+n.shaderName,y,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest+(n.alphaTest%1?\"\":\".0\"):\"\",\"#define GAMMA_FACTOR \"+g,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+p:\"\",n.envMap?\"#define \"+m:\"\",n.envMap?\"#define \"+f:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+d:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",0!==n.toneMapping?\"#define TONE_MAPPING\":\"\",0!==n.toneMapping?hi.tonemapping_pars_fragment:\"\",0!==n.toneMapping?Fr(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",hi.encodings_pars_fragment,n.map?Br(\"mapTexelToLinear\",n.mapEncoding):\"\",n.matcap?Br(\"matcapTexelToLinear\",n.matcapEncoding):\"\",n.envMap?Br(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMap?Br(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.lightMap?Br(\"lightMapTexelToLinear\",n.lightMapEncoding):\"\",zr(\"linearToOutputTexel\",n.outputEncoding),n.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(Or).join(\"\\n\")),h=kr(h),h=Hr(h,n),h=Ur(h,n),u=kr(u),u=Hr(u,n),u=Ur(u,n),h=qr(h),u=qr(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M=\"#version 300 es\\n\",_=[\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+_,b=[\"#define varying in\",n.glslVersion===it?\"\":\"out highp vec4 pc_fragColor;\",n.glslVersion===it?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+b);const w=M+b+u,S=Pr(a,35633,M+_+h),T=Pr(a,35632,w);if(a.attachShader(x,S),a.attachShader(x,T),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,\"position\"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=Nr(a,S,\"vertex\"),n=Nr(a,T,\"fragment\");console.error(\"THREE.WebGLProgram: shader error: \",a.getError(),\"35715\",a.getProgramParameter(x,35715),\"gl.getProgramInfoLog\",t,e,n)}else\"\"!==t?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",t):\"\"!==e&&\"\"!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:b}})}let E,A;return a.deleteShader(S),a.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new Cr(a,x)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r).name;n[i]=t.getAttribLocation(e,i)}return n}(a,x)),A},this.destroy=function(){i.releaseStatesOfProgram(this),a.deleteProgram(x),this.program=void 0},this.name=n.shaderName,this.id=Dr++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=S,this.fragmentShader=T,this}function Qr(t,e,n,i,r,s){const a=[],o=i.isWebGL2,h=i.logarithmicDepthBuffer,u=i.floatVertexTextures,d=i.maxVertexUniforms,p=i.vertexTextures;let m=i.precision;const f={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"},g=[\"precision\",\"isWebGL2\",\"supportsVertexTextures\",\"outputEncoding\",\"instancing\",\"instancingColor\",\"map\",\"mapEncoding\",\"matcap\",\"matcapEncoding\",\"envMap\",\"envMapMode\",\"envMapEncoding\",\"envMapCubeUV\",\"lightMap\",\"lightMapEncoding\",\"aoMap\",\"emissiveMap\",\"emissiveMapEncoding\",\"bumpMap\",\"normalMap\",\"objectSpaceNormalMap\",\"tangentSpaceNormalMap\",\"clearcoatMap\",\"clearcoatRoughnessMap\",\"clearcoatNormalMap\",\"displacementMap\",\"specularMap\",\"roughnessMap\",\"metalnessMap\",\"gradientMap\",\"alphaMap\",\"combine\",\"vertexColors\",\"vertexAlphas\",\"vertexTangents\",\"vertexUvs\",\"uvsVertexOnly\",\"fog\",\"useFog\",\"fogExp2\",\"flatShading\",\"sizeAttenuation\",\"logarithmicDepthBuffer\",\"skinning\",\"maxBones\",\"useVertexTexture\",\"morphTargets\",\"morphNormals\",\"premultipliedAlpha\",\"numDirLights\",\"numPointLights\",\"numSpotLights\",\"numHemiLights\",\"numRectAreaLights\",\"numDirLightShadows\",\"numPointLightShadows\",\"numSpotLightShadows\",\"shadowMapEnabled\",\"shadowMapType\",\"toneMapping\",\"physicallyCorrectLights\",\"alphaTest\",\"doubleSided\",\"flipSided\",\"numClippingPlanes\",\"numClipIntersection\",\"depthPacking\",\"dithering\",\"sheen\",\"transmission\",\"transmissionMap\",\"thicknessMap\"];function v(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\"),e=t.texture.encoding):e=X,e}return{getParameters:function(r,a,g,y,x){const _=y.fog,b=r.isMeshStandardMaterial?y.environment:null,M=e.get(r.envMap||b),w=f[r.type],S=x.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(u)return 1024;{const t=d,n=Math.floor((t-20)/4),i=Math.min(n,e.length);return i<e.length?(console.warn(\"THREE.WebGLRenderer: Skeleton has \"+e.length+\" bones. This GPU supports \"+i+\".\"),0):i}}(x):0;let T,E;if(null!==r.precision&&(m=i.getMaxPrecision(r.precision),m!==r.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",r.precision,\"not supported, using\",m,\"instead.\")),w){const t=di[w];T=t.vertexShader,E=t.fragmentShader}else T=r.vertexShader,E=r.fragmentShader;const A=t.getRenderTarget();return{isWebGL2:o,shaderID:w,shaderName:r.type,vertexShader:T,fragmentShader:E,defines:r.defines,isRawShaderMaterial:!0===r.isRawShaderMaterial,glslVersion:r.glslVersion,precision:m,instancing:!0===x.isInstancedMesh,instancingColor:!0===x.isInstancedMesh&&null!==x.instanceColor,supportsVertexTextures:p,outputEncoding:null!==A?v(A.texture):t.outputEncoding,map:!!r.map,mapEncoding:v(r.map),matcap:!!r.matcap,matcapEncoding:v(r.matcap),envMap:!!M,envMapMode:M&&M.mapping,envMapEncoding:v(M),envMapCubeUV:!!M&&(M.mapping===l||M.mapping===c),lightMap:!!r.lightMap,lightMapEncoding:v(r.lightMap),aoMap:!!r.aoMap,emissiveMap:!!r.emissiveMap,emissiveMapEncoding:v(r.emissiveMap),bumpMap:!!r.bumpMap,normalMap:!!r.normalMap,objectSpaceNormalMap:1===r.normalMapType,tangentSpaceNormalMap:0===r.normalMapType,clearcoatMap:!!r.clearcoatMap,clearcoatRoughnessMap:!!r.clearcoatRoughnessMap,clearcoatNormalMap:!!r.clearcoatNormalMap,displacementMap:!!r.displacementMap,roughnessMap:!!r.roughnessMap,metalnessMap:!!r.metalnessMap,specularMap:!!r.specularMap,alphaMap:!!r.alphaMap,gradientMap:!!r.gradientMap,sheen:!!r.sheen,transmission:!!r.transmission,transmissionMap:!!r.transmissionMap,thicknessMap:!!r.thicknessMap,combine:r.combine,vertexTangents:r.normalMap&&r.vertexTangents,vertexColors:r.vertexColors,vertexAlphas:!0===r.vertexColors&&x.geometry&&x.geometry.attributes.color&&4===x.geometry.attributes.color.itemSize,vertexUvs:!!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatMap||r.clearcoatRoughnessMap||r.clearcoatNormalMap||r.displacementMap||r.transmissionMap||r.thicknessMap),uvsVertexOnly:!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatNormalMap||r.transmission||r.transmissionMap||r.thicknessMap||!r.displacementMap),fog:!!_,useFog:r.fog,fogExp2:_&&_.isFogExp2,flatShading:!!r.flatShading,sizeAttenuation:r.sizeAttenuation,logarithmicDepthBuffer:h,skinning:!0===x.isSkinnedMesh&&S>0,maxBones:S,useVertexTexture:u,morphTargets:r.morphTargets,morphNormals:r.morphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&g.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:2===r.side,flipSided:1===r.side,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:o||n.has(\"EXT_frag_depth\"),rendererExtensionDrawBuffers:o||n.has(\"WEBGL_draw_buffers\"),rendererExtensionShaderTextureLod:o||n.has(\"EXT_shader_texture_lod\"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<g.length;t++)n.push(e[g[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=f[t.type];let n;if(e){const t=di[e];n=qn.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new Zr(t,n,e,r),a.push(i)),i},releaseProgram:function(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function Kr(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function $r(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function ts(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function es(t){const e=[];let n=0;const i=[],r=[],s=[],a={id:-1};function o(i,r,s,o,l,c){let h=e[n];const u=t.get(s);return void 0===h?(h={id:i.id,object:i,geometry:r,material:s,program:u.program||a,groupOrder:o,renderOrder:i.renderOrder,z:l,group:c},e[n]=h):(h.id=i.id,h.object=i,h.geometry=r,h.material=s,h.program=u.program||a,h.groupOrder=o,h.renderOrder=i.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:i,transmissive:r,transparent:s,init:function(){n=0,i.length=0,r.length=0,s.length=0},push:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.push(h):!0===n.transparent?s.push(h):i.push(h)},unshift:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.unshift(h):!0===n.transparent?s.unshift(h):i.unshift(h)},finish:function(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){i.length>1&&i.sort(t||$r),r.length>1&&r.sort(e||ts),s.length>1&&s.sort(e||ts)}}}function ns(t){let e=new WeakMap;return{get:function(n,i){let r;return!1===e.has(n)?(r=new es(t),e.set(n,[r])):i>=e.get(n).length?(r=new es(t),e.get(n).push(r)):r=e.get(n)[i],r},dispose:function(){e=new WeakMap}}}function is(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={direction:new Rt,color:new Qe};break;case\"SpotLight\":n={position:new Rt,direction:new Rt,color:new Qe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new Rt,color:new Qe,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new Rt,skyColor:new Qe,groundColor:new Qe};break;case\"RectAreaLight\":n={color:new Qe,position:new Rt,halfWidth:new Rt,halfHeight:new Rt}}return t[e.id]=n,n}}}let rs=0;function ss(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function as(t,e){const n=new is,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":case\"SpotLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt};break;case\"PointLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)r.probe.push(new Rt);const s=new Rt,a=new ae,o=new ae;return{setup:function(s){let a=0,o=0,l=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,m=0,f=0,g=0;s.sort(ss);for(let t=0,e=s.length;t<e;t++){const e=s[t],v=e.color,y=e.intensity,x=e.distance,_=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=v.r*y,o+=v.g*y,l+=v.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)r.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.directionalShadow[c]=n,r.directionalShadowMap[c]=_,r.directionalShadowMatrix[c]=e.shadow.matrix,m++}r.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(v).multiplyScalar(y),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.spotShadow[u]=n,r.spotShadowMap[u]=_,r.spotShadowMatrix[u]=e.shadow.matrix,g++}r.spot[u]=t,u++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(v).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),r.rectArea[d]=t,d++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,r.pointShadow[h]=n,r.pointShadowMap[h]=_,r.pointShadowMatrix[h]=e.shadow.matrix,f++}r.point[h]=t,h++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),r.hemi[p]=t,p++}}d>0&&(e.isWebGL2||!0===t.has(\"OES_texture_float_linear\")?(r.rectAreaLTC1=ui.LTC_FLOAT_1,r.rectAreaLTC2=ui.LTC_FLOAT_2):!0===t.has(\"OES_texture_half_float_linear\")?(r.rectAreaLTC1=ui.LTC_HALF_1,r.rectAreaLTC2=ui.LTC_HALF_2):console.error(\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\")),r.ambient[0]=a,r.ambient[1]=o,r.ambient[2]=l;const v=r.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===m&&v.numPointShadows===f&&v.numSpotShadows===g||(r.directional.length=c,r.spot.length=u,r.rectArea.length=d,r.point.length=h,r.hemi.length=p,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=g,r.spotShadowMap.length=g,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=f,r.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=m,v.numPointShadows=f,v.numSpotShadows=g,r.version=rs++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=r.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),s.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=r.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),s.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=r.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),o.identity(),a.copy(d.matrixWorld),a.premultiply(u),o.extractRotation(a),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(o),t.halfHeight.applyMatrix4(o),c++}else if(d.isPointLight){const t=r.point[i];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),i++}else if(d.isHemisphereLight){const t=r.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:r}}function os(t,e){const n=new as(t,e),i=[],r=[];return{init:function(){i.length=0,r.length=0},state:{lightsArray:i,shadowsArray:r,lights:n},setupLights:function(){n.setup(i)},setupLightsView:function(t){n.setupView(i,t)},pushLight:function(t){i.push(t)},pushShadow:function(t){r.push(t)}}}function ls(t,e){let n=new WeakMap;return{get:function(i,r=0){let s;return!1===n.has(i)?(s=new os(t,e),n.set(i,[s])):r>=n.get(i).length?(s=new os(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class cs extends We{constructor(t){super(),this.type=\"MeshDepthMaterial\",this.depthPacking=3200,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}cs.prototype.isMeshDepthMaterial=!0;class hs extends We{constructor(t){super(),this.type=\"MeshDistanceMaterial\",this.referencePosition=new Rt,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}hs.prototype.isMeshDistanceMaterial=!0;function us(t,e,n){let i=new ai;const r=new vt,s=new vt,a=new St,o=[],l=[],c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new Xn({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new vt},radius:{value:4}},vertexShader:\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\",fragmentShader:\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean * HALF_SAMPLE_RATE;\\n\\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new wn;f.setAttribute(\"position\",new en(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Gn(f,d),y=this;function x(n,i){const r=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(t){const e=t<<0;let n=o[e];return void 0===n&&(n=new cs({depthPacking:3201,morphTargets:t}),o[e]=n),n}function b(t){const e=t<<0;let n=l[e];return void 0===n&&(n=new hs({morphTargets:t}),l[e]=n),n}function M(e,n,i,r,s,a,o){let l=null,h=_,d=e.customDepthMaterial;if(!0===r.isPointLight&&(h=b,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===i.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0),l=h(t)}else l=d;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){const t=l.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let r=n[e];void 0===r&&(r=l.clone(),n[e]=r),l=r}return l.visible=i.visible,l.wireframe=i.wireframe,l.side=3===o?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],l.clipShadows=i.clipShadows,l.clippingPlanes=i.clippingPlanes,l.clipIntersection=i.clipIntersection,l.wireframeLinewidth=i.wireframeLinewidth,l.linewidth=i.linewidth,!0===r.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(r.matrixWorld),l.nearDistance=s,l.farDistance=a),l}function w(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=r[c.materialIndex];if(h&&h.visible){const e=M(n,i,h,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,c)}}}else if(r.visible){const e=M(n,i,r,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)w(l[t],r,s,a,o)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,o){if(!1===y.enabled)return;if(!1===y.autoUpdate&&!1===y.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;r.copy(u.mapSize);const m=u.getFrameExtents();if(r.multiply(m),s.copy(u.mapSize),(r.x>h||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+\".shadowMap\",u.mapPass=new Tt(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+\".shadowMap\",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t<f;t++){const e=u.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),u.updateMatrices(c,t),i=u.getFrustum(),w(n,o,u.camera,c,this.type)}u.isPointLightShadow||3!==this.type||x(u,o),u.needsUpdate=!1}y.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function ds(t,e,i){const r=i.isWebGL2;const s=new function(){let e=!1;const n=new St;let i=null;const r=new St(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},a=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(t){t?O(2929):H(2929)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},o=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null;return{setTest:function(t){e||(t?O(2960):H(2960))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&l===i||(t.stencilOp(e,n,i),a=e,o=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null}}};let l={},c=null,h={},u=null,d=!1,p=null,m=null,f=null,g=null,v=null,y=null,x=null,_=!1,b=null,M=null,w=null,S=null,T=null;const E=t.getParameter(35661);let A=!1,L=0;const R=t.getParameter(7938);-1!==R.indexOf(\"WebGL\")?(L=parseFloat(/^WebGL (\\d)/.exec(R)[1]),A=L>=1):-1!==R.indexOf(\"OpenGL ES\")&&(L=parseFloat(/^OpenGL ES (\\d)/.exec(R)[1]),A=L>=2);let C=null,P={};const D=t.getParameter(3088),I=t.getParameter(2978),N=(new St).fromArray(D),B=(new St).fromArray(I);function z(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<i;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,r);return s}const F={};function O(e){!0!==l[e]&&(t.enable(e),l[e]=!0)}function H(e){!1!==l[e]&&(t.disable(e),l[e]=!1)}F[3553]=z(3553,3553,1),F[34067]=z(34067,34069,6),s.setClear(0,0,0,1),a.setClear(1),o.setClear(0),O(2929),a.setFunc(3),V(!1),W(1),O(2884),k(0);const U={[n]:32774,101:32778,102:32779};if(r)U[103]=32775,U[104]=32776;else{const t=e.get(\"EXT_blend_minmax\");null!==t&&(U[103]=t.MIN_EXT,U[104]=t.MAX_EXT)}const G={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function k(e,i,r,s,a,o,l,c){if(0!==e){if(!1===d&&(O(3042),d=!0),5===e)a=a||i,o=o||r,l=l||s,i===m&&a===v||(t.blendEquationSeparate(U[i],U[a]),m=i,v=a),r===f&&s===g&&o===y&&l===x||(t.blendFuncSeparate(G[r],G[s],G[o],G[l]),f=r,g=s,y=o,x=l),p=e,_=null;else if(e!==p||c!==_){if(m===n&&v===n||(t.blendEquation(32774),m=n,v=n),c)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}f=null,g=null,y=null,x=null,p=e,_=c}}else!0===d&&(H(3042),d=!1)}function V(e){b!==e&&(e?t.frontFace(2304):t.frontFace(2305),b=e)}function W(e){0!==e?(O(2884),e!==M&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):H(2884),M=e}function j(e,n,i){e?(O(32823),S===n&&T===i||(t.polygonOffset(n,i),S=n,T=i)):H(32823)}function q(e){void 0===e&&(e=33984+E-1),C!==e&&(t.activeTexture(e),C=e)}return{buffers:{color:s,depth:a,stencil:o},enable:O,disable:H,bindFramebuffer:function(e,n){return null===n&&null!==c&&(n=c),h[e]!==n&&(t.bindFramebuffer(e,n),h[e]=n,r&&(36009===e&&(h[36160]=n),36160===e&&(h[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==c&&(t.bindFramebuffer(36160,e),c=e)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:k,setMaterial:function(t,e){2===t.side?H(2884):O(2884);let n=1===t.side;e&&(n=!n),V(n),1===t.blending&&!1===t.transparent?k(0):k(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),a.setFunc(t.depthFunc),a.setTest(t.depthTest),a.setMask(t.depthWrite),s.setMask(t.colorWrite);const i=t.stencilWrite;o.setTest(i),i&&(o.setMask(t.stencilWriteMask),o.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),o.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),j(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?O(32926):H(32926)},setFlipSided:V,setCullFace:W,setLineWidth:function(e){e!==w&&(A&&t.lineWidth(e),w=e)},setPolygonOffset:j,setScissorTest:function(t){t?O(3089):H(3089)},activeTexture:q,bindTexture:function(e,n){null===C&&q();let i=P[C];void 0===i&&(i={type:void 0,texture:void 0},P[C]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||F[e]),i.type=e,i.texture=n)},unbindTexture:function(){const e=P[C];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},scissor:function(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function(e){!1===B.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),B.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===r&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),l={},C=null,P={},c=null,h={},u=null,d=!1,p=null,m=null,f=null,g=null,v=null,y=null,x=null,_=!1,b=null,M=null,w=null,S=null,T=null,N.set(0,0,t.canvas.width,t.canvas.height),B.set(0,0,t.canvas.width,t.canvas.height),s.reset(),a.reset(),o.reset()}}}function ps(t,e,n,i,r,s,a){const o=r.isWebGL2,l=r.maxTextures,c=r.maxCubemapSize,x=r.maxTextureSize,R=r.maxSamples,C=new WeakMap;let P,D=!1;try{D=\"undefined\"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\"2d\")}catch(t){}function I(t,e){return D?new OffscreenCanvas(t,e):document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")}function N(t,e,n,i){let r=1;if((t.width>i||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if(\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ft:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===P&&(P=I(s,a));const o=n?I(s,a):P;o.width=s,o.height=a;return o.getContext(\"2d\").drawImage(t,0,0,s,a),console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+t.width+\"x\"+t.height+\") to (\"+s+\"x\"+a+\").\"),o}return\"data\"in t&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+t.width+\"x\"+t.height+\").\"),t}return t}function B(t){return pt(t.width)&&pt(t.height)}function z(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e,n,r,s,a=1){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(r,s,a))}function O(n,i,r){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let s=i;return 6403===i&&(5126===r&&(s=33326),5131===r&&(s=33325),5121===r&&(s=33321)),6407===i&&(5126===r&&(s=34837),5131===r&&(s=34843),5121===r&&(s=32849)),6408===i&&(5126===r&&(s=34836),5131===r&&(s=34842),5121===r&&(s=32856)),33325!==s&&33326!==s&&34842!==s&&34836!==s||e.get(\"EXT_color_buffer_float\"),s}function H(t){return t===p||t===m||t===f?9728:9729}function U(e){const n=e.target;n.removeEventListener(\"dispose\",U),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&C.delete(n),a.memory.textures--}function G(e){const n=e.target;n.removeEventListener(\"dispose\",G),function(e){const n=e.texture,r=i.get(e),s=i.get(n);if(!e)return;void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);r.__webglTexture&&(t.deleteTexture(r.__webglTexture),a.memory.textures--),i.remove(n[e])}i.remove(n),i.remove(e)}(n)}let k=0;function V(t,e){const r=i.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;C.get(t)!==e&&(C.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\");else{if(!1!==n.complete)return void J(r,t,e);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function W(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;Y(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?i.image[t].image:i.image[t]:N(i.image[t],!1,!0,c);const u=h[0],d=B(u)||o,p=s.convert(i.format),m=s.convert(i.type),f=O(i.internalFormat,p,m);let g;if(X(34067,i,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e<g.length;e++){const r=g[e];i.format!==E&&i.format!==T?null!==p?n.compressedTexImage2D(34069+t,e,f,r.width,r.height,0,r.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):n.texImage2D(34069+t,e,f,r.width,r.height,0,p,m,r.data)}}e.__maxMipLevel=g.length-1}else{g=i.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,f,h[t].width,h[t].height,0,p,m,h[t].data);for(let e=0;e<g.length;e++){const i=g[e].image[t].image;n.texImage2D(34069+t,e+1,f,i.width,i.height,0,p,m,i.data)}}else{n.texImage2D(34069+t,0,f,p,m,h[t]);for(let e=0;e<g.length;e++){const i=g[e];n.texImage2D(34069+t,e+1,f,p,m,i.image[t])}}e.__maxMipLevel=g.length}z(i,d)&&F(34067,i,u.width,u.height);e.__version=i.version,i.onUpdate&&i.onUpdate(i)}(a,e,r):(n.activeTexture(33984+r),n.bindTexture(34067,a.__webglTexture))}const j={[h]:10497,[u]:33071,[d]:33648},q={[p]:9728,[m]:9984,[f]:9986,[g]:9729,[v]:9985,[y]:9987};function X(n,s,a){if(a?(t.texParameteri(n,10242,j[s.wrapS]),t.texParameteri(n,10243,j[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,j[s.wrapR]),t.texParameteri(n,10240,q[s.magFilter]),t.texParameteri(n,10241,q[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===u&&s.wrapT===u||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\"),t.texParameteri(n,10240,H(s.magFilter)),t.texParameteri(n,10241,H(s.minFilter)),s.minFilter!==p&&s.minFilter!==g&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\")),!0===e.has(\"EXT_texture_filter_anisotropic\")){const a=e.get(\"EXT_texture_filter_anisotropic\");if(s.type===M&&!1===e.has(\"OES_texture_float_linear\"))return;if(!1===o&&s.type===w&&!1===e.has(\"OES_texture_half_float_linear\"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function Y(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",U),e.__webglTexture=t.createTexture(),a.memory.textures++)}function J(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),Y(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===B(i.image),c=N(i.image,l,!1,x),h=B(c)||o,d=s.convert(i.format);let m,f=s.convert(i.type),v=O(i.internalFormat,d,f);X(a,i,h);const y=i.mipmaps;if(i.isDepthTexture)v=6402,o?v=i.type===M?36012:i.type===b?33190:i.type===S?35056:33189:i.type===M&&console.error(\"WebGLRenderer: Floating point depth texture requires WebGL2.\"),i.format===A&&6402===v&&i.type!==_&&i.type!==b&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),i.type=_,f=s.convert(i.type)),i.format===L&&6402===v&&(v=34041,i.type!==S&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),i.type=S,f=s.convert(i.type))),n.texImage2D(3553,0,v,c.width,c.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){for(let t=0,e=y.length;t<e;t++)m=y[t],n.texImage2D(3553,t,v,m.width,m.height,0,d,f,m.data);i.generateMipmaps=!1,e.__maxMipLevel=y.length-1}else n.texImage2D(3553,0,v,c.width,c.height,0,d,f,c.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let t=0,e=y.length;t<e;t++)m=y[t],i.format!==E&&i.format!==T?null!==d?n.compressedTexImage2D(3553,t,v,m.width,m.height,0,m.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):n.texImage2D(3553,t,v,m.width,m.height,0,d,f,m.data);e.__maxMipLevel=y.length-1}else if(i.isDataTexture2DArray)n.texImage3D(35866,0,v,c.width,c.height,c.depth,0,d,f,c.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(32879,0,v,c.width,c.height,c.depth,0,d,f,c.data),e.__maxMipLevel=0;else if(y.length>0&&h){for(let t=0,e=y.length;t<e;t++)m=y[t],n.texImage2D(3553,t,v,d,f,m);i.generateMipmaps=!1,e.__maxMipLevel=y.length-1}else n.texImage2D(3553,0,v,d,f,c),e.__maxMipLevel=0;z(i,h)&&F(a,i,c.width,c.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function Z(e,r,a,o,l){const c=s.convert(a.format),h=s.convert(a.type),u=O(a.internalFormat,c,h);32879===l||35866===l?n.texImage3D(l,0,u,r.width,r.height,r.depth,0,c,h,null):n.texImage2D(l,0,u,r.width,r.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function Q(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===M?r=36012:e.type===b&&(r=33190));const i=$(n);t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=$(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,r=s.convert(e.format),a=s.convert(e.type),o=O(e.internalFormat,r,a);if(i){const e=$(n);t.renderbufferStorageMultisample(36161,e,o,n.width,n.height)}else t.renderbufferStorage(36161,o,n.width,n.height)}t.bindRenderbuffer(36161,null)}function K(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(s)throw new Error(\"target.depthTexture not supported in Cube render targets\");!function(e,r){if(r&&r.isWebGLCubeRenderTarget)throw new Error(\"Depth Texture with cube render targets is not supported\");if(n.bindFramebuffer(36160,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");i.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),V(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture;if(r.depthTexture.format===A)t.framebufferTexture2D(36160,36096,3553,s,0);else{if(r.depthTexture.format!==L)throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(36160,33306,3553,s,0)}}(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(36160,r.__webglFramebuffer[i]),r.__webglDepthbuffer[i]=t.createRenderbuffer(),Q(r.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(36160,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),Q(r.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function $(t){return o&&t.isWebGLMultisampleRenderTarget?Math.min(R,t.samples):0}let tt=!1,et=!1;this.allocateTextureUnit=function(){const t=k;return t>=l&&console.warn(\"THREE.WebGLTextures: Trying to use \"+t+\" texture units while this GPU supports only \"+l),k+=1,t},this.resetTextureUnits=function(){k=0},this.setTexture2D=V,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?J(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?J(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=W,this.setupRenderTarget=function(e){const l=e.texture,c=i.get(e),h=i.get(l);e.addEventListener(\"dispose\",G),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,a.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,m=l.isDataTexture3D||l.isDataTexture2DArray,f=B(e)||o;if(!o||l.format!==T||l.type!==M&&l.type!==w||(l.format=E,console.warn(\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(r.drawBuffers){const n=e.texture;for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);void 0===r.__webglTexture&&(r.__webglTexture=t.createTexture(),a.memory.textures++)}}else console.warn(\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\");else if(p)if(o){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=s.convert(l.format),r=s.convert(l.type),a=O(l.internalFormat,i,r),o=$(e);t.renderbufferStorageMultisample(36161,o,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),Q(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\");if(u){n.bindTexture(34067,h.__webglTexture),X(34067,l,f);for(let t=0;t<6;t++)Z(c.__webglFramebuffer[t],e,l,36064,34069+t);z(l,f)&&F(34067,l,e.width,e.height),n.bindTexture(34067,null)}else if(d){const t=e.texture;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=i.get(s);n.bindTexture(3553,a.__webglTexture),X(3553,s,f),Z(c.__webglFramebuffer,e,s,36064+r,3553),z(s,f)&&F(3553,s,e.width,e.height)}n.bindTexture(3553,null)}else{let t=3553;if(m)if(o){t=l.isDataTexture3D?32879:35866}else console.warn(\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\");n.bindTexture(t,h.__webglTexture),X(t,l,f),Z(c.__webglFramebuffer,e,l,36064,t),z(l,f)&&F(t,l,e.width,e.height,e.depth),n.bindTexture(t,null)}e.depthBuffer&&K(e)},this.updateRenderTargetMipmap=function(t){const e=B(t)||o,r=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let s=0,a=r.length;s<a;s++){const a=r[s];if(z(a,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,r=i.get(a).__webglTexture;n.bindTexture(e,r),F(e,a,t.width,t.height),n.bindTexture(e,null)}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(o){const r=e.width,s=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const o=i.get(e);n.bindFramebuffer(36008,o.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,o.__webglFramebuffer),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,o.__webglMultisampledFramebuffer)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===tt&&(console.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\"),tt=!0),t=t.texture),V(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===et&&(console.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),et=!0),t=t.texture),W(t,e)}}function ms(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===b)return 5125;if(t===M)return 5126;if(t===w)return i?5131:(n=e.get(\"OES_texture_half_float\"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6407;if(t===E)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===A)return 6402;if(t===L)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(t===R||t===C||t===P||t===D){if(n=e.get(\"WEBGL_compressed_texture_s3tc\"),null===n)return null;if(t===R)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===P)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===D)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===I||t===N||t===B||t===z){if(n=e.get(\"WEBGL_compressed_texture_pvrtc\"),null===n)return null;if(t===I)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===N)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===B)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===z)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get(\"WEBGL_compressed_texture_etc1\"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((t===F||t===O)&&(n=e.get(\"WEBGL_compressed_texture_etc\"),null!==n)){if(t===F)return n.COMPRESSED_RGB8_ETC2;if(t===O)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get(\"WEBGL_compressed_texture_astc\"),null!==n?t:null):36492===t?(n=e.get(\"EXT_texture_compression_bptc\"),null!==n?t:null):t===S?i?34042:(n=e.get(\"WEBGL_depth_texture\"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class fs extends Jn{constructor(t=[]){super(),this.cameras=t}}fs.prototype.isArrayCamera=!0;class gs extends Pe{constructor(){super(),this.type=\"Group\"}}gs.prototype.isGroup=!0;const vs={type:\"move\"};class ys{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new gs,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new gs,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Rt,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Rt),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new gs,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Rt,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Rt),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:\"disconnected\",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&\"visible-blurred\"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(vs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new gs;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints[\"index-finger-tip\"],r=l.joints[\"thumb-tip\"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:\"pinchend\",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:\"pinchstart\",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class xs extends rt{constructor(t,e){super();const n=this,i=t.state;let r=null,s=1,a=null,o=\"local-floor\",l=null,c=null,h=null,u=null;const d=[],p=new Map,m=new Jn;m.layers.enable(1),m.viewport=new St;const f=new Jn;f.layers.enable(2),f.viewport=new St;const g=[m,f],v=new fs;v.layers.enable(1),v.layers.enable(2);let y=null,x=null;function _(t){const e=p.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function b(){p.forEach((function(t,e){t.disconnect(e)})),p.clear(),y=null,x=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),A.stop(),n.isPresenting=!1,n.dispatchEvent({type:\"sessionend\"})}function M(t){const e=r.inputSources;for(let t=0;t<d.length;t++)p.set(e[t],d[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=p.get(n);i&&(i.dispatchEvent({type:\"disconnected\",data:n}),p.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],i=p.get(n);i&&i.dispatchEvent({type:\"connected\",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=d[t];return void 0===e&&(e=new ys,d[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=d[t];return void 0===e&&(e=new ys,d[t]=e),e.getGripSpace()},this.getHand=function(t){let e=d[t];return void 0===e&&(e=new ys,d[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){s=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")},this.setReferenceSpaceType=function(t){o=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")},this.getReferenceSpace=function(){return a},this.getSession=function(){return r},this.setSession=async function(t){if(r=t,null!==r){r.addEventListener(\"select\",_),r.addEventListener(\"selectstart\",_),r.addEventListener(\"selectend\",_),r.addEventListener(\"squeeze\",_),r.addEventListener(\"squeezestart\",_),r.addEventListener(\"squeezeend\",_),r.addEventListener(\"end\",b),r.addEventListener(\"inputsourceschange\",M);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===r.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:s},i=new XRWebGLLayer(r,e,n);r.updateRenderState({baseLayer:i})}else{let n=0;t.depth&&(n=t.stencil?34041:6402);const i={colorFormat:t.alpha?6408:6407,depthFormat:n,scaleFactor:s};c=new XRWebGLBinding(r,e),u=c.createProjectionLayer(i),h=e.createFramebuffer(),r.updateRenderState({layers:[u]})}a=await r.requestReferenceSpace(o),A.setContext(r),A.start(),n.isPresenting=!0,n.dispatchEvent({type:\"sessionstart\"})}};const w=new Rt,S=new Rt;function T(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===r)return;v.near=f.near=m.near=t.near,v.far=f.far=m.far=t.far,y===v.near&&x===v.far||(r.updateRenderState({depthNear:v.near,depthFar:v.far}),y=v.near,x=v.far);const e=t.parent,n=v.cameras;T(v,e);for(let t=0;t<n.length;t++)T(n[t],e);v.matrixWorld.decompose(v.position,v.quaternion,v.scale),t.position.copy(v.position),t.quaternion.copy(v.quaternion),t.scale.copy(v.scale),t.matrix.copy(v.matrix),t.matrixWorld.copy(v.matrixWorld);const i=t.children;for(let t=0,e=i.length;t<e;t++)i[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){w.setFromMatrixPosition(e.matrixWorld),S.setFromMatrixPosition(n.matrixWorld);const i=w.distanceTo(S),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),l=(r[9]+1)/r[5],c=(r[9]-1)/r[5],h=(r[8]-1)/r[0],u=(s[8]+1)/s[0],d=a*h,p=a*u,m=i/(-h+u),f=m*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(f),t.translateZ(m),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+m,v=o+m,y=d-f,x=p+(i-f),_=l*o/v*g,b=c*o/v*g;t.projectionMatrix.makePerspective(y,x,_,b,g,v)}(v,m,f):v.projectionMatrix.copy(m.projectionMatrix)},this.getCamera=function(){return v};let E=null;const A=new oi;A.setAnimationLoop((function(t,n){if(l=n.getViewerPose(a),null!==l){const t=l.views,n=r.renderState.baseLayer;void 0===r.renderState.layers&&i.bindXRFramebuffer(n.framebuffer);let s=!1;t.length!==v.cameras.length&&(v.cameras.length=0,s=!0);for(let a=0;a<t.length;a++){const o=t[a];let l=null;if(void 0===r.renderState.layers)l=n.getViewport(o);else{const t=c.getViewSubImage(u,o);i.bindXRFramebuffer(h),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,36096,3553,t.depthStencilTexture,0),l=t.viewport}const d=g[a];d.matrix.fromArray(o.transform.matrix),d.projectionMatrix.fromArray(o.projectionMatrix),d.viewport.set(l.x,l.y,l.width,l.height),0===a&&v.matrix.copy(d.matrix),!0===s&&v.cameras.push(d)}}const s=r.inputSources;for(let t=0;t<d.length;t++){const e=d[t],i=s[t];e.update(i,n,a)}E&&E(t,n)})),this.setAnimationLoop=function(t){E=t},this.dispose=function(){}}}function _s(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&i._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const r=t.get(i).__maxMipLevel;void 0!==r&&(e.maxMipLevel.value=r)}let r,s;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(r=n.clearcoatRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uv2Transform.value.copy(s.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,r,s,a){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen);e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap);e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap);e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate());t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap);e.transmission>0&&(t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height));t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap);t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)}(t,i,a):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let r;e.map?r=e.map:e.alphaMap&&(r=e.alphaMap);void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}(t,i,r,s):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function bs(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");return t.style.display=\"block\",t}(),n=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,r=void 0===t.depth||t.depth,s=void 0===t.stencil||t.stencil,a=void 0!==t.antialias&&t.antialias,o=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:\"default\",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let d=null,m=null;const f=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=X,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const v=this;let _=!1,b=0,S=0,T=null,A=-1,L=null;const R=new St,C=new St;let P=null,D=e.width,I=e.height,N=1,B=null,z=null;const F=new St(0,0,D,I),O=new St(0,0,D,I);let H=!1;const U=[],G=new ai;let k=!1,V=!1,W=null;const j=new ae,q=new Rt,Y={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function J(){return null===T?N:1}let Z,Q,K,$,tt,et,nt,it,rt,st,at,ot,lt,ct,ht,ut,dt,pt,mt,ft,gt,vt,yt=n;function xt(t,n){for(let i=0;i<t.length;i++){const r=t[i],s=e.getContext(r,n);if(null!==s)return s}return null}try{const t={alpha:i,depth:r,stencil:s,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener(\"webglcontextlost\",Mt,!1),e.addEventListener(\"webglcontextrestored\",wt,!1),null===yt){const e=[\"webgl2\",\"webgl\",\"experimental-webgl\"];if(!0===v.isWebGL1Renderer&&e.shift(),yt=xt(e,t),null===yt)throw xt(e)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}void 0===yt.getShaderPrecisionFormat&&(yt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error(\"THREE.WebGLRenderer: \"+t.message),t}function _t(){Z=new xi(yt),Q=new gi(yt,Z,t),Z.init(Q),gt=new ms(yt,Z,Q),K=new ds(yt,Z,Q),U[0]=1029,$=new Mi(yt),tt=new Kr,et=new ps(yt,Z,K,tt,Q,gt,$),nt=new yi(v),it=new li(yt,Q),vt=new mi(yt,Z,it,Q),rt=new _i(yt,it,$,vt),st=new Ei(yt,rt,it,$),pt=new Ti(yt),ht=new vi(tt),at=new Qr(v,nt,Z,Q,vt,ht),ot=new _s(tt),lt=new ns(tt),ct=new ls(Z,Q),dt=new pi(v,nt,K,st,o),ut=new us(v,st,Q),mt=new fi(yt,Z,$,Q),ft=new bi(yt,Z,$,Q),$.programs=at.programs,v.capabilities=Q,v.extensions=Z,v.properties=tt,v.renderLists=lt,v.shadowMap=ut,v.state=K,v.info=$}_t();const bt=new xs(v,yt);function Mt(t){t.preventDefault(),console.log(\"THREE.WebGLRenderer: Context Lost.\"),_=!0}function wt(){console.log(\"THREE.WebGLRenderer: Context Restored.\"),_=!1;const t=$.autoReset,e=ut.enabled,n=ut.autoUpdate,i=ut.needsUpdate,r=ut.type;_t(),$.autoReset=t,ut.enabled=e,ut.autoUpdate=n,ut.needsUpdate=i,ut.type=r}function Et(t){const e=t.target;e.removeEventListener(\"dispose\",Et),function(t){(function(t){const e=tt.get(t).programs;void 0!==e&&e.forEach((function(t){at.releaseProgram(t)}))})(t),tt.remove(t)}(e)}this.xr=bt,this.getContext=function(){return yt},this.getContextAttributes=function(){return yt.getContextAttributes()},this.forceContextLoss=function(){const t=Z.get(\"WEBGL_lose_context\");t&&t.loseContext()},this.forceContextRestore=function(){const t=Z.get(\"WEBGL_lose_context\");t&&t.restoreContext()},this.getPixelRatio=function(){return N},this.setPixelRatio=function(t){void 0!==t&&(N=t,this.setSize(D,I,!1))},this.getSize=function(t){return t.set(D,I)},this.setSize=function(t,n,i){bt.isPresenting?console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\"):(D=t,I=n,e.width=Math.floor(t*N),e.height=Math.floor(n*N),!1!==i&&(e.style.width=t+\"px\",e.style.height=n+\"px\"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(D*N,I*N).floor()},this.setDrawingBufferSize=function(t,n,i){D=t,I=n,N=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(R)},this.getViewport=function(t){return t.copy(F)},this.setViewport=function(t,e,n,i){t.isVector4?F.set(t.x,t.y,t.z,t.w):F.set(t,e,n,i),K.viewport(R.copy(F).multiplyScalar(N).floor())},this.getScissor=function(t){return t.copy(O)},this.setScissor=function(t,e,n,i){t.isVector4?O.set(t.x,t.y,t.z,t.w):O.set(t,e,n,i),K.scissor(C.copy(O).multiplyScalar(N).floor())},this.getScissorTest=function(){return H},this.setScissorTest=function(t){K.setScissorTest(H=t)},this.setOpaqueSort=function(t){B=t},this.setTransparentSort=function(t){z=t},this.getClearColor=function(t){return t.copy(dt.getClearColor())},this.setClearColor=function(){dt.setClearColor.apply(dt,arguments)},this.getClearAlpha=function(){return dt.getClearAlpha()},this.setClearAlpha=function(){dt.setClearAlpha.apply(dt,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=16384),(void 0===e||e)&&(i|=256),(void 0===n||n)&&(i|=1024),yt.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(\"webglcontextlost\",Mt,!1),e.removeEventListener(\"webglcontextrestored\",wt,!1),lt.dispose(),ct.dispose(),tt.dispose(),nt.dispose(),st.dispose(),vt.dispose(),bt.dispose(),bt.removeEventListener(\"sessionstart\",Ct),bt.removeEventListener(\"sessionend\",Pt),W&&(W.dispose(),W=null),Dt.stop()},this.renderBufferImmediate=function(t,e){vt.initAttributes();const n=tt.get(t);t.hasPositions&&!n.position&&(n.position=yt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=yt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=yt.createBuffer()),t.hasColors&&!n.color&&(n.color=yt.createBuffer());const i=e.getAttributes();t.hasPositions&&(yt.bindBuffer(34962,n.position),yt.bufferData(34962,t.positionArray,35048),vt.enableAttribute(i.position),yt.vertexAttribPointer(i.position,3,5126,!1,0,0)),t.hasNormals&&(yt.bindBuffer(34962,n.normal),yt.bufferData(34962,t.normalArray,35048),vt.enableAttribute(i.normal),yt.vertexAttribPointer(i.normal,3,5126,!1,0,0)),t.hasUvs&&(yt.bindBuffer(34962,n.uv),yt.bufferData(34962,t.uvArray,35048),vt.enableAttribute(i.uv),yt.vertexAttribPointer(i.uv,2,5126,!1,0,0)),t.hasColors&&(yt.bindBuffer(34962,n.color),yt.bufferData(34962,t.colorArray,35048),vt.enableAttribute(i.color),yt.vertexAttribPointer(i.color,3,5126,!1,0,0)),vt.disableUnusedAttributes(),yt.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=Y);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=Ot(t,e,i,r);K.setMaterial(i,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===i.wireframe&&(l=rt.getWireframeAttribute(n),u=2),(i.morphTargets||i.morphNormals)&&pt.update(r,n,i,o),vt.setup(r,i,o,n,l);let d=mt;null!==l&&(h=it.get(l),d=ft,d.setIndex(h));const p=null!==l?l.count:c.count,m=n.drawRange.start*u,f=n.drawRange.count*u,g=null!==s?s.start*u:0,v=null!==s?s.count*u:1/0,y=Math.max(m,g),x=Math.min(p,m+f,g+v)-1,_=Math.max(0,x-y+1);if(0!==_){if(r.isMesh)!0===i.wireframe?(K.setLineWidth(i.wireframeLinewidth*J()),d.setMode(1)):d.setMode(4);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),K.setLineWidth(t*J()),r.isLineSegments?d.setMode(1):r.isLineLoop?d.setMode(2):d.setMode(3)}else r.isPoints?d.setMode(0):r.isSprite&&d.setMode(4);if(r.isInstancedMesh)d.renderInstances(y,_,r.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,_,t)}else d.render(y,_)}},this.compile=function(t,e){m=ct.get(t),m.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))})),m.setupLights(),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let i=0;i<n.length;i++){zt(n[i],t,e)}else zt(n,t,e)}))};let Lt=null;function Ct(){Dt.stop()}function Pt(){Dt.start()}const Dt=new oi;function It(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)m.pushLight(t),t.castShadow&&m.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||G.intersectsSprite(t)){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=st.update(t),r=t.material;r.visible&&d.push(t,e,r,n,q.z,null)}}else if(t.isImmediateRenderObject)i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j),d.push(t,null,t.material,n,q.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==$.render.frame&&(t.skeleton.update(),t.skeleton.frame=$.render.frame),!t.frustumCulled||G.intersectsObject(t))){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=st.update(t),r=t.material;if(Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&d.push(t,e,o,n,q.z,a)}}else r.visible&&d.push(t,e,r,n,q.z,null)}const r=t.children;for(let t=0,s=r.length;t<s;t++)It(r[t],e,n,i)}function Nt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,l=null===i?s.material:i,c=s.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,i=t.length;n<i;n++){const i=t[n];a.layers.test(i.layers)&&(K.viewport(R.copy(i.viewport)),m.setupLightsView(i),Bt(a,e,i,o,l,c))}}else Bt(a,e,n,o,l,c)}}function Bt(t,e,n,i,r,s){if(t.onBeforeRender(v,e,n,i,r,s),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const i=Ot(n,e,r,t);K.setMaterial(r),vt.reset(),function(t,e){t.render((function(t){v.renderBufferImmediate(t,e)}))}(t,i)}else!0===r.transparent&&2===r.side?(r.side=1,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=0,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=2):v.renderBufferDirect(n,e,i,r,t,s);t.onAfterRender(v,e,n,i,r,s)}function zt(t,e,n){!0!==e.isScene&&(e=Y);const i=tt.get(t),r=m.state.lights,s=m.state.shadowsArray,a=r.state.version,o=at.getParameters(t,r.state,s,e,n),l=at.getProgramCacheKey(o);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=nt.get(t.envMap||i.environment),void 0===c&&(t.addEventListener(\"dispose\",Et),c=new Map,i.programs=c);let h=c.get(l);if(void 0!==h){if(i.currentProgram===h&&i.lightsStateVersion===a)return Ft(t,o),h}else o.uniforms=at.getUniforms(t),t.onBuild(o,v),t.onBeforeCompile(o,v),h=at.acquireProgram(o,l),c.set(l,h),i.uniforms=o.uniforms;const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ht.uniform),Ft(t,o),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=a,i.needsLights&&(u.ambientLightColor.value=r.state.ambient,u.lightProbe.value=r.state.probe,u.directionalLights.value=r.state.directional,u.directionalLightShadows.value=r.state.directionalShadow,u.spotLights.value=r.state.spot,u.spotLightShadows.value=r.state.spotShadow,u.rectAreaLights.value=r.state.rectArea,u.ltc_1.value=r.state.rectAreaLTC1,u.ltc_2.value=r.state.rectAreaLTC2,u.pointLights.value=r.state.point,u.pointLightShadows.value=r.state.pointShadow,u.hemisphereLights.value=r.state.hemi,u.directionalShadowMap.value=r.state.directionalShadowMap,u.directionalShadowMatrix.value=r.state.directionalShadowMatrix,u.spotShadowMap.value=r.state.spotShadowMap,u.spotShadowMatrix.value=r.state.spotShadowMatrix,u.pointShadowMap.value=r.state.pointShadowMap,u.pointShadowMatrix.value=r.state.pointShadowMatrix);const d=h.getUniforms(),p=Cr.seqWithValue(d.seq,u);return i.currentProgram=h,i.uniformsList=p,h}function Ft(t,e){const n=tt.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas}function Ot(t,e,n,i){!0!==e.isScene&&(e=Y),et.resetTextureUnits();const r=e.fog,s=n.isMeshStandardMaterial?e.environment:null,a=null===T?v.outputEncoding:T.texture.encoding,o=nt.get(n.envMap||s),l=!0===n.vertexColors&&i.geometry&&i.geometry.attributes.color&&4===i.geometry.attributes.color.itemSize,c=tt.get(n),h=m.state.lights;if(!0===k&&(!0===V||t!==L)){const e=t===L&&n.id===A;ht.setState(n,t,e)}let u=!1;n.version===c.__version?c.needsLights&&c.lightsStateVersion!==h.state.version||c.outputEncoding!==a||i.isInstancedMesh&&!1===c.instancing?u=!0:i.isInstancedMesh||!0!==c.instancing?i.isSkinnedMesh&&!1===c.skinning?u=!0:i.isSkinnedMesh||!0!==c.skinning?c.envMap!==o||n.fog&&c.fog!==r?u=!0:void 0===c.numClippingPlanes||c.numClippingPlanes===ht.numPlanes&&c.numIntersection===ht.numIntersection?c.vertexAlphas!==l&&(u=!0):u=!0:u=!0:u=!0:(u=!0,c.__version=n.version);let d=c.currentProgram;!0===u&&(d=zt(n,e,i));let p=!1,f=!1,g=!1;const y=d.getUniforms(),x=c.uniforms;if(K.useProgram(d.program)&&(p=!0,f=!0,g=!0),n.id!==A&&(A=n.id,f=!0),p||L!==t){if(y.setValue(yt,\"projectionMatrix\",t.projectionMatrix),Q.logarithmicDepthBuffer&&y.setValue(yt,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),L!==t&&(L=t,f=!0,g=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=y.map.cameraPosition;void 0!==e&&e.setValue(yt,q.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&y.setValue(yt,\"isOrthographic\",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||i.isSkinnedMesh)&&y.setValue(yt,\"viewMatrix\",t.matrixWorldInverse)}if(i.isSkinnedMesh){y.setOptional(yt,i,\"bindMatrix\"),y.setOptional(yt,i,\"bindMatrixInverse\");const t=i.skeleton;t&&(Q.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),y.setValue(yt,\"boneTexture\",t.boneTexture,et),y.setValue(yt,\"boneTextureSize\",t.boneTextureSize)):y.setOptional(yt,t,\"boneMatrices\"))}var _,b;return(f||c.receiveShadow!==i.receiveShadow)&&(c.receiveShadow=i.receiveShadow,y.setValue(yt,\"receiveShadow\",i.receiveShadow)),f&&(y.setValue(yt,\"toneMappingExposure\",v.toneMappingExposure),c.needsLights&&(b=g,(_=x).ambientLightColor.needsUpdate=b,_.lightProbe.needsUpdate=b,_.directionalLights.needsUpdate=b,_.directionalLightShadows.needsUpdate=b,_.pointLights.needsUpdate=b,_.pointLightShadows.needsUpdate=b,_.spotLights.needsUpdate=b,_.spotLightShadows.needsUpdate=b,_.rectAreaLights.needsUpdate=b,_.hemisphereLights.needsUpdate=b),r&&n.fog&&ot.refreshFogUniforms(x,r),ot.refreshMaterialUniforms(x,n,N,I,W),Cr.upload(yt,c.uniformsList,x,et)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(Cr.upload(yt,c.uniformsList,x,et),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&y.setValue(yt,\"center\",i.center),y.setValue(yt,\"modelViewMatrix\",i.modelViewMatrix),y.setValue(yt,\"normalMatrix\",i.normalMatrix),y.setValue(yt,\"modelMatrix\",i.matrixWorld),d}Dt.setAnimationLoop((function(t){Lt&&Lt(t)})),\"undefined\"!=typeof window&&Dt.setContext(window),this.setAnimationLoop=function(t){Lt=t,bt.setAnimationLoop(t),null===t?Dt.stop():Dt.start()},bt.addEventListener(\"sessionstart\",Ct),bt.addEventListener(\"sessionend\",Pt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");if(!0===_)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===bt.enabled&&!0===bt.isPresenting&&(!0===bt.cameraAutoUpdate&&bt.updateCamera(e),e=bt.getCamera()),!0===t.isScene&&t.onBeforeRender(v,t,e,T),m=ct.get(t,g.length),m.init(),g.push(m),j.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),G.setFromProjectionMatrix(j),V=this.localClippingEnabled,k=ht.init(this.clippingPlanes,V,e),d=lt.get(t,f.length),d.init(),f.push(d),It(t,e,0,v.sortObjects),d.finish(),!0===v.sortObjects&&d.sort(B,z),!0===k&&ht.beginShadows();const n=m.state.shadowsArray;ut.render(n,t,e),m.setupLights(),m.setupLightsView(e),!0===k&&ht.endShadows(),!0===this.info.autoReset&&this.info.reset(),dt.render(d,t);const i=d.opaque,r=d.transmissive,s=d.transparent;i.length>0&&Nt(i,t,e),r.length>0&&function(t,e,n,i){if(null===W){const t=!0===a&&!0===Q.isWebGL2;W=new(t?At:Tt)(1024,1024,{generateMipmaps:!0,type:null!==gt.convert(w)?w:x,minFilter:y,magFilter:p,wrapS:u,wrapT:u})}const r=v.getRenderTarget();v.setRenderTarget(W),v.clear();const s=v.toneMapping;v.toneMapping=0,Nt(t,n,i),v.toneMapping=s,et.updateMultisampleRenderTarget(W),et.updateRenderTargetMipmap(W),v.setRenderTarget(r),Nt(e,n,i)}(i,r,t,e),s.length>0&&Nt(s,t,e),null!==T&&(et.updateMultisampleRenderTarget(T),et.updateRenderTargetMipmap(T)),!0===t.isScene&&t.onAfterRender(v,t,e),K.buffers.depth.setTest(!0),K.buffers.depth.setMask(!0),K.buffers.color.setMask(!0),K.setPolygonOffset(!1),vt.resetDefaultState(),A=-1,L=null,g.pop(),m=g.length>0?g[g.length-1]:null,f.pop(),d=f.length>0?f[f.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return T},this.setRenderTarget=function(t,e=0,n=0){T=t,b=e,S=n,t&&void 0===tt.get(t).__webglFramebuffer&&et.setupRenderTarget(t);let i=null,r=!1,s=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(s=!0);const a=tt.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=a[e],r=!0):i=t.isWebGLMultisampleRenderTarget?tt.get(t).__webglMultisampledFramebuffer:a,R.copy(t.viewport),C.copy(t.scissor),P=t.scissorTest}else R.copy(F).multiplyScalar(N).floor(),C.copy(O).multiplyScalar(N).floor(),P=H;if(K.bindFramebuffer(36160,i)&&Q.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(U.length!==n.length||36064!==U[0]){for(let t=0,e=n.length;t<e;t++)U[t]=36064+t;U.length=n.length,e=!0}}else 1===U.length&&36064===U[0]||(U[0]=36064,U.length=1,e=!0);else 1===U.length&&1029===U[0]||(U[0]=1029,U.length=1,e=!0);e&&(Q.isWebGL2?yt.drawBuffers(U):Z.get(\"WEBGL_draw_buffers\").drawBuffersWEBGL(U))}if(K.viewport(R),K.scissor(C),K.setScissorTest(P),r){const i=tt.get(t.texture);yt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=tt.get(t.texture),r=e||0;yt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let o=tt.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){K.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==E&&gt.convert(o)!==yt.getParameter(35739))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");const c=l===w&&(Z.has(\"EXT_color_buffer_half_float\")||Q.isWebGL2&&Z.has(\"EXT_color_buffer_float\"));if(!(l===x||gt.convert(l)===yt.getParameter(35738)||l===M&&(Q.isWebGL2||Z.has(\"OES_texture_float\")||Z.has(\"WEBGL_color_buffer_float\"))||c))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");36053===yt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&yt.readPixels(e,n,i,r,gt.convert(o),gt.convert(l),s):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{const t=null!==T?tt.get(T).__webglFramebuffer:null;K.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);let a=gt.convert(e.format);Q.isWebGL2&&(6407===a&&(a=32849),6408===a&&(a=32856)),et.setTexture2D(e,0),yt.copyTexImage2D(3553,n,a,t.x,t.y,r,s,0),K.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=gt.convert(n.format),o=gt.convert(n.type);et.setTexture2D(n,0),yt.pixelStorei(37440,n.flipY),yt.pixelStorei(37441,n.premultiplyAlpha),yt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?yt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?yt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):yt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&yt.generateMipmap(3553),K.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(v.isWebGL1Renderer)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=gt.convert(i.format),c=gt.convert(i.type);let h;if(i.isDataTexture3D)et.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");et.setTexture2DArray(i,0),h=35866}yt.pixelStorei(37440,i.flipY),yt.pixelStorei(37441,i.premultiplyAlpha),yt.pixelStorei(3317,i.unpackAlignment);const u=yt.getParameter(3314),d=yt.getParameter(32878),p=yt.getParameter(3316),m=yt.getParameter(3315),f=yt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;yt.pixelStorei(3314,g.width),yt.pixelStorei(32878,g.height),yt.pixelStorei(3316,t.min.x),yt.pixelStorei(3315,t.min.y),yt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?yt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedTexture?(console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\"),yt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):yt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),yt.pixelStorei(3314,u),yt.pixelStorei(32878,d),yt.pixelStorei(3316,p),yt.pixelStorei(3315,m),yt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&yt.generateMipmap(h),K.unbindTexture()},this.initTexture=function(t){et.setTexture2D(t,0),K.unbindTexture()},this.resetState=function(){b=0,S=0,T=null,K.reset(),vt.reset()},\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}class Ms extends bs{}Ms.prototype.isWebGL1Renderer=!0;class ws{constructor(t,e=25e-5){this.name=\"\",this.color=new Qe(t),this.density=e}clone(){return new ws(this.color,this.density)}toJSON(){return{type:\"FogExp2\",color:this.color.getHex(),density:this.density}}}ws.prototype.isFogExp2=!0;class Ss{constructor(t,e=1,n=1e3){this.name=\"\",this.color=new Qe(t),this.near=e,this.far=n}clone(){return new Ss(this.color,this.near,this.far)}toJSON(){return{type:\"Fog\",color:this.color.getHex(),near:this.near,far:this.far}}}Ss.prototype.isFog=!0;class Ts extends Pe{constructor(){super(),this.type=\"Scene\",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Ts.prototype.isScene=!0;class Es{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ct()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ct()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ct()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}Es.prototype.isInterleavedBuffer=!0;const As=new Rt;class Ls{constructor(t,e,n,i=!1){this.name=\"\",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)As.x=this.getX(e),As.y=this.getY(e),As.z=this.getZ(e),As.applyMatrix4(t),this.setXYZ(e,As.x,As.y,As.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)As.x=this.getX(e),As.y=this.getY(e),As.z=this.getZ(e),As.applyNormalMatrix(t),this.setXYZ(e,As.x,As.y,As.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)As.x=this.getX(e),As.y=this.getY(e),As.z=this.getZ(e),As.transformDirection(t),this.setXYZ(e,As.x,As.y,As.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new en(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new Ls(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}Ls.prototype.isInterleavedBufferAttribute=!0;class Rs extends We{constructor(t){super(),this.type=\"SpriteMaterial\",this.color=new Qe(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let Cs;Rs.prototype.isSpriteMaterial=!0;const Ps=new Rt,Ds=new Rt,Is=new Rt,Ns=new vt,Bs=new vt,zs=new ae,Fs=new Rt,Os=new Rt,Hs=new Rt,Us=new vt,Gs=new vt,ks=new vt;class Vs extends Pe{constructor(t){if(super(),this.type=\"Sprite\",void 0===Cs){Cs=new wn;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new Es(t,5);Cs.setIndex([0,1,2,0,2,3]),Cs.setAttribute(\"position\",new Ls(e,3,0,!1)),Cs.setAttribute(\"uv\",new Ls(e,2,3,!1))}this.geometry=Cs,this.material=void 0!==t?t:new Rs,this.center=new vt(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.'),Ds.setFromMatrixScale(this.matrixWorld),zs.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),Is.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Ds.multiplyScalar(-Is.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const s=this.center;Ws(Fs.set(-.5,-.5,0),Is,s,Ds,i,r),Ws(Os.set(.5,-.5,0),Is,s,Ds,i,r),Ws(Hs.set(.5,.5,0),Is,s,Ds,i,r),Us.set(0,0),Gs.set(1,0),ks.set(1,1);let a=t.ray.intersectTriangle(Fs,Os,Hs,!1,Ps);if(null===a&&(Ws(Os.set(-.5,.5,0),Is,s,Ds,i,r),Gs.set(0,1),a=t.ray.intersectTriangle(Fs,Hs,Os,!1,Ps),null===a))return;const o=t.ray.origin.distanceTo(Ps);o<t.near||o>t.far||e.push({distance:o,point:Ps.clone(),uv:ke.getUV(Ps,Fs,Os,Hs,Us,Gs,ks,new vt),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Ws(t,e,n,i,r,s){Ns.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Bs.x=s*Ns.x-r*Ns.y,Bs.y=r*Ns.x+s*Ns.y):Bs.copy(Ns),t.copy(e),t.x+=Bs.x,t.y+=Bs.y,t.applyMatrix4(zs)}Vs.prototype.isSprite=!0;const js=new Rt,qs=new Rt;class Xs extends Pe{constructor(){super(),this._currentLevel=0,this.type=\"LOD\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0){e=Math.abs(e);const n=this.levels;let i;for(i=0;i<n.length&&!(e<n[i].distance);i++);return n.splice(i,0,{distance:e,object:t}),this.add(t),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i&&!(t<e[n].distance);n++);return e[n-1].object}return null}raycast(t,e){if(this.levels.length>0){js.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(js);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){js.setFromMatrixPosition(t.matrixWorld),qs.setFromMatrixPosition(this.matrixWorld);const n=js.distanceTo(qs)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i<r&&n>=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;i<r;i++)e[i].object.visible=!1}}toJSON(t){const e=super.toJSON(t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}}const Ys=new Rt,Js=new St,Zs=new St,Qs=new Rt,Ks=new ae;class $s extends Gn{constructor(t,e){super(t,e),this.type=\"SkinnedMesh\",this.bindMode=\"attached\",this.bindMatrix=new ae,this.bindMatrixInverse=new ae}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new St,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\"attached\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\"detached\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}boneTransform(t,e){const n=this.skeleton,i=this.geometry;Js.fromBufferAttribute(i.attributes.skinIndex,t),Zs.fromBufferAttribute(i.attributes.skinWeight,t),Ys.fromBufferAttribute(i.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=Zs.getComponent(t);if(0!==i){const r=Js.getComponent(t);Ks.multiplyMatrices(n.bones[r].matrixWorld,n.boneInverses[r]),e.addScaledVector(Qs.copy(Ys).applyMatrix4(Ks),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}$s.prototype.isSkinnedMesh=!0;class ta extends Pe{constructor(){super(),this.type=\"Bone\"}}ta.prototype.isBone=!0;class ea extends Mt{constructor(t=null,e=1,n=1,i,r,s,a,o,l=1003,c=1003,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ea.prototype.isDataTexture=!0;const na=new ae,ia=new ae;class ra{constructor(t=[],e=[]){this.uuid=ct(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\"),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new ae)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new ae;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let i=0,r=t.length;i<r;i++){const r=t[i]?t[i].matrixWorld:ia;na.multiplyMatrices(r,e[i]),na.toArray(n,16*i)}null!==i&&(i.needsUpdate=!0)}clone(){return new ra(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=mt(t),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new ea(e,t,t,E,M);return this.boneMatrices=e,this.boneTexture=n,this.boneTextureSize=t,this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];void 0===r&&(console.warn(\"THREE.Skeleton: No bone found with UUID:\",i),r=new ta),this.bones.push(r),this.boneInverses.push((new ae).fromArray(t.boneInverses[n]))}return this.init(),this}toJSON(){const t={metadata:{version:4.5,type:\"Skeleton\",generator:\"Skeleton.toJSON\"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}const sa=new ae,aa=new ae,oa=[],la=new Gn;class ca extends Gn{constructor(t,e,n){super(t,e),this.instanceMatrix=new en(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,i=this.count;if(la.geometry=this.geometry,la.material=this.material,void 0!==la.material)for(let r=0;r<i;r++){this.getMatrixAt(r,sa),aa.multiplyMatrices(n,sa),la.matrixWorld=aa,la.raycast(t,oa);for(let t=0,n=oa.length;t<n;t++){const n=oa[t];n.instanceId=r,n.object=this,e.push(n)}oa.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new en(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"})}}ca.prototype.isInstancedMesh=!0;class ha extends We{constructor(t){super(),this.type=\"LineBasicMaterial\",this.color=new Qe(16777215),this.linewidth=1,this.linecap=\"round\",this.linejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this}}ha.prototype.isLineBasicMaterial=!0;const ua=new Rt,da=new Rt,pa=new ae,ma=new se,fa=new Qt;class ga extends Pe{constructor(t=new wn,e=new ha){super(),this.type=\"Line\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)ua.fromBufferAttribute(e,t-1),da.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=ua.distanceTo(da);t.setAttribute(\"lineDistance\",new un(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),fa.copy(n.boundingSphere),fa.applyMatrix4(i),fa.radius+=r,!1===t.ray.intersectsSphere(fa))return;pa.copy(i).invert(),ma.copy(t.ray).applyMatrix4(pa);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,l=new Rt,c=new Rt,h=new Rt,u=new Rt,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,r=n.attributes.position;if(null!==i){for(let n=Math.max(0,s.start),a=Math.min(i.count,s.start+s.count)-1;n<a;n+=d){const s=i.getX(n),a=i.getX(n+1);l.fromBufferAttribute(r,s),c.fromBufferAttribute(r,a);if(ma.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;n<i;n+=d){l.fromBufferAttribute(r,n),c.fromBufferAttribute(r,n+1);if(ma.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);i<t.near||i>t.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}ga.prototype.isLine=!0;const va=new Rt,ya=new Rt;class xa extends ga{constructor(t,e){super(t,e),this.type=\"LineSegments\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)va.fromBufferAttribute(e,t),ya.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+va.distanceTo(ya);t.setAttribute(\"lineDistance\",new un(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}}xa.prototype.isLineSegments=!0;class _a extends ga{constructor(t,e){super(t,e),this.type=\"LineLoop\"}}_a.prototype.isLineLoop=!0;class ba extends We{constructor(t){super(),this.type=\"PointsMaterial\",this.color=new Qe(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this}}ba.prototype.isPointsMaterial=!0;const Ma=new ae,wa=new se,Sa=new Qt,Ta=new Rt;class Ea extends Pe{constructor(t=new wn,e=new ba){super(),this.type=\"Points\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),Sa.copy(n.boundingSphere),Sa.applyMatrix4(i),Sa.radius+=r,!1===t.ray.intersectsSphere(Sa))return;Ma.copy(i).invert(),wa.copy(t.ray).applyMatrix4(Ma);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position;if(null!==r){for(let n=Math.max(0,s.start),l=Math.min(r.count,s.start+s.count);n<l;n++){const s=r.getX(n);Ta.fromBufferAttribute(a,s),Aa(Ta,s,o,i,t,e,this)}}else{for(let n=Math.max(0,s.start),r=Math.min(a.count,s.start+s.count);n<r;n++)Ta.fromBufferAttribute(a,n),Aa(Ta,n,o,i,t,e,this)}}else console.error(\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}function Aa(t,e,n,i,r,s,a){const o=wa.distanceSqToPoint(t);if(o<n){const n=new Rt;wa.closestPointToPoint(t,n),n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}Ea.prototype.isPoints=!0;class La extends Mt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.format=void 0!==a?a:T,this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;\"requestVideoFrameCallback\"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1===\"requestVideoFrameCallback\"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}La.prototype.isVideoTexture=!0;class Ra extends Mt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}Ra.prototype.isCompressedTexture=!0;class Ca extends Mt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}Ca.prototype.isCanvasTexture=!0;class Pa extends Mt{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:A)!==A&&c!==L)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===n&&c===A&&(n=_),void 0===n&&c===L&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}Pa.prototype.isDepthTexture=!0;class Da extends wn{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type=\"CircleGeometry\",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new Rt,c=new vt;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute(\"position\",new un(s,3)),this.setAttribute(\"normal\",new un(a,3)),this.setAttribute(\"uv\",new un(o,2))}static fromJSON(t){return new Da(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class Ia extends wn{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type=\"CylinderGeometry\",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new vt,m=new Rt;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t<i;t++){const e=r+t,i=_+t;!0===n?c.push(i,i+1,e):c.push(i+1,i,e),v+=3}l.addGroup(g,v,!0===n?1:2),g+=v}!function(){const s=new Rt,v=new Rt;let y=0;const x=(e-t)/n;for(let l=0;l<=r;l++){const c=[],g=l/r,y=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*o+a,l=Math.sin(r),m=Math.cos(r);v.x=y*l,v.y=-g*n+f,v.z=y*m,h.push(v.x,v.y,v.z),s.set(l,x,m).normalize(),u.push(s.x,s.y,s.z),d.push(e,1-g),c.push(p++)}m.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=m[e][t],i=m[e+1][t],r=m[e+1][t+1],s=m[e][t+1];c.push(n,i,s),c.push(i,r,s),y+=6}l.addGroup(g,y,0),g+=y}(),!1===s&&(t>0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute(\"position\",new un(h,3)),this.setAttribute(\"normal\",new un(u,3)),this.setAttribute(\"uv\",new un(d,2))}static fromJSON(t){return new Ia(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Na extends Ia{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type=\"ConeGeometry\",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new Na(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Ba extends wn{constructor(t,e,n=1,i=0){super(),this.type=\"PolyhedronGeometry\",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t<r;t++)for(let e=0;e<2*(r-t)-1;e++){const n=Math.floor(e/2);e%2==0?(o(s[t][n+1]),o(s[t+1][n]),o(s[t][n])):(o(s[t][n+1]),o(s[t+1][n+1]),o(s[t+1][n]))}}function o(t){r.push(t.x,t.y,t.z)}function l(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function c(t,e,n,i){i<0&&1===t.x&&(s[e]=t.x-1),0===n.x&&0===n.z&&(s[e]=i/2/Math.PI+.5)}function h(t){return Math.atan2(t.z,-t.x)}!function(t){const n=new Rt,i=new Rt,r=new Rt;for(let s=0;s<e.length;s+=3)l(e[s+0],n),l(e[s+1],i),l(e[s+2],r),a(n,i,r,t)}(i),function(t){const e=new Rt;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z}(n),function(){const t=new Rt;for(let n=0;n<r.length;n+=3){t.x=r[n+0],t.y=r[n+1],t.z=r[n+2];const i=h(t)/2/Math.PI+.5,a=(e=t,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5);s.push(i,1-a)}var e;(function(){const t=new Rt,e=new Rt,n=new Rt,i=new Rt,a=new vt,o=new vt,l=new vt;for(let u=0,d=0;u<r.length;u+=9,d+=6){t.set(r[u+0],r[u+1],r[u+2]),e.set(r[u+3],r[u+4],r[u+5]),n.set(r[u+6],r[u+7],r[u+8]),a.set(s[d+0],s[d+1]),o.set(s[d+2],s[d+3]),l.set(s[d+4],s[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=h(i);c(a,d+0,t,p),c(o,d+2,e,p),c(l,d+4,n,p)}})(),function(){for(let t=0;t<s.length;t+=6){const e=s[t+0],n=s[t+2],i=s[t+4],r=Math.max(e,n,i),a=Math.min(e,n,i);r>.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute(\"position\",new un(r,3)),this.setAttribute(\"normal\",new un(r.slice(),3)),this.setAttribute(\"uv\",new un(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(t){return new Ba(t.vertices,t.indices,t.radius,t.details)}}class za extends Ba{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type=\"DodecahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new za(t.radius,t.detail)}}const Fa=new Rt,Oa=new Rt,Ha=new Rt,Ua=new ke;class Ga extends wn{constructor(t,e){if(super(),this.type=\"EdgesGeometry\",this.parameters={thresholdAngle:e},e=void 0!==e?e:1,!0===t.isGeometry)return void console.error(\"THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");const n=Math.pow(10,4),i=Math.cos(ot*e),r=t.getIndex(),s=t.getAttribute(\"position\"),a=r?r.count:s.count,o=[0,0,0],l=[\"a\",\"b\",\"c\"],c=new Array(3),h={},u=[];for(let t=0;t<a;t+=3){r?(o[0]=r.getX(t),o[1]=r.getX(t+1),o[2]=r.getX(t+2)):(o[0]=t,o[1]=t+1,o[2]=t+2);const{a:e,b:a,c:d}=Ua;if(e.fromBufferAttribute(s,o[0]),a.fromBufferAttribute(s,o[1]),d.fromBufferAttribute(s,o[2]),Ua.getNormal(Ha),c[0]=`${Math.round(e.x*n)},${Math.round(e.y*n)},${Math.round(e.z*n)}`,c[1]=`${Math.round(a.x*n)},${Math.round(a.y*n)},${Math.round(a.z*n)}`,c[2]=`${Math.round(d.x*n)},${Math.round(d.y*n)},${Math.round(d.z*n)}`,c[0]!==c[1]&&c[1]!==c[2]&&c[2]!==c[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=c[t],r=c[e],s=Ua[l[t]],a=Ua[l[e]],d=`${n}_${r}`,p=`${r}_${n}`;p in h&&h[p]?(Ha.dot(h[p].normal)<=i&&(u.push(s.x,s.y,s.z),u.push(a.x,a.y,a.z)),h[p]=null):d in h||(h[d]={index0:o[t],index1:o[e],normal:Ha.clone()})}}for(const t in h)if(h[t]){const{index0:e,index1:n}=h[t];Fa.fromBufferAttribute(s,e),Oa.fromBufferAttribute(s,n),u.push(Fa.x,Fa.y,Fa.z),u.push(Oa.x,Oa.y,Oa.z)}this.setAttribute(\"position\",new un(u,3))}}class ka{constructor(){this.type=\"Curve\",this.arcLengthDivisions=200}getPoint(){return console.warn(\"THREE.Curve: .getPoint() not implemented.\"),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new vt:new Rt);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Rt,i=[],r=[],s=[],a=new Rt,o=new ae;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Rt),i[e].normalize()}r[0]=new Rt,s[0]=new Rt;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(ht(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(ht(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:\"Curve\",generator:\"Curve.toJSON\"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Va extends ka{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type=\"EllipseCurve\",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new vt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=s?0:i),!0!==this.aClockwise||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=o-this.aX,i=l-this.aY;o=n*t-i*e+this.aX,l=n*e+i*t+this.aY}return n.set(o,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}Va.prototype.isEllipseCurve=!0;class Wa extends Va{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s),this.type=\"ArcCurve\"}}function ja(){let t=0,e=0,n=0,i=0;function r(r,s,a,o){t=r,e=a,n=-3*r+3*s-2*a-o,i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,s){r(e,n,s*(n-t),s*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,s,a,o){let l=(e-t)/s-(n-t)/(s+a)+(n-e)/a,c=(n-e)/a-(i-e)/(a+o)+(i-n)/o;l*=a,c*=a,r(e,n,l,c)},calc:function(r){const s=r*r;return t+e*r+n*s+i*(s*r)}}}Wa.prototype.isArcCurve=!0;const qa=new Rt,Xa=new ja,Ya=new ja,Ja=new ja;class Za extends ka{constructor(t=[],e=!1,n=\"centripetal\",i=.5){super(),this.type=\"CatmullRomCurve3\",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new Rt){const n=e,i=this.points,r=i.length,s=(r-(this.closed?0:1))*t;let a,o,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(qa.subVectors(i[0],i[1]).add(i[0]),a=qa);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2<r?o=i[(l+2)%r]:(qa.subVectors(i[r-1],i[r-2]).add(i[r-1]),o=qa),\"centripetal\"===this.curveType||\"chordal\"===this.curveType){const t=\"chordal\"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),i=Math.pow(u.distanceToSquared(o),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),Xa.initNonuniformCatmullRom(a.x,h.x,u.x,o.x,e,n,i),Ya.initNonuniformCatmullRom(a.y,h.y,u.y,o.y,e,n,i),Ja.initNonuniformCatmullRom(a.z,h.z,u.z,o.z,e,n,i)}else\"catmullrom\"===this.curveType&&(Xa.initCatmullRom(a.x,h.x,u.x,o.x,this.tension),Ya.initCatmullRom(a.y,h.y,u.y,o.y,this.tension),Ja.initCatmullRom(a.z,h.z,u.z,o.z,this.tension));return n.set(Xa.calc(c),Ya.calc(c),Ja.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Rt).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function Qa(t,e,n,i,r){const s=.5*(i-e),a=.5*(r-n),o=t*t;return(2*n-2*i+s+a)*(t*o)+(-3*n+3*i-2*s-a)*o+s*t+n}function Ka(t,e,n,i){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,i)}function $a(t,e,n,i,r){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,i)+function(t,e){return t*t*t*e}(t,r)}Za.prototype.isCatmullRomCurve3=!0;class to extends ka{constructor(t=new vt,e=new vt,n=new vt,i=new vt){super(),this.type=\"CubicBezierCurve\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new vt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set($a(t,i.x,r.x,s.x,a.x),$a(t,i.y,r.y,s.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}to.prototype.isCubicBezierCurve=!0;class eo extends ka{constructor(t=new Rt,e=new Rt,n=new Rt,i=new Rt){super(),this.type=\"CubicBezierCurve3\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Rt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set($a(t,i.x,r.x,s.x,a.x),$a(t,i.y,r.y,s.y,a.y),$a(t,i.z,r.z,s.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}eo.prototype.isCubicBezierCurve3=!0;class no extends ka{constructor(t=new vt,e=new vt){super(),this.type=\"LineCurve\",this.v1=t,this.v2=e}getPoint(t,e=new vt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new vt;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}no.prototype.isLineCurve=!0;class io extends ka{constructor(t=new Rt,e=new Rt){super(),this.type=\"LineCurve3\",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new Rt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class ro extends ka{constructor(t=new vt,e=new vt,n=new vt){super(),this.type=\"QuadraticBezierCurve\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new vt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(Ka(t,i.x,r.x,s.x),Ka(t,i.y,r.y,s.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}ro.prototype.isQuadraticBezierCurve=!0;class so extends ka{constructor(t=new Rt,e=new Rt,n=new Rt){super(),this.type=\"QuadraticBezierCurve3\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Rt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(Ka(t,i.x,r.x,s.x),Ka(t,i.y,r.y,s.y),Ka(t,i.z,r.z,s.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}so.prototype.isQuadraticBezierCurve3=!0;class ao extends ka{constructor(t=[]){super(),this.type=\"SplineCurve\",this.points=t}getPoint(t,e=new vt){const n=e,i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,o=i[0===s?s:s-1],l=i[s],c=i[s>i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Qa(a,o.x,l.x,c.x,h.x),Qa(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new vt).fromArray(n))}return this}}ao.prototype.isSplineCurve=!0;var oo=Object.freeze({__proto__:null,ArcCurve:Wa,CatmullRomCurve3:Za,CubicBezierCurve:to,CubicBezierCurve3:eo,EllipseCurve:Va,LineCurve:no,LineCurve3:io,QuadraticBezierCurve:ro,QuadraticBezierCurve3:so,SplineCurve:ao});const lo=function(t,e,n=2){const i=e&&e.length,r=i?e[0]*n:t.length;let s=co(t,0,r,n,!0);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;if(i&&(s=function(t,e,n,i){const r=[];let s,a,o,l,c;for(s=0,a=e.length;s<a;s++)o=e[s]*i,l=s<a-1?e[s+1]*i:t.length,c=co(t,o,l,i,!1),c===c.next&&(c.steiner=!0),r.push(bo(c));for(r.sort(vo),s=0;s<r.length;s++)yo(r[s],n),n=ho(n,n.next);return n}(t,e,s,n)),t.length>80*n){o=c=t[0],l=h=t[1];for(let e=n;e<r;e+=n)u=t[e],d=t[e+1],u<o&&(o=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return uo(s,a,n,o,l,p),a};function co(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i)r+=(t[a]-t[s])*(t[s+1]+t[a+1]),a=s;return r}(t,e,n,i)>0)for(s=e;s<n;s+=i)a=Po(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=Po(s,t[s],t[s+1],a);return a&&To(a,a.next)&&(Do(a),a=a.next),a}function ho(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!To(i,i.next)&&0!==So(i.prev,i,i.next))i=i.next;else{if(Do(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function uo(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=_o(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e<c&&(o++,i=i.nextZ,i);e++);for(l=c;o>0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?mo(t,i,r,s):po(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),Do(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?uo(t=fo(ho(t),e,n),e,n,i,r,s,2):2===a&&go(t,e,n,i,r,s):uo(ho(t),e,n,i,r,s,1);break}}function po(t){const e=t.prev,n=t,i=t.next;if(So(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(Mo(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&So(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function mo(t,e,n,i){const r=t.prev,s=t,a=t.next;if(So(r,s,a)>=0)return!1;const o=r.x<s.x?r.x<a.x?r.x:a.x:s.x<a.x?s.x:a.x,l=r.y<s.y?r.y<a.y?r.y:a.y:s.y<a.y?s.y:a.y,c=r.x>s.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=_o(o,l,e,n,i),d=_o(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&So(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&So(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&So(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&So(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function fo(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!To(r,s)&&Eo(r,i,i.next,s)&&Ro(r,s)&&Ro(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),Do(i),Do(i.next),i=t=s),i=i.next}while(i!==t);return ho(i)}function go(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&wo(a,t)){let o=Co(a,t);return a=ho(a,a.next),o=ho(o,o.next),uo(a,e,n,i,r,s),void uo(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function vo(t,e){return t.x-e.x}function yo(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!s)return null;if(i===a)return s;const o=s,l=s.x,c=s.y;let h,u=1/0;n=s;do{i>=n.x&&n.x>=l&&i!==n.x&&Mo(r<c?i:a,r,l,c,r<c?a:i,r,n.x,n.y)&&(h=Math.abs(r-n.y)/(i-n.x),Ro(n,t)&&(h<u||h===u&&(n.x>s.x||n.x===s.x&&xo(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e)){const n=Co(e,t);ho(e,e.next),ho(n,n.next)}}function xo(t,e){return So(t.prev,t,e.prev)<0&&So(e.next,t,t.next)<0}function _o(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function bo(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function Mo(t,e,n,i,r,s,a,o){return(r-a)*(e-o)-(t-a)*(s-o)>=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function wo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Eo(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Ro(t,e)&&Ro(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(So(t.prev,t,e.prev)||So(t,e.prev,e))||To(t,e)&&So(t.prev,t,t.next)>0&&So(e.prev,e,e.next)>0)}function So(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function To(t,e){return t.x===e.x&&t.y===e.y}function Eo(t,e,n,i){const r=Lo(So(t,e,n)),s=Lo(So(t,e,i)),a=Lo(So(n,i,t)),o=Lo(So(n,i,e));return r!==s&&a!==o||(!(0!==r||!Ao(t,n,e))||(!(0!==s||!Ao(t,i,e))||(!(0!==a||!Ao(n,t,i))||!(0!==o||!Ao(n,e,i)))))}function Ao(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Lo(t){return t>0?1:t<0?-1:0}function Ro(t,e){return So(t.prev,t,t.next)<0?So(t,e,t.next)>=0&&So(t,t.prev,e)>=0:So(t,e,t.prev)<0||So(t,t.next,e)<0}function Co(t,e){const n=new Io(t.i,t.x,t.y),i=new Io(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Po(t,e,n,i){const r=new Io(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Do(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Io(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class No{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n}static isClockWise(t){return No.area(t)<0}static triangulateShape(t,e){const n=[],i=[],r=[];Bo(t),zo(n,t);let s=t.length;e.forEach(Bo);for(let t=0;t<e.length;t++)i.push(s),s+=e[t].length,zo(n,e[t]);const a=lo(n,i);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}}function Bo(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function zo(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class Fo extends wn{constructor(t,e){super(),this.type=\"ExtrudeGeometry\",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let e=0,n=t.length;e<n;e++){s(t[e])}function s(t){const s=[],a=void 0!==e.curveSegments?e.curveSegments:12,o=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:6,u=void 0!==e.bevelSize?e.bevelSize:h-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const m=e.extrudePath,f=void 0!==e.UVGenerator?e.UVGenerator:Oo;void 0!==e.amount&&(console.warn(\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\"),l=e.amount);let g,v,y,x,_,b=!1;m&&(g=m.getSpacedPoints(o),b=!0,c=!1,v=m.computeFrenetFrames(o,!1),y=new Rt,x=new Rt,_=new Rt),c||(p=0,h=0,u=0,d=0);const M=t.extractPoints(a);let w=M.shape;const S=M.holes;if(!No.isClockWise(w)){w=w.reverse();for(let t=0,e=S.length;t<e;t++){const e=S[t];No.isClockWise(e)&&(S[t]=e.reverse())}}const T=No.triangulateShape(w,S),E=w;for(let t=0,e=S.length;t<e;t++){const e=S[t];w=w.concat(e)}function A(t,e,n){return e||console.error(\"THREE.ExtrudeGeometry: vec does not exist\"),e.clone().multiplyScalar(n).add(t)}const L=w.length,R=T.length;function C(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=a*a+o*o,u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new vt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new vt(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t<e;t++,n++,i++)n===e&&(n=0),i===e&&(i=0),P[t]=C(E[t],E[n],E[i]);const D=[];let I,N=P.concat();for(let t=0,e=S.length;t<e;t++){const e=S[t];I=[];for(let t=0,n=e.length,i=n-1,r=t+1;t<n;t++,i++,r++)i===n&&(i=0),r===n&&(r=0),I[t]=C(e[t],e[i],e[r]);D.push(I),N=N.concat(I)}for(let t=0;t<p;t++){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=A(E[t],P[t],i);F(e.x,e.y,-n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,r=e.length;t<r;t++){const r=A(e[t],I[t],i);F(r.x,r.y,-n)}}}const B=u+d;for(let t=0;t<L;t++){const e=c?A(w[t],N[t],B):w[t];b?(x.copy(v.normals[0]).multiplyScalar(e.x),y.copy(v.binormals[0]).multiplyScalar(e.y),_.copy(g[0]).add(x).add(y),F(_.x,_.y,_.z)):F(e.x,e.y,0)}for(let t=1;t<=o;t++)for(let e=0;e<L;e++){const n=c?A(w[e],N[e],B):w[e];b?(x.copy(v.normals[t]).multiplyScalar(n.x),y.copy(v.binormals[t]).multiplyScalar(n.y),_.copy(g[t]).add(x).add(y),F(_.x,_.y,_.z)):F(n.x,n.y,l/o*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=A(E[t],P[t],i);F(e.x,e.y,l+n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,r=e.length;t<r;t++){const r=A(e[t],I[t],i);b?F(r.x,r.y+g[o-1].y,g[o-1].x+n):F(r.x,r.y,l+n)}}}function z(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t<n;t++){const n=L*t,s=L*(t+1);H(e+i+n,e+r+n,e+r+s,e+i+s)}}}function F(t,e,n){s.push(t),s.push(e),s.push(n)}function O(t,e,r){U(t),U(e),U(r);const s=i.length/3,a=f.generateTopUV(n,i,s-3,s-2,s-1);G(a[0]),G(a[1]),G(a[2])}function H(t,e,r,s){U(t),U(e),U(s),U(e),U(r),U(s);const a=i.length/3,o=f.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);G(o[0]),G(o[1]),G(o[3]),G(o[1]),G(o[2]),G(o[3])}function U(t){i.push(s[3*t+0]),i.push(s[3*t+1]),i.push(s[3*t+2])}function G(t){r.push(t.x),r.push(t.y)}!function(){const t=i.length/3;if(c){let t=0,e=L*t;for(let t=0;t<R;t++){const n=T[t];O(n[2]+e,n[1]+e,n[0]+e)}t=o+2*p,e=L*t;for(let t=0;t<R;t++){const n=T[t];O(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<R;t++){const e=T[t];O(e[2],e[1],e[0])}for(let t=0;t<R;t++){const e=T[t];O(e[0]+L*o,e[1]+L*o,e[2]+L*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;z(E,e),e+=E.length;for(let t=0,n=S.length;t<n;t++){const n=S[t];z(n,e),e+=n.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute(\"position\",new un(i,3)),this.setAttribute(\"uv\",new un(r,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new oo[i.type]).fromJSON(i)),new Fo(n,t.options)}}const Oo={generateTopUV:function(t,e,n,i,r){const s=e[3*n],a=e[3*n+1],o=e[3*i],l=e[3*i+1],c=e[3*r],h=e[3*r+1];return[new vt(s,a),new vt(o,l),new vt(c,h)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[3*n],o=e[3*n+1],l=e[3*n+2],c=e[3*i],h=e[3*i+1],u=e[3*i+2],d=e[3*r],p=e[3*r+1],m=e[3*r+2],f=e[3*s],g=e[3*s+1],v=e[3*s+2];return Math.abs(o-h)<Math.abs(a-c)?[new vt(a,1-l),new vt(c,1-u),new vt(d,1-m),new vt(f,1-v)]:[new vt(o,1-l),new vt(h,1-u),new vt(p,1-m),new vt(g,1-v)]}};class Ho extends Ba{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type=\"IcosahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Ho(t.radius,t.detail)}}class Uo extends wn{constructor(t,e=12,n=0,i=2*Math.PI){super(),this.type=\"LatheGeometry\",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=ht(i,0,2*Math.PI);const r=[],s=[],a=[],o=1/e,l=new Rt,c=new vt;for(let r=0;r<=e;r++){const h=n+r*o*i,u=Math.sin(h),d=Math.cos(h);for(let n=0;n<=t.length-1;n++)l.x=t[n].x*u,l.y=t[n].y,l.z=t[n].x*d,s.push(l.x,l.y,l.z),c.x=r/e,c.y=n/(t.length-1),a.push(c.x,c.y)}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length,s=i,a=i+t.length,o=i+t.length+1,l=i+1;r.push(s,a,l),r.push(a,o,l)}if(this.setIndex(r),this.setAttribute(\"position\",new un(s,3)),this.setAttribute(\"uv\",new un(a,2)),this.computeVertexNormals(),i===2*Math.PI){const n=this.attributes.normal.array,i=new Rt,r=new Rt,s=new Rt,a=e*t.length*3;for(let e=0,o=0;e<t.length;e++,o+=3)i.x=n[o+0],i.y=n[o+1],i.z=n[o+2],r.x=n[a+o+0],r.y=n[a+o+1],r.z=n[a+o+2],s.addVectors(i,r).normalize(),n[o+0]=n[a+o+0]=s.x,n[o+1]=n[a+o+1]=s.y,n[o+2]=n[a+o+2]=s.z}}static fromJSON(t){return new Uo(t.points,t.segments,t.phiStart,t.phiLength)}}class Go extends Ba{constructor(t=1,e=0){super([1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type=\"OctahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Go(t.radius,t.detail)}}class ko extends wn{constructor(t,e,n){super(),this.type=\"ParametricGeometry\",this.parameters={func:t,slices:e,stacks:n};const i=[],r=[],s=[],a=[],o=1e-5,l=new Rt,c=new Rt,h=new Rt,u=new Rt,d=new Rt;t.length<3&&console.error(\"THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.\");const p=e+1;for(let i=0;i<=n;i++){const p=i/n;for(let n=0;n<=e;n++){const i=n/e;t(i,p,c),r.push(c.x,c.y,c.z),i-o>=0?(t(i-o,p,h),u.subVectors(c,h)):(t(i+o,p,h),u.subVectors(h,c)),p-o>=0?(t(i,p-o,h),d.subVectors(c,h)):(t(i,p+o,h),d.subVectors(h,c)),l.crossVectors(u,d).normalize(),s.push(l.x,l.y,l.z),a.push(i,p)}}for(let t=0;t<n;t++)for(let n=0;n<e;n++){const e=t*p+n,r=t*p+n+1,s=(t+1)*p+n+1,a=(t+1)*p+n;i.push(e,r,a),i.push(r,s,a)}this.setIndex(i),this.setAttribute(\"position\",new un(r,3)),this.setAttribute(\"normal\",new un(s,3)),this.setAttribute(\"uv\",new un(a,2))}}class Vo extends wn{constructor(t=.5,e=1,n=8,i=1,r=0,s=2*Math.PI){super(),this.type=\"RingGeometry\",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s},n=Math.max(3,n);const a=[],o=[],l=[],c=[];let h=t;const u=(e-t)/(i=Math.max(1,i)),d=new Rt,p=new vt;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=h*Math.cos(i),d.y=h*Math.sin(i),o.push(d.x,d.y,d.z),l.push(0,0,1),p.x=(d.x/e+1)/2,p.y=(d.y/e+1)/2,c.push(p.x,p.y)}h+=u}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e,r=i,s=i+n+1,o=i+n+2,l=i+1;a.push(r,s,l),a.push(s,o,l)}}this.setIndex(a),this.setAttribute(\"position\",new un(o,3)),this.setAttribute(\"normal\",new un(l,3)),this.setAttribute(\"uv\",new un(c,2))}static fromJSON(t){return new Vo(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class Wo extends wn{constructor(t,e=12){super(),this.type=\"ShapeGeometry\",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],s=[];let a=0,o=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(a,o,e),a+=o,o=0;function l(t){const a=i.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===No.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===No.isClockWise(e)&&(h[t]=e.reverse())}const u=No.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0),r.push(0,0,1),s.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],i=e[0]+a,r=e[1]+a,s=e[2]+a;n.push(i,r,s),o+=3}}this.setIndex(n),this.setAttribute(\"position\",new un(i,3)),this.setAttribute(\"normal\",new un(r,3)),this.setAttribute(\"uv\",new un(s,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new Wo(n,t.curveSegments)}}class jo extends wn{constructor(t=1,e=8,n=6,i=0,r=2*Math.PI,s=0,a=Math.PI){super(),this.type=\"SphereGeometry\",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[],h=new Rt,u=new Rt,d=[],p=[],m=[],f=[];for(let d=0;d<=n;d++){const g=[],v=d/n;let y=0;0==d&&0==s?y=.5/e:d==n&&o==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(s+v*a),h.y=t*Math.cos(s+v*a),h.z=t*Math.sin(i+o*r)*Math.sin(s+v*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),m.push(u.x,u.y,u.z),f.push(o+y,1-v),g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1],r=c[t][i],a=c[t+1][i],l=c[t+1][i+1];(0!==t||s>0)&&d.push(e,r,l),(t!==n-1||o<Math.PI)&&d.push(r,a,l)}this.setIndex(d),this.setAttribute(\"position\",new un(p,3)),this.setAttribute(\"normal\",new un(m,3)),this.setAttribute(\"uv\",new un(f,2))}static fromJSON(t){return new jo(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class qo extends Ba{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type=\"TetrahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new qo(t.radius,t.detail)}}class Xo extends Fo{constructor(t,e={}){const n=e.font;if(!n||!n.isFont)return console.error(\"THREE.TextGeometry: font parameter is not an instance of THREE.Font.\"),new wn;const i=n.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(i,e),this.type=\"TextGeometry\"}}class Yo extends wn{constructor(t=1,e=.4,n=8,i=6,r=2*Math.PI){super(),this.type=\"TorusGeometry\",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r},n=Math.floor(n),i=Math.floor(i);const s=[],a=[],o=[],l=[],c=new Rt,h=new Rt,u=new Rt;for(let s=0;s<=n;s++)for(let d=0;d<=i;d++){const p=d/i*r,m=s/n*Math.PI*2;h.x=(t+e*Math.cos(m))*Math.cos(p),h.y=(t+e*Math.cos(m))*Math.sin(p),h.z=e*Math.sin(m),a.push(h.x,h.y,h.z),c.x=t*Math.cos(p),c.y=t*Math.sin(p),u.subVectors(h,c).normalize(),o.push(u.x,u.y,u.z),l.push(d/i),l.push(s/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+e-1,r=(i+1)*(t-1)+e-1,a=(i+1)*(t-1)+e,o=(i+1)*t+e;s.push(n,r,o),s.push(r,a,o)}this.setIndex(s),this.setAttribute(\"position\",new un(a,3)),this.setAttribute(\"normal\",new un(o,3)),this.setAttribute(\"uv\",new un(l,2))}static fromJSON(t){return new Yo(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class Jo extends wn{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super(),this.type=\"TorusKnotGeometry\",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s},n=Math.floor(n),i=Math.floor(i);const a=[],o=[],l=[],c=[],h=new Rt,u=new Rt,d=new Rt,p=new Rt,m=new Rt,f=new Rt,g=new Rt;for(let a=0;a<=n;++a){const y=a/n*r*Math.PI*2;v(y,r,s,t,d),v(y+.01,r,s,t,p),f.subVectors(p,d),g.addVectors(p,d),m.crossVectors(f,g),g.crossVectors(m,f),m.normalize(),g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2,s=-e*Math.cos(r),p=e*Math.sin(r);h.x=d.x+(s*g.x+p*m.x),h.y=d.y+(s*g.y+p*m.y),h.z=d.z+(s*g.z+p*m.z),o.push(h.x,h.y,h.z),u.subVectors(h,d).normalize(),l.push(u.x,u.y,u.z),c.push(a/n),c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,o=(i+1)*(t-1)+e;a.push(n,r,o),a.push(r,s,o)}function v(t,e,n,i,r){const s=Math.cos(t),a=Math.sin(t),o=n/e*t,l=Math.cos(o);r.x=i*(2+l)*.5*s,r.y=i*(2+l)*a*.5,r.z=i*Math.sin(o)*.5}this.setIndex(a),this.setAttribute(\"position\",new un(o,3)),this.setAttribute(\"normal\",new un(l,3)),this.setAttribute(\"uv\",new un(c,2))}static fromJSON(t){return new Jo(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class Zo extends wn{constructor(t,e=64,n=1,i=8,r=!1){super(),this.type=\"TubeGeometry\",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new Rt,o=new Rt,l=new vt;let c=new Rt;const h=[],u=[],d=[],p=[];function m(r){c=t.getPointAt(r/e,c);const l=s.normals[r],d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),s=-Math.cos(e);o.x=s*l.x+r*d.x,o.y=s*l.y+r*d.y,o.z=s*l.z+r*d.z,o.normalize(),u.push(o.x,o.y,o.z),a.x=c.x+n*o.x,a.y=c.y+n*o.y,a.z=c.z+n*o.z,h.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)m(t);m(!1===r?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)l.x=t/e,l.y=n/i,d.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,a=(i+1)*(t-1)+e;p.push(n,r,a),p.push(r,s,a)}}()}(),this.setIndex(p),this.setAttribute(\"position\",new un(h,3)),this.setAttribute(\"normal\",new un(u,3)),this.setAttribute(\"uv\",new un(d,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new Zo((new oo[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class Qo extends wn{constructor(t){if(super(),this.type=\"WireframeGeometry\",!0===t.isGeometry)return void console.error(\"THREE.WireframeGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");const e=[],n=[0,0],i={},r=new Rt;if(null!==t.index){const s=t.attributes.position,a=t.index;let o=t.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,e=o.length;t<e;++t){const e=o[t],r=e.start;for(let t=r,s=r+e.count;t<s;t+=3)for(let e=0;e<3;e++){const r=a.getX(t+e),s=a.getX(t+(e+1)%3);n[0]=Math.min(r,s),n[1]=Math.max(r,s);const o=n[0]+\",\"+n[1];void 0===i[o]&&(i[o]={index1:n[0],index2:n[1]})}}for(const t in i){const n=i[t];r.fromBufferAttribute(s,n.index1),e.push(r.x,r.y,r.z),r.fromBufferAttribute(s,n.index2),e.push(r.x,r.y,r.z)}}else{const n=t.attributes.position;for(let t=0,i=n.count/3;t<i;t++)for(let i=0;i<3;i++){const s=3*t+i;r.fromBufferAttribute(n,s),e.push(r.x,r.y,r.z);const a=3*t+(i+1)%3;r.fromBufferAttribute(n,a),e.push(r.x,r.y,r.z)}}this.setAttribute(\"position\",new un(e,3))}}var Ko=Object.freeze({__proto__:null,BoxGeometry:Vn,BoxBufferGeometry:Vn,CircleGeometry:Da,CircleBufferGeometry:Da,ConeGeometry:Na,ConeBufferGeometry:Na,CylinderGeometry:Ia,CylinderBufferGeometry:Ia,DodecahedronGeometry:za,DodecahedronBufferGeometry:za,EdgesGeometry:Ga,ExtrudeGeometry:Fo,ExtrudeBufferGeometry:Fo,IcosahedronGeometry:Ho,IcosahedronBufferGeometry:Ho,LatheGeometry:Uo,LatheBufferGeometry:Uo,OctahedronGeometry:Go,OctahedronBufferGeometry:Go,ParametricGeometry:ko,ParametricBufferGeometry:ko,PlaneGeometry:ci,PlaneBufferGeometry:ci,PolyhedronGeometry:Ba,PolyhedronBufferGeometry:Ba,RingGeometry:Vo,RingBufferGeometry:Vo,ShapeGeometry:Wo,ShapeBufferGeometry:Wo,SphereGeometry:jo,SphereBufferGeometry:jo,TetrahedronGeometry:qo,TetrahedronBufferGeometry:qo,TextGeometry:Xo,TextBufferGeometry:Xo,TorusGeometry:Yo,TorusBufferGeometry:Yo,TorusKnotGeometry:Jo,TorusKnotBufferGeometry:Jo,TubeGeometry:Zo,TubeBufferGeometry:Zo,WireframeGeometry:Qo});class $o extends We{constructor(t){super(),this.type=\"ShadowMaterial\",this.color=new Qe(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}$o.prototype.isShadowMaterial=!0;class tl extends Xn{constructor(t){super(t),this.type=\"RawShaderMaterial\"}}tl.prototype.isRawShaderMaterial=!0;class el extends We{constructor(t){super(),this.defines={STANDARD:\"\"},this.type=\"MeshStandardMaterial\",this.color=new Qe(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.vertexTangents=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this.vertexTangents=t.vertexTangents,this}}el.prototype.isMeshStandardMaterial=!0;class nl extends el{constructor(t){super(),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.type=\"MeshPhysicalMaterial\",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new vt(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,\"ior\",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=ht(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new Qe(1,1,1),this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,t.sheen?this.sheen=(this.sheen||new Qe).copy(t.sheen):this.sheen=null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this}}nl.prototype.isMeshPhysicalMaterial=!0;class il extends We{constructor(t){super(),this.type=\"MeshPhongMaterial\",this.color=new Qe(16777215),this.specular=new Qe(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}il.prototype.isMeshPhongMaterial=!0;class rl extends We{constructor(t){super(),this.defines={TOON:\"\"},this.type=\"MeshToonMaterial\",this.color=new Qe(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}rl.prototype.isMeshToonMaterial=!0;class sl extends We{constructor(t){super(),this.type=\"MeshNormalMaterial\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}sl.prototype.isMeshNormalMaterial=!0;class al extends We{constructor(t){super(),this.type=\"MeshLambertMaterial\",this.color=new Qe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}al.prototype.isMeshLambertMaterial=!0;class ol extends We{constructor(t){super(),this.defines={MATCAP:\"\"},this.type=\"MeshMatcapMaterial\",this.color=new Qe(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:\"\"},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}ol.prototype.isMeshMatcapMaterial=!0;class ll extends ha{constructor(t){super(),this.type=\"LineDashedMaterial\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}ll.prototype.isLineDashedMaterial=!0;var cl=Object.freeze({__proto__:null,ShadowMaterial:$o,SpriteMaterial:Rs,RawShaderMaterial:tl,ShaderMaterial:Xn,PointsMaterial:ba,MeshPhysicalMaterial:nl,MeshStandardMaterial:el,MeshPhongMaterial:il,MeshToonMaterial:rl,MeshNormalMaterial:sl,MeshLambertMaterial:al,MeshDepthMaterial:cs,MeshDistanceMaterial:hs,MeshBasicMaterial:Ke,MeshMatcapMaterial:ol,LineDashedMaterial:ll,LineBasicMaterial:ha,Material:We});const hl={arraySlice:function(t,e,n){return hl.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:\"number\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)},subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t<s.tracks.length;++t){const e=s.tracks[t],o=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const s=e.times[t]*r;if(!(s<n||s>=i)){l.push(e.times[t]);for(let n=0;n<o;++n)c.push(e.values[t*o+n])}}0!==l.length&&(e.times=hl.convertArray(l,e.times.constructor),e.values=hl.convertArray(c,e.values.constructor),a.push(e))}s.tracks=a;let o=1/0;for(let t=0;t<s.tracks.length;++t)o>s.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t<s.tracks.length;++t)s.tracks[t].shift(-1*o);return s.resetDuration(),s},makeClipAdditive:function(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,s=e/i;for(let e=0;e<r;++e){const i=n.tracks[e],r=i.ValueTypeName;if(\"bool\"===r||\"string\"===r)continue;const a=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===r}));if(void 0===a)continue;let o=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=i.times.length-1;let d;if(s<=i.times[0]){const t=o,e=l-o;d=hl.arraySlice(i.values,t,e)}else if(s>=i.times[u]){const t=u*l+o,e=t+l-o;d=hl.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=hl.arraySlice(t.resultBuffer,e,n)}if(\"quaternion\"===r){(new Lt).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(\"quaternion\"===r)Lt.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}return t.blendMode=q,t}};class ul{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,r)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0}}for(;n<s;){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,r,t)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=n[r+t];return e}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}ul.prototype.beforeStart_=ul.prototype.copySampleValue_,ul.prototype.afterEnd_=ul.prototype.copySampleValue_;class dl extends ul{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:k,endingEnd:k}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case V:r=t,a=2*e-n;break;case W:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case V:s=t,o=2*n-e;break;case W:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(o-n),this._offsetPrev=r*c,this._offsetNext=s*c}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),m=p*p,f=m*p,g=-u*f+2*u*m-u*p,v=(1+u)*f+(-1.5-2*u)*m+(-.5+u)*p+1,y=(-1-d)*f+(1.5+d)*m+.5*p,x=d*f-d*m;for(let t=0;t!==a;++t)r[t]=g*s[c+t]+v*s[l+t]+y*s[o+t]+x*s[h+t];return r}}class pl extends ul{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==a;++t)r[t]=s[l+t]*h+s[o+t]*c;return r}}class ml extends ul{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class fl{constructor(t,e,n,i){if(void 0===t)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(void 0===e||0===e.length)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t,this.times=hl.convertArray(e,this.TimeBufferType),this.values=hl.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:hl.convertArray(t.times,Array),values:hl.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new ml(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new pl(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new dl(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case H:e=this.InterpolantFactoryMethodDiscrete;break;case U:e=this.InterpolantFactoryMethodLinear;break;case G:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\"THREE.KeyframeTrack:\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return H;case this.InterpolantFactoryMethodLinear:return U;case this.InterpolantFactoryMethodSmooth:return G}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==s&&n[s]>e;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=hl.arraySlice(n,r,s),this.values=hl.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error(\"THREE.KeyframeTrack: Track is empty.\",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if(\"number\"==typeof i&&isNaN(i)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,e,i),t=!1;break}if(null!==s&&s>i){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&hl.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,e,n),t=!1;break}}return t}optimize(){const t=hl.arraySlice(this.times),e=hl.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===G,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a];if(o!==t[a+1]&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=hl.arraySlice(t,0,s),this.values=hl.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=hl.arraySlice(this.times,0),e=hl.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}fl.prototype.TimeBufferType=Float32Array,fl.prototype.ValueBufferType=Float32Array,fl.prototype.DefaultInterpolation=U;class gl extends fl{}gl.prototype.ValueTypeName=\"bool\",gl.prototype.ValueBufferType=Array,gl.prototype.DefaultInterpolation=H,gl.prototype.InterpolantFactoryMethodLinear=void 0,gl.prototype.InterpolantFactoryMethodSmooth=void 0;class vl extends fl{}vl.prototype.ValueTypeName=\"color\";class yl extends fl{}yl.prototype.ValueTypeName=\"number\";class xl extends ul{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)Lt.slerpFlat(r,0,s,l-a,s,l,o);return r}}class _l extends fl{InterpolantFactoryMethodLinear(t){return new xl(this.times,this.values,this.getValueSize(),t)}}_l.prototype.ValueTypeName=\"quaternion\",_l.prototype.DefaultInterpolation=U,_l.prototype.InterpolantFactoryMethodSmooth=void 0;class bl extends fl{}bl.prototype.ValueTypeName=\"string\",bl.prototype.ValueBufferType=Array,bl.prototype.DefaultInterpolation=H,bl.prototype.InterpolantFactoryMethodLinear=void 0,bl.prototype.InterpolantFactoryMethodSmooth=void 0;class Ml extends fl{}Ml.prototype.ValueTypeName=\"vector\";class wl{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ct(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Sl(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(fl.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t<r;t++){let a=[],o=[];a.push((t+r-1)%r,t,(t+1)%r),o.push(0,1,0);const l=hl.getKeyframeOrder(a);a=hl.sortedArray(a,1,l),o=hl.sortedArray(o,1,l),i||0!==a[0]||(a.push(r),o.push(o[0])),s.push(new yl(\".morphTargetInfluences[\"+e[t].name+\"]\",a,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},r=/^([\\w-]*?)([\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],s=n.name.match(r);if(s&&s.length>1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\"),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];hl.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||\"default\",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const r=l[t].keys;if(r&&0!==r.length)if(r[0].morphTargets){const t={};let e;for(e=0;e<r.length;e++)if(r[e].morphTargets)for(let n=0;n<r[e].morphTargets.length;n++)t[r[e].morphTargets[n]]=-1;for(const n in t){const t=[],s=[];for(let i=0;i!==r[e].morphTargets.length;++i){const i=r[e];t.push(i.time),s.push(i.morphTarget===n?1:0)}i.push(new yl(\".morphTargetInfluence[\"+n+\"]\",t,s))}o=t.length*(s||1)}else{const s=\".bones[\"+e[t].name+\"]\";n(Ml,s+\".position\",r,\"pos\",i),n(_l,s+\".quaternion\",r,\"rot\",i),n(Ml,s+\".scale\",r,\"scl\",i)}}if(0===i.length)return null;return new this(r,o,i,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function Sl(t){if(void 0===t.type)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const e=function(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return yl;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return Ml;case\"color\":return vl;case\"quaternion\":return _l;case\"bool\":case\"boolean\":return gl;case\"string\":return bl}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+t)}(t.type);if(void 0===t.times){const e=[],n=[];hl.flattenJSON(t.keys,e,n,\"value\"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Tl={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class El{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const Al=new El;class Ll{constructor(t){this.manager=void 0!==t?t:Al,this.crossOrigin=\"anonymous\",this.withCredentials=!1,this.path=\"\",this.resourcePath=\"\",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const Rl={};class Cl extends Ll{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Tl.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;if(void 0!==Rl[t])return void Rl[t].push({onLoad:e,onProgress:n,onError:i});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let o;if(a){const n=a[1],s=!!a[2];let o=a[3];o=decodeURIComponent(o),s&&(o=atob(o));try{let i;const s=(this.responseType||\"\").toLowerCase();switch(s){case\"arraybuffer\":case\"blob\":const t=new Uint8Array(o.length);for(let e=0;e<o.length;e++)t[e]=o.charCodeAt(e);i=\"blob\"===s?new Blob([t.buffer],{type:n}):t.buffer;break;case\"document\":const e=new DOMParser;i=e.parseFromString(o,n);break;case\"json\":i=JSON.parse(o);break;default:i=o}setTimeout((function(){e&&e(i),r.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}),0)}}else{Rl[t]=[],Rl[t].push({onLoad:e,onProgress:n,onError:i}),o=new XMLHttpRequest,o.open(\"GET\",t,!0),o.addEventListener(\"load\",(function(e){const n=this.response,i=Rl[t];if(delete Rl[t],200===this.status||0===this.status){0===this.status&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\"),Tl.add(t,n);for(let t=0,e=i.length;t<e;t++){const e=i[t];e.onLoad&&e.onLoad(n)}r.manager.itemEnd(t)}else{for(let t=0,n=i.length;t<n;t++){const n=i[t];n.onError&&n.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}}),!1),o.addEventListener(\"progress\",(function(e){const n=Rl[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),o.addEventListener(\"error\",(function(e){const n=Rl[t];delete Rl[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),o.addEventListener(\"abort\",(function(e){const n=Rl[t];delete Rl[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(o.responseType=this.responseType),void 0!==this.withCredentials&&(o.withCredentials=this.withCredentials),o.overrideMimeType&&o.overrideMimeType(void 0!==this.mimeType?this.mimeType:\"text/plain\");for(const t in this.requestHeader)o.setRequestHeader(t,this.requestHeader[t]);o.send(null)}return r.manager.itemStart(t),o}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class Pl extends Ll{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Tl.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"img\");function o(){a.removeEventListener(\"load\",o,!1),a.removeEventListener(\"error\",l,!1),Tl.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){a.removeEventListener(\"load\",o,!1),a.removeEventListener(\"error\",l,!1),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}return a.addEventListener(\"load\",o,!1),a.addEventListener(\"error\",l,!1),\"data:\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class Dl extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=new Kn,s=new Pl(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let e=0;e<t.length;++e)o(e);return r}}class Il extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new ea,a=new Cl(this.manager);return a.setResponseType(\"arraybuffer\"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(t,(function(t){const n=r.parse(t);n&&(void 0!==n.image?s.image=n.image:void 0!==n.data&&(s.image.width=n.width,s.image.height=n.height,s.image.data=n.data),s.wrapS=void 0!==n.wrapS?n.wrapS:u,s.wrapT=void 0!==n.wrapT?n.wrapT:u,s.magFilter=void 0!==n.magFilter?n.magFilter:g,s.minFilter=void 0!==n.minFilter?n.minFilter:g,s.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.encoding&&(s.encoding=n.encoding),void 0!==n.flipY&&(s.flipY=n.flipY),void 0!==n.format&&(s.format=n.format),void 0!==n.type&&(s.type=n.type),void 0!==n.mipmaps&&(s.mipmaps=n.mipmaps,s.minFilter=y),1===n.mipmapCount&&(s.minFilter=g),void 0!==n.generateMipmaps&&(s.generateMipmaps=n.generateMipmaps),s.needsUpdate=!0,e&&e(s,n))}),n,i),s}}class Nl extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=new Mt,s=new Pl(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,(function(n){r.image=n;const i=t.search(/\\.jpe?g($|\\?)/i)>0||0===t.search(/^data\\:image\\/jpeg/);r.format=i?T:E,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}class Bl extends ka{constructor(){super(),this.type=\"CurvePath\",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new no(e,t))}getPoint(t){const e=t*this.getLength(),n=this.getCurveLengths();let i=0;for(;i<n.length;){if(n[i]>=e){const t=n[i]-e,r=this.curves[i],s=r.getLength(),a=0===s?0:1-t/s;return r.getPointAt(a)}i++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s&&s.isEllipseCurve?2*t:s&&(s.isLineCurve||s.isLineCurve3)?1:s&&s.isSplineCurve?t*s.points.length:t,o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new oo[n.type]).fromJSON(n))}return this}}class zl extends Bl{constructor(t){super(),this.type=\"Path\",this.currentPoint=new vt,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new no(this.currentPoint.clone(),new vt(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const r=new ro(this.currentPoint.clone(),new vt(t,e),new vt(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,r,s){const a=new to(this.currentPoint.clone(),new vt(t,e),new vt(n,i),new vt(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new ao(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,r,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(t+a,e+o,n,i,r,s),this}absarc(t,e,n,i,r,s){return this.absellipse(t,e,n,n,i,r,s),this}ellipse(t,e,n,i,r,s,a,o){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,i,r,s,a,o),this}absellipse(t,e,n,i,r,s,a,o){const l=new Va(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Fl extends zl{constructor(t){super(t),this.uuid=ct(),this.type=\"Shape\",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new zl).fromJSON(n))}return this}}class Ol extends Pe{constructor(t,e=1){super(),this.type=\"Light\",this.color=new Qe(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}Ol.prototype.isLight=!0;class Hl extends Ol{constructor(t,e,n){super(t,n),this.type=\"HemisphereLight\",this.position.copy(Pe.DefaultUp),this.updateMatrix(),this.groundColor=new Qe(e)}copy(t){return Ol.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}Hl.prototype.isHemisphereLight=!0;const Ul=new ae,Gl=new Rt,kl=new Rt;class Vl{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new vt(512,512),this.map=null,this.mapPass=null,this.matrix=new ae,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ai,this._frameExtents=new vt(1,1),this._viewportCount=1,this._viewports=[new St(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Gl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Gl),kl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(kl),e.updateMatrixWorld(),Ul.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Ul),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class Wl extends Vl{constructor(){super(new Jn(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*lt*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}Wl.prototype.isSpotLightShadow=!0;class jl extends Ol{constructor(t,e,n=0,i=Math.PI/3,r=0,s=1){super(t,e),this.type=\"SpotLight\",this.position.copy(Pe.DefaultUp),this.updateMatrix(),this.target=new Pe,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.shadow=new Wl}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}jl.prototype.isSpotLight=!0;const ql=new ae,Xl=new Rt,Yl=new Rt;class Jl extends Vl{constructor(){super(new Jn(90,1,.5,500)),this._frameExtents=new vt(4,2),this._viewportCount=6,this._viewports=[new St(2,1,1,1),new St(0,1,1,1),new St(3,1,1,1),new St(1,1,1,1),new St(3,0,1,1),new St(1,0,1,1)],this._cubeDirections=[new Rt(1,0,0),new Rt(-1,0,0),new Rt(0,0,1),new Rt(0,0,-1),new Rt(0,1,0),new Rt(0,-1,0)],this._cubeUps=[new Rt(0,1,0),new Rt(0,1,0),new Rt(0,1,0),new Rt(0,1,0),new Rt(0,0,1),new Rt(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),Xl.setFromMatrixPosition(t.matrixWorld),n.position.copy(Xl),Yl.copy(n.position),Yl.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Yl),n.updateMatrixWorld(),i.makeTranslation(-Xl.x,-Xl.y,-Xl.z),ql.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ql)}}Jl.prototype.isPointLightShadow=!0;class Zl extends Ol{constructor(t,e,n=0,i=1){super(t,e),this.type=\"PointLight\",this.distance=n,this.decay=i,this.shadow=new Jl}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}Zl.prototype.isPointLight=!0;class Ql extends Yn{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.type=\"OrthographicCamera\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}Ql.prototype.isOrthographicCamera=!0;class Kl extends Vl{constructor(){super(new Ql(-5,5,5,-5,.5,500))}}Kl.prototype.isDirectionalLightShadow=!0;class $l extends Ol{constructor(t,e){super(t,e),this.type=\"DirectionalLight\",this.position.copy(Pe.DefaultUp),this.updateMatrix(),this.target=new Pe,this.shadow=new Kl}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}$l.prototype.isDirectionalLight=!0;class tc extends Ol{constructor(t,e){super(t,e),this.type=\"AmbientLight\"}}tc.prototype.isAmbientLight=!0;class ec extends Ol{constructor(t,e,n=10,i=10){super(t,e),this.type=\"RectAreaLight\",this.width=n,this.height=i}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}ec.prototype.isRectAreaLight=!0;class nc{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Rt)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}nc.prototype.isSphericalHarmonics3=!0;class ic extends Ol{constructor(t=new nc,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}ic.prototype.isLightProbe=!0;class rc extends Ll{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new Cl(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn(\"THREE.MaterialLoader: Undefined texture\",t),e[t]}const i=new cl[t.type];if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=(new Qe).setHex(t.sheen)),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.morphTargets&&(i.morphTargets=t.morphTargets),void 0!==t.morphNormals&&(i.morphNormals=t.morphNormals),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.vertexTangents&&(i.vertexTangents=t.vertexTangents),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&(\"number\"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case\"t\":i.uniforms[e].value=n(r.value);break;case\"c\":i.uniforms[e].value=(new Qe).setHex(r.value);break;case\"v2\":i.uniforms[e].value=(new vt).fromArray(r.value);break;case\"v3\":i.uniforms[e].value=(new Rt).fromArray(r.value);break;case\"v4\":i.uniforms[e].value=(new St).fromArray(r.value);break;case\"m3\":i.uniforms[e].value=(new yt).fromArray(r.value);break;case\"m4\":i.uniforms[e].value=(new ae).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new vt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new vt).fromArray(t.clearcoatNormalScale)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),i}setTextures(t){return this.textures=t,this}}class sc{static decodeText(t){if(\"undefined\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\"\";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\"/\");return-1===e?\"./\":t.substr(0,e+1)}}class ac extends wn{constructor(){super(),this.type=\"InstancedBufferGeometry\",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}ac.prototype.isInstancedBufferGeometry=!0;class oc extends en{constructor(t,e,n,i=1){\"number\"==typeof n&&(i=n,n=!1,console.error(\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\")),super(t,e,n),this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}oc.prototype.isInstancedBufferAttribute=!0;class lc extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const r=t.interleavedBuffers[i],s=function(t,e){if(void 0!==n[e])return n[e];const i=t.arrayBuffers[e],r=new Uint32Array(i).buffer;return n[e]=r,r}(t,r.buffer),a=fn(r.type,s),o=new Es(a,r.stride);return o.uuid=r.uuid,e[i]=o,o}const r=t.isInstancedBufferGeometry?new ac:new wn,s=t.data.index;if(void 0!==s){const t=fn(s.type,s.array);r.setIndex(new en(t,1))}const a=t.data.attributes;for(const e in a){const n=a[e];let s;if(n.isInterleavedBufferAttribute){const e=i(t.data,n.data);s=new Ls(e,n.itemSize,n.offset,n.normalized)}else{const t=fn(n.type,n.array);s=new(n.isInstancedBufferAttribute?oc:en)(t,n.itemSize,n.normalized)}void 0!==n.name&&(s.name=n.name),void 0!==n.usage&&s.setUsage(n.usage),void 0!==n.updateRange&&(s.updateRange.offset=n.updateRange.offset,s.updateRange.count=n.updateRange.count),r.setAttribute(e,s)}const o=t.data.morphAttributes;if(o)for(const e in o){const n=o[e],s=[];for(let e=0,r=n.length;e<r;e++){const r=n[e];let a;if(r.isInterleavedBufferAttribute){const e=i(t.data,r.data);a=new Ls(e,r.itemSize,r.offset,r.normalized)}else{const t=fn(r.type,r.array);a=new en(t,r.itemSize,r.normalized)}void 0!==r.name&&(a.name=r.name),s.push(a)}r.morphAttributes[e]=s}t.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==l)for(let t=0,e=l.length;t!==e;++t){const e=l[t];r.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(void 0!==c){const t=new Rt;void 0!==c.center&&t.fromArray(c.center),r.boundingSphere=new Qt(t,c.radius)}return t.name&&(r.name=t.name),t.userData&&(r.userData=t.userData),r}}const cc={UVMapping:i,CubeReflectionMapping:r,CubeRefractionMapping:s,EquirectangularReflectionMapping:a,EquirectangularRefractionMapping:o,CubeUVReflectionMapping:l,CubeUVRefractionMapping:c},hc={RepeatWrapping:h,ClampToEdgeWrapping:u,MirroredRepeatWrapping:d},uc={NearestFilter:p,NearestMipmapNearestFilter:m,NearestMipmapLinearFilter:f,LinearFilter:g,LinearMipmapNearestFilter:v,LinearMipmapLinearFilter:y};class dc extends Ll{constructor(t){super(t),\"undefined\"==typeof createImageBitmap&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\"),\"undefined\"==typeof fetch&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\"),this.options={premultiplyAlpha:\"none\"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Tl.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a={};a.credentials=\"anonymous\"===this.crossOrigin?\"same-origin\":\"include\",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:\"none\"}))})).then((function(n){Tl.add(t,n),e&&e(n),r.manager.itemEnd(t)})).catch((function(e){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}dc.prototype.isImageBitmapLoader=!0;class pc{constructor(){this.type=\"ShapePath\",this.color=new Qe,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new zl,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t,e){function n(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new Fl;r.curves=i.curves,e.push(r)}return e}function i(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;s<n;r=s++){let n=e[r],a=e[s],o=a.x-n.x,l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=No.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new Fl,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e<n;e++)o=s[e],p=o.getPoints(),a=r(p),a=t?!a:a,a?(!h&&d[g]&&g++,d[g]={s:new Fl,p:p},d[g].s.curves=o.curves,h&&g++,f[g]=[]):f[g].push({h:o,p:p[0]});if(!d[0])return n(s);if(d.length>1){let t=!1;const e=[];for(let t=0,e=d.length;t<e;t++)u[t]=[];for(let n=0,r=d.length;n<r;n++){const r=f[n];for(let s=0;s<r.length;s++){const a=r[s];let o=!0;for(let r=0;r<d.length;r++)i(a.p,d[r].p)&&(n!==r&&e.push({froms:n,tos:r,hole:s}),o?(o=!1,u[r].push(a)):t=!0);o&&u[n].push(a)}}e.length>0&&(t||(f=u))}for(let t=0,e=d.length;t<e;t++){l=d[t].s,c.push(l),m=f[t];for(let t=0,e=m.length;t<e;t++)l.holes.push(m[t].h)}return c}}class mc{constructor(t){this.type=\"Font\",this.data=t}generateShapes(t,e=100){const n=[],i=function(t,e,n){const i=Array.from(t),r=e/n.resolution,s=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*r,a=[];let o=0,l=0;for(let t=0;t<i.length;t++){const e=i[t];if(\"\\n\"===e)o=0,l-=s;else{const t=fc(e,r,o,l,n);o+=t.offsetX,a.push(t.path)}}return a}(t,e,this.data);for(let t=0,e=i.length;t<e;t++)Array.prototype.push.apply(n,i[t].toShapes());return n}}function fc(t,e,n,i,r){const s=r.glyphs[t]||r.glyphs[\"?\"];if(!s)return void console.error('THREE.Font: character \"'+t+'\" does not exists in font family '+r.familyName+\".\");const a=new pc;let o,l,c,h,u,d,p,m;if(s.o){const t=s._cachedOutline||(s._cachedOutline=s.o.split(\" \"));for(let r=0,s=t.length;r<s;){switch(t[r++]){case\"m\":o=t[r++]*e+n,l=t[r++]*e+i,a.moveTo(o,l);break;case\"l\":o=t[r++]*e+n,l=t[r++]*e+i,a.lineTo(o,l);break;case\"q\":c=t[r++]*e+n,h=t[r++]*e+i,u=t[r++]*e+n,d=t[r++]*e+i,a.quadraticCurveTo(u,d,c,h);break;case\"b\":c=t[r++]*e+n,h=t[r++]*e+i,u=t[r++]*e+n,d=t[r++]*e+i,p=t[r++]*e+n,m=t[r++]*e+i,a.bezierCurveTo(u,d,p,m,c,h)}}}return{offsetX:s.ha*e,path:a}}mc.prototype.isFont=!0;let gc;const vc={getContext:function(){return void 0===gc&&(gc=new(window.AudioContext||window.webkitAudioContext)),gc},setContext:function(t){gc=t}};class yc extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(this.manager);s.setResponseType(\"arraybuffer\"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{const t=n.slice(0);vc.getContext().decodeAudioData(t,(function(t){e(t)}))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}}class xc extends ic{constructor(t,e,n=1){super(void 0,n);const i=(new Qe).set(t),r=(new Qe).set(e),s=new Rt(i.r,i.g,i.b),a=new Rt(r.r,r.g,r.b),o=Math.sqrt(Math.PI),l=o*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o),this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l)}}xc.prototype.isHemisphereLightProbe=!0;class _c extends ic{constructor(t,e=1){super(void 0,e);const n=(new Qe).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}_c.prototype.isAmbientLightProbe=!0;const bc=new ae,Mc=new ae;class wc{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Sc(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Sc();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Sc(){return(\"undefined\"==typeof performance?Date:performance).now()}const Tc=new Rt,Ec=new Lt,Ac=new Rt,Lc=new Rt;class Rc extends Pe{constructor(t){super(),this.type=\"Audio\",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=\"empty\",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"audioNode\",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaNode\",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaStreamNode\",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=\"buffer\",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn(\"THREE.Audio: Audio is already playing.\");if(!1===this.hasPlaybackControl)return void console.warn(\"THREE.Audio: this Audio has no playback control.\");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn(\"THREE.Audio: this Audio has no playback control.\"),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}const Cc=new Rt,Pc=new Lt,Dc=new Rt,Ic=new Rt;class Nc{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class Bc{constructor(t,e,n){let i,r,s;switch(this.binding=t,this.valueSize=n,e){case\"quaternion\":i=this._slerp,r=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case\"string\":case\"bool\":i=this._select,r=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(0===s){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Lt.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Lt.multiplyQuaternionsFlat(t,s,t,e,t,n),Lt.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const zc=\"\\\\[\\\\]\\\\.:\\\\/\",Fc=new RegExp(\"[\\\\[\\\\]\\\\.:\\\\/]\",\"g\"),Oc=\"[^\\\\[\\\\]\\\\.:\\\\/]\",Hc=\"[^\"+zc.replace(\"\\\\.\",\"\")+\"]\",Uc=/((?:WC+[\\/:])*)/.source.replace(\"WC\",Oc),Gc=/(WCOD+)?/.source.replace(\"WCOD\",Hc),kc=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",Oc),Vc=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",Oc),Wc=new RegExp(\"^\"+Uc+Gc+kc+Vc+\"$\"),jc=[\"material\",\"materials\",\"bones\"];class qc{constructor(t,e,n){this.path=e,this.parsedPath=n||qc.parseTrackName(e),this.node=qc.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new qc.Composite(t,e,n):new qc(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,\"_\").replace(Fc,\"\")}static parseTrackName(t){const e=Wc.exec(t);if(!e)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==jc.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return n}static findNode(t,e){if(!e||\"\"===e||\".\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.node[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=qc.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\"THREE.PropertyBinding: Trying to update node for track: \"+this.path+\" but it wasn't found.\");if(n){let i=e.objectIndex;switch(n){case\"materials\":if(!t.material)return void console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);if(!t.material.materials)return void console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);t=t.material.materials;break;case\"bones\":if(!t.skeleton)return void console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+i+\" but it wasn't found.\",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if(\"morphTargetInfluences\"===i){if(!t.geometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);if(!t.geometry.isBufferGeometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\",this);if(!t.geometry.morphAttributes)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}qc.Composite=class{constructor(t,e,n){const i=n||qc.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},qc.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},qc.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},qc.prototype.GetterByBindingType=[qc.prototype._getValue_direct,qc.prototype._getValue_array,qc.prototype._getValue_arrayElement,qc.prototype._getValue_toArray],qc.prototype.SetterByBindingTypeAndVersioning=[[qc.prototype._setValue_direct,qc.prototype._setValue_direct_setNeedsUpdate,qc.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[qc.prototype._setValue_array,qc.prototype._setValue_array_setNeedsUpdate,qc.prototype._setValue_array_setMatrixWorldNeedsUpdate],[qc.prototype._setValue_arrayElement,qc.prototype._setValue_arrayElement_setNeedsUpdate,qc.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[qc.prototype._setValue_fromArray,qc.prototype._setValue_fromArray_setNeedsUpdate,qc.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class Xc{constructor(){this.uuid=ct(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=e[u];if(void 0===d){d=o++,e[u]=d,t.push(h);for(let t=0,e=s;t!==e;++t)r[t].push(new qc(h,n[t],i[t]))}else if(d<l){a=t[d];const o=--l,c=t[o];e[c.uuid]=d,t[d]=c,e[u]=o,t[o]=h;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s,void 0===a&&(a=new qc(h,n[t],i[t])),e[o]=a}}else t[d]!==a&&console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\")}this.nCachedObjects_=l}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=e[o];if(void 0!==l&&l>=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l<r){const a=--r,o=t[a],c=--s,h=t[c];e[o.uuid]=l,t[l]=o,e[h.uuid]=a,t[a]=h,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[c];e[l]=i,e[a]=r,e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new qc(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}Xc.prototype.isAnimationObjectGroup=!0;class Yc{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:k,endingEnd:k};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case q:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);break;case j:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=V,i.endingEnd=V):(i.endingStart=t?this.zeroSlopeAtStart?V:k:W,i.endingEnd=e?this.zeroSlopeAtEnd?V:k:W)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class Jc extends rt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Bc(qc.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{const e=s.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,l=o[o.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,o[c]=l,o.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===o.length&&delete s[r],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];void 0===s&&(s={},i[e]=s),s[n]=t,t._cacheIndex=r.length,r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],l=t._cacheIndex;o._cacheIndex=l,e[l]=o,e.pop(),delete a[r],0===Object.keys(a).length&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new pl(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s=\"string\"==typeof t?wl.findByName(i,t):t;const a=null!==s?s.uuid:t,o=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==s?s.blendMode:j),void 0!==o){const t=o.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;l=o.knownActions[0],null===s&&(s=l._clip)}if(null===s)return null;const c=new Yc(this,s,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,r),c}existingAction(t,e){const n=e||this._root,i=n.uuid,r=\"string\"==typeof t?wl.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,s._cacheIndex=r,e[r]=s,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const t in i){const e=i[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}Jc.prototype._controlInterpolantsResultBuffer=new Float32Array(1);class Zc{constructor(t){\"string\"==typeof t&&(console.warn(\"THREE.Uniform: Type parameter is no longer needed.\"),t=arguments[1]),this.value=t}clone(){return new Zc(void 0===this.value.clone?this.value:this.value.clone())}}class Qc extends Es{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}Qc.prototype.isInstancedInterleavedBuffer=!0;class Kc{constructor(t,e,n,i,r){this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}set needsUpdate(t){!0===t&&this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}}Kc.prototype.isGLBufferAttribute=!0;function $c(t,e){return t.distance-e.distance}function th(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)th(i[t],e,n,!0)}}const eh=new vt;class nh{constructor(t=new vt(1/0,1/0),e=new vt(-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=eh.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return eh.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}nh.prototype.isBox2=!0;const ih=new Rt,rh=new Rt;class sh{constructor(t=new Rt,e=new Rt){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){ih.subVectors(t,this.start),rh.subVectors(this.end,this.start);const n=rh.dot(rh);let i=rh.dot(ih)/n;return e&&(i=ht(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class ah extends Pe{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}ah.prototype.isImmediateRenderObject=!0;const oh=new Rt;const lh=new Rt,ch=new ae,hh=new ae;class uh extends xa{constructor(t){const e=dh(t),n=new wn,i=[],r=[],s=new Qe(0,0,1),a=new Qe(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(s.r,s.g,s.b),r.push(a.r,a.g,a.b))}n.setAttribute(\"position\",new un(i,3)),n.setAttribute(\"color\",new un(r,3));super(n,new ha({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type=\"SkeletonHelper\",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute(\"position\");hh.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const r=e[t];r.parent&&r.parent.isBone&&(ch.multiplyMatrices(hh,r.matrixWorld),lh.setFromMatrixPosition(ch),i.setXYZ(n,lh.x,lh.y,lh.z),ch.multiplyMatrices(hh,r.parent.matrixWorld),lh.setFromMatrixPosition(ch),i.setXYZ(n+1,lh.x,lh.y,lh.z),n+=2)}n.getAttribute(\"position\").needsUpdate=!0,super.updateMatrixWorld(t)}}function dh(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,dh(t.children[n]));return e}const ph=new Rt,mh=new Qe,fh=new Qe;class gh extends xa{constructor(t=10,e=10,n=4473924,i=8947848){n=new Qe(n),i=new Qe(i);const r=e/2,s=t/e,a=t/2,o=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=s){o.push(-a,0,h,a,0,h),o.push(h,0,-a,h,0,a);const e=t===r?n:i;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new wn;c.setAttribute(\"position\",new un(o,3)),c.setAttribute(\"color\",new un(l,3));super(c,new ha({vertexColors:!0,toneMapped:!1})),this.type=\"GridHelper\"}}const vh=new Rt,yh=new Rt,xh=new Rt;const _h=new Rt,bh=new Yn;function Mh(t,e,n,i,r,s,a){_h.set(r,s,a).unproject(i);const o=e[t];if(void 0!==o){const t=n.getAttribute(\"position\");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],_h.x,_h.y,_h.z)}}const wh=new Dt;class Sh extends xa{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new wn;r.setIndex(new en(n,1)),r.setAttribute(\"position\",new en(i,3)),super(r,new ha({color:e,toneMapped:!1})),this.object=t,this.type=\"BoxHelper\",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\"),void 0!==this.object&&wh.setFromObject(this.object),wh.isEmpty())return;const e=wh.min,n=wh.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t){return xa.prototype.copy.call(this,t),this.object=t.object,this}}const Th=new Rt;let Eh,Ah;class Lh extends xa{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new wn;n.setAttribute(\"position\",new un(e,3)),n.setAttribute(\"color\",new un([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new ha({vertexColors:!0,toneMapped:!1})),this.type=\"AxesHelper\"}setColors(t,e,n){const i=new Qe,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}const Rh=new Float32Array(1),Ch=new Int32Array(Rh.buffer);const Ph=Math.pow(2,8),Dh=[.125,.215,.35,.446,.526,.582],Ih=5+Dh.length,Nh=20,Bh={[X]:0,[Y]:1,[Z]:2,[Q]:3,[K]:4,[$]:5,[J]:6},zh=new Ke({side:1,depthWrite:!1,depthTest:!1}),Fh=new Gn(new Vn,zh),Oh=new Ql,{_lodPlanes:Hh,_sizeLods:Uh,_sigmas:Gh}=Jh(),kh=new Qe;let Vh=null;const Wh=(1+Math.sqrt(5))/2,jh=1/Wh,qh=[new Rt(1,1,1),new Rt(-1,1,1),new Rt(1,1,-1),new Rt(-1,1,-1),new Rt(0,Wh,jh),new Rt(0,Wh,-jh),new Rt(jh,0,Wh),new Rt(-jh,0,Wh),new Rt(Wh,jh,0),new Rt(-Wh,jh,0)];function Xh(t){const e=Math.max(t.r,t.g,t.b),n=Math.min(Math.max(Math.ceil(Math.log2(e)),-128),127);t.multiplyScalar(Math.pow(2,-n));return(n+128)/255}function Yh(t){return void 0!==t&&t.type===x&&(t.encoding===X||t.encoding===Y||t.encoding===J)}function Jh(){const t=[],e=[],n=[];let i=8;for(let r=0;r<Ih;r++){const s=Math.pow(2,i);e.push(s);let a=1/s;r>4?a=Dh[r-8+4-1]:0==r&&(a=0),n.push(a);const o=1/(s-1),l=-o/2,c=1+o/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,m=2,f=1,g=new Float32Array(p*d*u),v=new Float32Array(m*d*u),y=new Float32Array(f*d*u);for(let t=0;t<u;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];g.set(i,p*d*t),v.set(h,m*d*t);const r=[t,t,t,t,t,t];y.set(r,f*d*t)}const x=new wn;x.setAttribute(\"position\",new en(g,p)),x.setAttribute(\"uv\",new en(v,m)),x.setAttribute(\"faceIndex\",new en(y,f)),t.push(x),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function Zh(t){const e=new Tt(3*Ph,3*Ph,t);return e.texture.mapping=l,e.texture.name=\"PMREM.cubeUv\",e.scissorTest=!0,e}function Qh(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Kh(){const t=new vt(1,1);return new tl({name:\"EquirectangularToCubeUV\",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:Bh[3e3]},outputEncoding:{value:Bh[3e3]}},vertexShader:tu(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform vec2 texelSize;\\n\\n\\t\\t\\t${eu()}\\n\\n\\t\\t\\t#include <common>\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tvec2 f = fract( uv / texelSize - 0.5 );\\n\\t\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\t\\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x += texelSize.x;\\n\\t\\t\\t\\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.y += texelSize.y;\\n\\t\\t\\t\\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x -= texelSize.x;\\n\\t\\t\\t\\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\n\\t\\t\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\t\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\t\\t\\tgl_FragColor.rgb = mix( tm, bm, f.y );\\n\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:0,depthTest:!1,depthWrite:!1})}function $h(){return new tl({name:\"CubemapToCubeUV\",uniforms:{envMap:{value:null},inputEncoding:{value:Bh[3e3]},outputEncoding:{value:Bh[3e3]}},vertexShader:tu(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\t${eu()}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:0,depthTest:!1,depthWrite:!1})}function tu(){return\"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute vec3 position;\\n\\t\\tattribute vec2 uv;\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"}function eu(){return\"\\n\\n\\t\\tuniform int inputEncoding;\\n\\t\\tuniform int outputEncoding;\\n\\n\\t\\t#include <encodings_pars_fragment>\\n\\n\\t\\tvec4 inputTexelToLinear( vec4 value ) {\\n\\n\\t\\t\\tif ( inputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( inputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn sRGBToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn RGBEToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 7.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 16.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn RGBDToLinear( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn GammaToLinear( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 linearToOutputTexel( vec4 value ) {\\n\\n\\t\\t\\tif ( outputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( outputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn LinearTosRGB( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBE( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 7.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 16.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBD( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn LinearToGamma( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 envMapTexelToLinear( vec4 color ) {\\n\\n\\t\\t\\treturn inputTexelToLinear( color );\\n\\n\\t\\t}\\n\\t\"}ka.create=function(t,e){return console.log(\"THREE.Curve.create() has been deprecated\"),t.prototype=Object.create(ka.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},zl.prototype.fromPoints=function(t){return console.warn(\"THREE.Path: .fromPoints() has been renamed to .setFromPoints().\"),this.setFromPoints(t)},gh.prototype.setColors=function(){console.error(\"THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.\")},uh.prototype.update=function(){console.error(\"THREE.SkeletonHelper: update() no longer needs to be called.\")},Ll.prototype.extractUrlBase=function(t){return console.warn(\"THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.\"),sc.extractUrlBase(t)},Ll.Handlers={add:function(){console.error(\"THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.\")},get:function(){console.error(\"THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.\")}},nh.prototype.center=function(t){return console.warn(\"THREE.Box2: .center() has been renamed to .getCenter().\"),this.getCenter(t)},nh.prototype.empty=function(){return console.warn(\"THREE.Box2: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},nh.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},nh.prototype.size=function(t){return console.warn(\"THREE.Box2: .size() has been renamed to .getSize().\"),this.getSize(t)},Dt.prototype.center=function(t){return console.warn(\"THREE.Box3: .center() has been renamed to .getCenter().\"),this.getCenter(t)},Dt.prototype.empty=function(){return console.warn(\"THREE.Box3: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},Dt.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},Dt.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},Dt.prototype.size=function(t){return console.warn(\"THREE.Box3: .size() has been renamed to .getSize().\"),this.getSize(t)},Qt.prototype.empty=function(){return console.warn(\"THREE.Sphere: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},ai.prototype.setFromMatrix=function(t){return console.warn(\"THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().\"),this.setFromProjectionMatrix(t)},sh.prototype.center=function(t){return console.warn(\"THREE.Line3: .center() has been renamed to .getCenter().\"),this.getCenter(t)},yt.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},yt.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},yt.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix3: .multiplyVector3Array() has been removed.\")},yt.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},yt.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix3: .applyToVector3Array() has been removed.\")},yt.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},ae.prototype.extractPosition=function(t){return console.warn(\"THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().\"),this.copyPosition(t)},ae.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},ae.prototype.getPosition=function(){return console.warn(\"THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.\"),(new Rt).setFromMatrixColumn(this,3)},ae.prototype.setRotationFromQuaternion=function(t){return console.warn(\"THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().\"),this.makeRotationFromQuaternion(t)},ae.prototype.multiplyToArray=function(){console.warn(\"THREE.Matrix4: .multiplyToArray() has been removed.\")},ae.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.multiplyVector4=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix4: .multiplyVector3Array() has been removed.\")},ae.prototype.rotateAxis=function(t){console.warn(\"THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.\"),t.transformDirection(this)},ae.prototype.crossVector=function(t){return console.warn(\"THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.translate=function(){console.error(\"THREE.Matrix4: .translate() has been removed.\")},ae.prototype.rotateX=function(){console.error(\"THREE.Matrix4: .rotateX() has been removed.\")},ae.prototype.rotateY=function(){console.error(\"THREE.Matrix4: .rotateY() has been removed.\")},ae.prototype.rotateZ=function(){console.error(\"THREE.Matrix4: .rotateZ() has been removed.\")},ae.prototype.rotateByAxis=function(){console.error(\"THREE.Matrix4: .rotateByAxis() has been removed.\")},ae.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix4: .applyToVector3Array() has been removed.\")},ae.prototype.makeFrustum=function(t,e,n,i,r,s){return console.warn(\"THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.\"),this.makePerspective(t,e,i,n,r,s)},ae.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},ii.prototype.isIntersectionLine=function(t){return console.warn(\"THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().\"),this.intersectsLine(t)},Lt.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.\"),t.applyQuaternion(this)},Lt.prototype.inverse=function(){return console.warn(\"THREE.Quaternion: .inverse() has been renamed to invert().\"),this.invert()},se.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},se.prototype.isIntersectionPlane=function(t){return console.warn(\"THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().\"),this.intersectsPlane(t)},se.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},ke.prototype.area=function(){return console.warn(\"THREE.Triangle: .area() has been renamed to .getArea().\"),this.getArea()},ke.prototype.barycoordFromPoint=function(t,e){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),this.getBarycoord(t,e)},ke.prototype.midpoint=function(t){return console.warn(\"THREE.Triangle: .midpoint() has been renamed to .getMidpoint().\"),this.getMidpoint(t)},ke.prototypenormal=function(t){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),this.getNormal(t)},ke.prototype.plane=function(t){return console.warn(\"THREE.Triangle: .plane() has been renamed to .getPlane().\"),this.getPlane(t)},ke.barycoordFromPoint=function(t,e,n,i,r){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),ke.getBarycoord(t,e,n,i,r)},ke.normal=function(t,e,n,i){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),ke.getNormal(t,e,n,i)},Fl.prototype.extractAllPoints=function(t){return console.warn(\"THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.\"),this.extractPoints(t)},Fl.prototype.extrude=function(t){return console.warn(\"THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.\"),new Fo(this,t)},Fl.prototype.makeGeometry=function(t){return console.warn(\"THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.\"),new Wo(this,t)},vt.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},vt.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},vt.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},Rt.prototype.setEulerFromRotationMatrix=function(){console.error(\"THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.\")},Rt.prototype.setEulerFromQuaternion=function(){console.error(\"THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.\")},Rt.prototype.getPositionFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().\"),this.setFromMatrixPosition(t)},Rt.prototype.getScaleFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().\"),this.setFromMatrixScale(t)},Rt.prototype.getColumnFromMatrix=function(t,e){return console.warn(\"THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().\"),this.setFromMatrixColumn(e,t)},Rt.prototype.applyProjection=function(t){return console.warn(\"THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.\"),this.applyMatrix4(t)},Rt.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},Rt.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},Rt.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},St.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},St.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},Pe.prototype.getChildByName=function(t){return console.warn(\"THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().\"),this.getObjectByName(t)},Pe.prototype.renderDepth=function(){console.warn(\"THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.\")},Pe.prototype.translate=function(t,e){return console.warn(\"THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.\"),this.translateOnAxis(e,t)},Pe.prototype.getWorldRotation=function(){console.error(\"THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.\")},Pe.prototype.applyMatrix=function(t){return console.warn(\"THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(Pe.prototype,{eulerOrder:{get:function(){return console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order},set:function(t){console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order=t}},useQuaternion:{get:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")},set:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")}}}),Gn.prototype.setDrawMode=function(){console.error(\"THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")},Object.defineProperties(Gn.prototype,{drawMode:{get:function(){return console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.\"),0},set:function(){console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")}}}),$s.prototype.initBones=function(){console.error(\"THREE.SkinnedMesh: initBones() has been removed.\")},Jn.prototype.setLens=function(t,e){console.warn(\"THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.\"),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(Ol.prototype,{onlyShadow:{set:function(){console.warn(\"THREE.Light: .onlyShadow has been removed.\")}},shadowCameraFov:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFov is now .shadow.camera.fov.\"),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn(\"THREE.Light: .shadowCameraLeft is now .shadow.camera.left.\"),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn(\"THREE.Light: .shadowCameraRight is now .shadow.camera.right.\"),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn(\"THREE.Light: .shadowCameraTop is now .shadow.camera.top.\"),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn(\"THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.\"),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn(\"THREE.Light: .shadowCameraNear is now .shadow.camera.near.\"),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFar is now .shadow.camera.far.\"),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn(\"THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.\")}},shadowBias:{set:function(t){console.warn(\"THREE.Light: .shadowBias is now .shadow.bias.\"),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn(\"THREE.Light: .shadowDarkness has been removed.\")}},shadowMapWidth:{set:function(t){console.warn(\"THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.\"),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn(\"THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.\"),this.shadow.mapSize.height=t}}}),Object.defineProperties(en.prototype,{length:{get:function(){return console.warn(\"THREE.BufferAttribute: .length has been deprecated. Use .count instead.\"),this.array.length}},dynamic:{get:function(){return console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.usage===nt},set:function(){console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.setUsage(nt)}}}),en.prototype.setDynamic=function(t){return console.warn(\"THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?nt:et),this},en.prototype.copyIndicesArray=function(){console.error(\"THREE.BufferAttribute: .copyIndicesArray() has been removed.\")},en.prototype.setArray=function(){console.error(\"THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},wn.prototype.addIndex=function(t){console.warn(\"THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().\"),this.setIndex(t)},wn.prototype.addAttribute=function(t,e){return console.warn(\"THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().\"),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?\"index\"===t?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),this.setIndex(e),this):this.setAttribute(t,e):(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),this.setAttribute(t,new en(arguments[1],arguments[2])))},wn.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn(\"THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.\"),console.warn(\"THREE.BufferGeometry: .addDrawCall() is now .addGroup().\"),this.addGroup(t,e)},wn.prototype.clearDrawCalls=function(){console.warn(\"THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().\"),this.clearGroups()},wn.prototype.computeOffsets=function(){console.warn(\"THREE.BufferGeometry: .computeOffsets() has been removed.\")},wn.prototype.removeAttribute=function(t){return console.warn(\"THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().\"),this.deleteAttribute(t)},wn.prototype.applyMatrix=function(t){return console.warn(\"THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(wn.prototype,{drawcalls:{get:function(){return console.error(\"THREE.BufferGeometry: .drawcalls has been renamed to .groups.\"),this.groups}},offsets:{get:function(){return console.warn(\"THREE.BufferGeometry: .offsets has been renamed to .groups.\"),this.groups}}}),Es.prototype.setDynamic=function(t){return console.warn(\"THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?nt:et),this},Es.prototype.setArray=function(){console.error(\"THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},Fo.prototype.getArrays=function(){console.error(\"THREE.ExtrudeGeometry: .getArrays() has been removed.\")},Fo.prototype.addShapeList=function(){console.error(\"THREE.ExtrudeGeometry: .addShapeList() has been removed.\")},Fo.prototype.addShape=function(){console.error(\"THREE.ExtrudeGeometry: .addShape() has been removed.\")},Ts.prototype.dispose=function(){console.error(\"THREE.Scene: .dispose() has been removed.\")},Zc.prototype.onUpdate=function(){return console.warn(\"THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.\"),this},Object.defineProperties(We.prototype,{wrapAround:{get:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")},set:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")}},overdraw:{get:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")},set:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")}},wrapRGB:{get:function(){return console.warn(\"THREE.Material: .wrapRGB has been removed.\"),new Qe}},shading:{get:function(){console.error(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\")},set:function(t){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask},set:function(t){console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask=t}}}),Object.defineProperties(Xn.prototype,{derivatives:{get:function(){return console.warn(\"THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives},set:function(t){console.warn(\"THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives=t}}}),bs.prototype.clearTarget=function(t,e,n,i){console.warn(\"THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.\"),this.setRenderTarget(t),this.clear(e,n,i)},bs.prototype.animate=function(t){console.warn(\"THREE.WebGLRenderer: .animate() is now .setAnimationLoop().\"),this.setAnimationLoop(t)},bs.prototype.getCurrentRenderTarget=function(){return console.warn(\"THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().\"),this.getRenderTarget()},bs.prototype.getMaxAnisotropy=function(){return console.warn(\"THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().\"),this.capabilities.getMaxAnisotropy()},bs.prototype.getPrecision=function(){return console.warn(\"THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.\"),this.capabilities.precision},bs.prototype.resetGLState=function(){return console.warn(\"THREE.WebGLRenderer: .resetGLState() is now .state.reset().\"),this.state.reset()},bs.prototype.supportsFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).\"),this.extensions.get(\"OES_texture_float\")},bs.prototype.supportsHalfFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).\"),this.extensions.get(\"OES_texture_half_float\")},bs.prototype.supportsStandardDerivatives=function(){return console.warn(\"THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).\"),this.extensions.get(\"OES_standard_derivatives\")},bs.prototype.supportsCompressedTextureS3TC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_s3tc\")},bs.prototype.supportsCompressedTexturePVRTC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_pvrtc\")},bs.prototype.supportsBlendMinMax=function(){return console.warn(\"THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).\"),this.extensions.get(\"EXT_blend_minmax\")},bs.prototype.supportsVertexTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.\"),this.capabilities.vertexTextures},bs.prototype.supportsInstancedArrays=function(){return console.warn(\"THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).\"),this.extensions.get(\"ANGLE_instanced_arrays\")},bs.prototype.enableScissorTest=function(t){console.warn(\"THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().\"),this.setScissorTest(t)},bs.prototype.initMaterial=function(){console.warn(\"THREE.WebGLRenderer: .initMaterial() has been removed.\")},bs.prototype.addPrePlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPrePlugin() has been removed.\")},bs.prototype.addPostPlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPostPlugin() has been removed.\")},bs.prototype.updateShadowMap=function(){console.warn(\"THREE.WebGLRenderer: .updateShadowMap() has been removed.\")},bs.prototype.setFaceCulling=function(){console.warn(\"THREE.WebGLRenderer: .setFaceCulling() has been removed.\")},bs.prototype.allocTextureUnit=function(){console.warn(\"THREE.WebGLRenderer: .allocTextureUnit() has been removed.\")},bs.prototype.setTexture=function(){console.warn(\"THREE.WebGLRenderer: .setTexture() has been removed.\")},bs.prototype.setTexture2D=function(){console.warn(\"THREE.WebGLRenderer: .setTexture2D() has been removed.\")},bs.prototype.setTextureCube=function(){console.warn(\"THREE.WebGLRenderer: .setTextureCube() has been removed.\")},bs.prototype.getActiveMipMapLevel=function(){return console.warn(\"THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().\"),this.getActiveMipmapLevel()},Object.defineProperties(bs.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.\"),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.\"),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")}},context:{get:function(){return console.warn(\"THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.\"),this.getContext()}},vr:{get:function(){return console.warn(\"THREE.WebGLRenderer: .vr has been renamed to .xr\"),this.xr}},gammaInput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\"),!1},set:function(){console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\")}},gammaOutput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),!1},set:function(t){console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),this.outputEncoding=!0===t?Y:X}},toneMappingWhitePoint:{get:function(){return console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\"),1},set:function(){console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\")}}}),Object.defineProperties(us.prototype,{cullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")}},renderReverseSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")}},renderSingleSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")}}}),Object.defineProperties(Tt.prototype,{wrapS:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy=t}},offset:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset=t}},repeat:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat=t}},format:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format=t}},type:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps=t}}}),Rc.prototype.load=function(t){console.warn(\"THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.\");const e=this;return(new yc).load(t,(function(t){e.setBuffer(t)})),this},Nc.prototype.getData=function(){return console.warn(\"THREE.AudioAnalyser: .getData() is now .getFrequencyData().\"),this.getFrequencyData()},Qn.prototype.updateCubeMap=function(t,e){return console.warn(\"THREE.CubeCamera: .updateCubeMap() is now .update().\"),this.update(t,e)},Qn.prototype.clear=function(t,e,n,i){return console.warn(\"THREE.CubeCamera: .clear() is now .renderTarget.clear().\"),this.renderTarget.clear(t,e,n,i)},_t.crossOrigin=void 0,_t.loadTexture=function(t,e,n,i){console.warn(\"THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.\");const r=new Nl;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadTextureCube=function(t,e,n,i){console.warn(\"THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.\");const r=new Dl;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadCompressedTexture=function(){console.error(\"THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.\")},_t.loadCompressedTextureCube=function(){console.error(\"THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.\")};const nu={createMultiMaterialObject:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")},detach:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")},attach:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")}};\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:e}})),\"undefined\"!=typeof window&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=e),t.ACESFilmicToneMapping=4,t.AddEquation=n,t.AddOperation=2,t.AdditiveAnimationBlendMode=q,t.AdditiveBlending=2,t.AlphaFormat=1021,t.AlwaysDepth=1,t.AlwaysStencilFunc=519,t.AmbientLight=tc,t.AmbientLightProbe=_c,t.AnimationClip=wl,t.AnimationLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=wl.parse(t[n]);e.push(i)}return e}},t.AnimationMixer=Jc,t.AnimationObjectGroup=Xc,t.AnimationUtils=hl,t.ArcCurve=Wa,t.ArrayCamera=fs,t.ArrowHelper=class extends Pe{constructor(t=new Rt(0,0,1),e=new Rt(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type=\"ArrowHelper\",void 0===Eh&&(Eh=new wn,Eh.setAttribute(\"position\",new un([0,0,0,0,1,0],3)),Ah=new Ia(0,.5,1,5,1),Ah.translate(0,-.5,0)),this.position.copy(e),this.line=new ga(Eh,new ha({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Gn(Ah,new Ke({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Th.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Th,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=Rc,t.AudioAnalyser=Nc,t.AudioContext=vc,t.AudioListener=class extends Pe{constructor(){super(),this.type=\"AudioListener\",this.context=vc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new wc}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Tc,Ec,Ac),Lc.set(0,0,-1).applyQuaternion(Ec),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Tc.x,t),e.positionY.linearRampToValueAtTime(Tc.y,t),e.positionZ.linearRampToValueAtTime(Tc.z,t),e.forwardX.linearRampToValueAtTime(Lc.x,t),e.forwardY.linearRampToValueAtTime(Lc.y,t),e.forwardZ.linearRampToValueAtTime(Lc.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Tc.x,Tc.y,Tc.z),e.setOrientation(Lc.x,Lc.y,Lc.z,n.x,n.y,n.z)}},t.AudioLoader=yc,t.AxesHelper=Lh,t.AxisHelper=function(t){return console.warn(\"THREE.AxisHelper has been renamed to THREE.AxesHelper.\"),new Lh(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return console.warn(\"THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.\"),new Il(t)},t.Bone=ta,t.BooleanKeyframeTrack=gl,t.BoundingBoxHelper=function(t,e){return console.warn(\"THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.\"),new Sh(t,e)},t.Box2=nh,t.Box3=Dt,t.Box3Helper=class extends xa{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new wn;i.setIndex(new en(n,1)),i.setAttribute(\"position\",new un([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new ha({color:e,toneMapped:!1})),this.box=t,this.type=\"Box3Helper\",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=Vn,t.BoxGeometry=Vn,t.BoxHelper=Sh,t.BufferAttribute=en,t.BufferGeometry=wn,t.BufferGeometryLoader=lc,t.ByteType=1010,t.Cache=Tl,t.Camera=Yn,t.CameraHelper=class extends xa{constructor(t){const e=new wn,n=new ha({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new Qe(16755200),o=new Qe(16711680),l=new Qe(43775),c=new Qe(16777215),h=new Qe(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u(\"n1\",\"n2\",a),u(\"n2\",\"n4\",a),u(\"n4\",\"n3\",a),u(\"n3\",\"n1\",a),u(\"f1\",\"f2\",a),u(\"f2\",\"f4\",a),u(\"f4\",\"f3\",a),u(\"f3\",\"f1\",a),u(\"n1\",\"f1\",a),u(\"n2\",\"f2\",a),u(\"n3\",\"f3\",a),u(\"n4\",\"f4\",a),u(\"p\",\"n1\",o),u(\"p\",\"n2\",o),u(\"p\",\"n3\",o),u(\"p\",\"n4\",o),u(\"u1\",\"u2\",l),u(\"u2\",\"u3\",l),u(\"u3\",\"u1\",l),u(\"c\",\"t\",c),u(\"p\",\"c\",h),u(\"cn1\",\"cn2\",h),u(\"cn3\",\"cn4\",h),u(\"cf1\",\"cf2\",h),u(\"cf3\",\"cf4\",h),e.setAttribute(\"position\",new un(i,3)),e.setAttribute(\"color\",new un(r,3)),super(e,n),this.type=\"CameraHelper\",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;bh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),Mh(\"c\",e,t,bh,0,0,-1),Mh(\"t\",e,t,bh,0,0,1),Mh(\"n1\",e,t,bh,-1,-1,-1),Mh(\"n2\",e,t,bh,1,-1,-1),Mh(\"n3\",e,t,bh,-1,1,-1),Mh(\"n4\",e,t,bh,1,1,-1),Mh(\"f1\",e,t,bh,-1,-1,1),Mh(\"f2\",e,t,bh,1,-1,1),Mh(\"f3\",e,t,bh,-1,1,1),Mh(\"f4\",e,t,bh,1,1,1),Mh(\"u1\",e,t,bh,.7,1.1,-1),Mh(\"u2\",e,t,bh,-.7,1.1,-1),Mh(\"u3\",e,t,bh,0,2,-1),Mh(\"cf1\",e,t,bh,-1,0,1),Mh(\"cf2\",e,t,bh,1,0,1),Mh(\"cf3\",e,t,bh,0,-1,1),Mh(\"cf4\",e,t,bh,0,1,1),Mh(\"cn1\",e,t,bh,-1,0,-1),Mh(\"cn2\",e,t,bh,1,0,-1),Mh(\"cn3\",e,t,bh,0,-1,-1),Mh(\"cn4\",e,t,bh,0,1,-1),t.getAttribute(\"position\").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){console.error(\"THREE.CanvasRenderer has been removed\")},t.CanvasTexture=Ca,t.CatmullRomCurve3=Za,t.CineonToneMapping=3,t.CircleBufferGeometry=Da,t.CircleGeometry=Da,t.ClampToEdgeWrapping=u,t.Clock=wc,t.Color=Qe,t.ColorKeyframeTrack=vl,t.CompressedTexture=Ra,t.CompressedTextureLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new Ra,o=new Cl(this.manager);o.setPath(this.path),o.setResponseType(\"arraybuffer\"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)c(e);else o.load(t,(function(t){const n=r.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),s[e].format=n.format,s[e].width=n.width,s[e].height=n.height}a.image=s}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=g),a.format=n.format,a.needsUpdate=!0,e&&e(a)}),n,i);return a}},t.ConeBufferGeometry=Na,t.ConeGeometry=Na,t.CubeCamera=Qn,t.CubeReflectionMapping=r,t.CubeRefractionMapping=s,t.CubeTexture=Kn,t.CubeTextureLoader=Dl,t.CubeUVReflectionMapping=l,t.CubeUVRefractionMapping=c,t.CubicBezierCurve=to,t.CubicBezierCurve3=eo,t.CubicInterpolant=dl,t.CullFaceBack=1,t.CullFaceFront=2,t.CullFaceFrontBack=3,t.CullFaceNone=0,t.Curve=ka,t.CurvePath=Bl,t.CustomBlending=5,t.CustomToneMapping=5,t.CylinderBufferGeometry=Ia,t.CylinderGeometry=Ia,t.Cylindrical=class{constructor(t=1,e=0,n=0){return this.radius=t,this.theta=e,this.y=n,this}set(t,e,n){return this.radius=t,this.theta=e,this.y=n,this}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}clone(){return(new this.constructor).copy(this)}},t.DataTexture=ea,t.DataTexture2DArray=Ai,t.DataTexture3D=Li,t.DataTextureLoader=Il,t.DataUtils=class{static toHalfFloat(t){Rh[0]=t;const e=Ch[0];let n=e>>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=Al,t.DepthFormat=A,t.DepthStencilFormat=L,t.DepthTexture=Pa,t.DirectionalLight=$l,t.DirectionalLightHelper=class extends Pe{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new wn;i.setAttribute(\"position\",new un([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new ha({fog:!1,toneMapped:!1});this.lightPlane=new ga(i,r),this.add(this.lightPlane),i=new wn,i.setAttribute(\"position\",new un([0,0,0,0,0,1],3)),this.targetLine=new ga(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){vh.setFromMatrixPosition(this.light.matrixWorld),yh.setFromMatrixPosition(this.light.target.matrixWorld),xh.subVectors(yh,vh),this.lightPlane.lookAt(yh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(yh),this.targetLine.scale.z=xh.length()}},t.DiscreteInterpolant=ml,t.DodecahedronBufferGeometry=za,t.DodecahedronGeometry=za,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return console.warn(\"THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.\"),new en(t,e).setUsage(nt)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=nt,t.DynamicReadUsage=35049,t.EdgesGeometry=Ga,t.EdgesHelper=function(t,e){return console.warn(\"THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.\"),new xa(new Ga(t.geometry),new ha({color:void 0!==e?e:16777215}))},t.EllipseCurve=Va,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=ge,t.EventDispatcher=rt,t.ExtrudeBufferGeometry=Fo,t.ExtrudeGeometry=Fo,t.FaceColors=1,t.FileLoader=Cl,t.FlatShading=1,t.Float16BufferAttribute=hn,t.Float32Attribute=function(t,e){return console.warn(\"THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.\"),new un(t,e)},t.Float32BufferAttribute=un,t.Float64Attribute=function(t,e){return console.warn(\"THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.\"),new dn(t,e)},t.Float64BufferAttribute=dn,t.FloatType=M,t.Fog=Ss,t.FogExp2=ws,t.Font=mc,t.FontLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn(\"THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.\"),n=JSON.parse(t.substring(65,t.length-2))}const i=r.parse(n);e&&e(i)}),n,i)}parse(t){return new mc(t)}},t.FrontSide=0,t.Frustum=ai,t.GLBufferAttribute=Kc,t.GLSL1=\"100\",t.GLSL3=it,t.GammaEncoding=J,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=gh,t.Group=gs,t.HalfFloatType=w,t.HemisphereLight=Hl,t.HemisphereLightHelper=class extends Pe{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new Go(e);i.rotateY(.5*Math.PI),this.material=new Ke({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute(\"position\"),s=new Float32Array(3*r.count);i.setAttribute(\"color\",new en(s,3)),this.add(new Gn(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute(\"color\");mh.copy(this.light.color),fh.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?mh:fh;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=!0}t.lookAt(ph.setFromMatrixPosition(this.light.matrixWorld).negate())}},t.HemisphereLightProbe=xc,t.IcosahedronBufferGeometry=Ho,t.IcosahedronGeometry=Ho,t.ImageBitmapLoader=dc,t.ImageLoader=Pl,t.ImageUtils=_t,t.ImmediateRenderObject=ah,t.IncrementStencilOp=7682,t.IncrementWrapStencilOp=34055,t.InstancedBufferAttribute=oc,t.InstancedBufferGeometry=ac,t.InstancedInterleavedBuffer=Qc,t.InstancedMesh=ca,t.Int16Attribute=function(t,e){return console.warn(\"THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.\"),new an(t,e)},t.Int16BufferAttribute=an,t.Int32Attribute=function(t,e){return console.warn(\"THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.\"),new ln(t,e)},t.Int32BufferAttribute=ln,t.Int8Attribute=function(t,e){return console.warn(\"THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.\"),new nn(t,e)},t.Int8BufferAttribute=nn,t.IntType=1013,t.InterleavedBuffer=Es,t.InterleavedBufferAttribute=Ls,t.Interpolant=ul,t.InterpolateDiscrete=H,t.InterpolateLinear=U,t.InterpolateSmooth=G,t.InvertStencilOp=5386,t.JSONLoader=function(){console.error(\"THREE.JSONLoader has been removed.\")},t.KeepStencilOp=tt,t.KeyframeTrack=fl,t.LOD=Xs,t.LatheBufferGeometry=Uo,t.LatheGeometry=Uo,t.Layers=ve,t.LensFlare=function(){console.error(\"THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js\")},t.LessDepth=2,t.LessEqualDepth=3,t.LessEqualStencilFunc=515,t.LessStencilFunc=513,t.Light=Ol,t.LightProbe=ic,t.Line=ga,t.Line3=sh,t.LineBasicMaterial=ha,t.LineCurve=no,t.LineCurve3=io,t.LineDashedMaterial=ll,t.LineLoop=_a,t.LinePieces=1,t.LineSegments=xa,t.LineStrip=0,t.LinearEncoding=X,t.LinearFilter=g,t.LinearInterpolant=pl,t.LinearMipMapLinearFilter=1008,t.LinearMipMapNearestFilter=1007,t.LinearMipmapLinearFilter=y,t.LinearMipmapNearestFilter=v,t.LinearToneMapping=1,t.Loader=Ll,t.LoaderUtils=sc,t.LoadingManager=El,t.LogLuvEncoding=3003,t.LoopOnce=2200,t.LoopPingPong=2202,t.LoopRepeat=2201,t.LuminanceAlphaFormat=1025,t.LuminanceFormat=1024,t.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},t.Material=We,t.MaterialLoader=rc,t.Math=gt,t.MathUtils=gt,t.Matrix3=yt,t.Matrix4=ae,t.MaxEquation=104,t.Mesh=Gn,t.MeshBasicMaterial=Ke,t.MeshDepthMaterial=cs,t.MeshDistanceMaterial=hs,t.MeshFaceMaterial=function(t){return console.warn(\"THREE.MeshFaceMaterial has been removed. Use an Array instead.\"),t},t.MeshLambertMaterial=al,t.MeshMatcapMaterial=ol,t.MeshNormalMaterial=sl,t.MeshPhongMaterial=il,t.MeshPhysicalMaterial=nl,t.MeshStandardMaterial=el,t.MeshToonMaterial=rl,t.MinEquation=103,t.MirroredRepeatWrapping=d,t.MixOperation=1,t.MultiMaterial=function(t=[]){return console.warn(\"THREE.MultiMaterial has been removed. Use an Array instead.\"),t.isMultiMaterial=!0,t.materials=t,t.clone=function(){return t.slice()},t},t.MultiplyBlending=4,t.MultiplyOperation=0,t.NearestFilter=p,t.NearestMipMapLinearFilter=1005,t.NearestMipMapNearestFilter=1004,t.NearestMipmapLinearFilter=f,t.NearestMipmapNearestFilter=m,t.NeverDepth=0,t.NeverStencilFunc=512,t.NoBlending=0,t.NoColors=0,t.NoToneMapping=0,t.NormalAnimationBlendMode=j,t.NormalBlending=1,t.NotEqualDepth=7,t.NotEqualStencilFunc=517,t.NumberKeyframeTrack=yl,t.Object3D=Pe,t.ObjectLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=\"\"===this.path?sc.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new Cl(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,(function(n){let s=null;try{s=JSON.parse(n)}catch(e){return void 0!==i&&i(e),void console.error(\"THREE:ObjectLoader: Can't parse \"+t+\".\",e.message)}const a=s.metadata;void 0!==a&&void 0!==a.type&&\"geometry\"!==a.type.toLowerCase()?r.parse(s,e):console.error(\"THREE.ObjectLoader: Can't load \"+t)}),n,i)}async loadAsync(t,e){const n=\"\"===this.path?sc.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||n;const i=new Cl(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials);const r=await i.loadAsync(t,e),s=JSON.parse(r),a=s.metadata;if(void 0===a||void 0===a.type||\"geometry\"===a.type.toLowerCase())throw new Error(\"THREE.ObjectLoader: Can't load \"+t);return await this.parseAsync(s)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),r=this.parseGeometries(t.geometries,i),s=this.parseImages(t.images,(function(){void 0!==e&&e(l)})),a=this.parseTextures(t.textures,s),o=this.parseMaterials(t.materials,a),l=this.parseObject(t.object,r,o,a,n),c=this.parseSkeletons(t.skeletons,l);if(this.bindSkeletons(l,c),void 0!==e){let t=!1;for(const e in s)if(s[e]instanceof HTMLImageElement){t=!0;break}!1===t&&e(l)}return l}async parseAsync(t){const e=this.parseAnimations(t.animations),n=this.parseShapes(t.shapes),i=this.parseGeometries(t.geometries,n),r=await this.parseImagesAsync(t.images),s=this.parseTextures(t.textures,r),a=this.parseMaterials(t.materials,s),o=this.parseObject(t.object,i,a,s,e),l=this.parseSkeletons(t.skeletons,o);return this.bindSkeletons(o,l),o}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new Fl).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse((function(t){t.isBone&&(i[t.uuid]=t)})),void 0!==t)for(let e=0,r=t.length;e<r;e++){const r=(new ra).fromJSON(t[e],i);n[r.uuid]=r}return n}parseGeometries(t,e){const n={};if(void 0!==t){const i=new lc;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case\"BufferGeometry\":case\"InstancedBufferGeometry\":s=i.parse(a);break;case\"Geometry\":console.error(\"THREE.ObjectLoader: The legacy Geometry type is no longer supported.\");break;default:a.type in Ko?s=Ko[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${a.type}\"`)}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),!0===s.isBufferGeometry&&void 0!==a.userData&&(s.userData=a.userData),n[a.uuid]=s}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const r=new rc;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];if(\"MultiMaterial\"===s.type){const t=[];for(let e=0;e<s.materials.length;e++){const i=s.materials[e];void 0===n[i.uuid]&&(n[i.uuid]=r.parse(i)),t.push(n[i.uuid])}i[s.uuid]=t}else void 0===n[s.uuid]&&(n[s.uuid]=r.parse(s)),i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=t[n],r=wl.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this,i={};let r;function s(t){if(\"string\"==typeof t){const e=t;return function(t){return n.manager.itemStart(t),r.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t),n.manager.itemEnd(t)}))}(/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:fn(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new El(e);r=new Pl(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e],r=n.url;if(Array.isArray(r)){i[n.uuid]=[];for(let t=0,e=r.length;t<e;t++){const e=s(r[t]);null!==e&&(e instanceof HTMLImageElement?i[n.uuid].push(e):i[n.uuid].push(new ea(e.data,e.width,e.height)))}}else{const t=s(n.url);null!==t&&(i[n.uuid]=t)}}}return i}async parseImagesAsync(t){const e=this,n={};let i;async function r(t){if(\"string\"==typeof t){const n=t,r=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:fn(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){i=new Pl(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e],s=i.url;if(Array.isArray(s)){n[i.uuid]=[];for(let t=0,e=s.length;t<e;t++){const e=s[t],a=await r(e);null!==a&&(a instanceof HTMLImageElement?n[i.uuid].push(a):n[i.uuid].push(new ea(a.data,a.width,a.height)))}}else{const t=await r(i.url);null!==t&&(n[i.uuid]=t)}}}return n}parseTextures(t,e){function n(t,e){return\"number\"==typeof t?t:(console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\",t),e[t])}const i={};if(void 0!==t)for(let r=0,s=t.length;r<s;r++){const s=t[r];let a;void 0===s.image&&console.warn('THREE.ObjectLoader: No \"image\" specified for',s.uuid),void 0===e[s.image]&&console.warn(\"THREE.ObjectLoader: Undefined image\",s.image);const o=e[s.image];Array.isArray(o)?(a=new Kn(o),6===o.length&&(a.needsUpdate=!0)):(a=o&&o.data?new ea(o.data,o.width,o.height):new Mt(o),o&&(a.needsUpdate=!0)),a.uuid=s.uuid,void 0!==s.name&&(a.name=s.name),void 0!==s.mapping&&(a.mapping=n(s.mapping,cc)),void 0!==s.offset&&a.offset.fromArray(s.offset),void 0!==s.repeat&&a.repeat.fromArray(s.repeat),void 0!==s.center&&a.center.fromArray(s.center),void 0!==s.rotation&&(a.rotation=s.rotation),void 0!==s.wrap&&(a.wrapS=n(s.wrap[0],hc),a.wrapT=n(s.wrap[1],hc)),void 0!==s.format&&(a.format=s.format),void 0!==s.type&&(a.type=s.type),void 0!==s.encoding&&(a.encoding=s.encoding),void 0!==s.minFilter&&(a.minFilter=n(s.minFilter,uc)),void 0!==s.magFilter&&(a.magFilter=n(s.magFilter,uc)),void 0!==s.anisotropy&&(a.anisotropy=s.anisotropy),void 0!==s.flipY&&(a.flipY=s.flipY),void 0!==s.premultiplyAlpha&&(a.premultiplyAlpha=s.premultiplyAlpha),void 0!==s.unpackAlignment&&(a.unpackAlignment=s.unpackAlignment),i[s.uuid]=a}return i}parseObject(t,e,n,i,r){let s,a,o;function l(t){return void 0===e[t]&&console.warn(\"THREE.ObjectLoader: Undefined geometry\",t),e[t]}function c(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];void 0===n[r]&&console.warn(\"THREE.ObjectLoader: Undefined material\",r),e.push(n[r])}return e}return void 0===n[t]&&console.warn(\"THREE.ObjectLoader: Undefined material\",t),n[t]}}function h(t){return void 0===i[t]&&console.warn(\"THREE.ObjectLoader: Undefined texture\",t),i[t]}switch(t.type){case\"Scene\":s=new Ts,void 0!==t.background&&(Number.isInteger(t.background)?s.background=new Qe(t.background):s.background=h(t.background)),void 0!==t.environment&&(s.environment=h(t.environment)),void 0!==t.fog&&(\"Fog\"===t.fog.type?s.fog=new Ss(t.fog.color,t.fog.near,t.fog.far):\"FogExp2\"===t.fog.type&&(s.fog=new ws(t.fog.color,t.fog.density)));break;case\"PerspectiveCamera\":s=new Jn(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(s.focus=t.focus),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.filmGauge&&(s.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(s.filmOffset=t.filmOffset),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case\"OrthographicCamera\":s=new Ql(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case\"AmbientLight\":s=new tc(t.color,t.intensity);break;case\"DirectionalLight\":s=new $l(t.color,t.intensity);break;case\"PointLight\":s=new Zl(t.color,t.intensity,t.distance,t.decay);break;case\"RectAreaLight\":s=new ec(t.color,t.intensity,t.width,t.height);break;case\"SpotLight\":s=new jl(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case\"HemisphereLight\":s=new Hl(t.color,t.groundColor,t.intensity);break;case\"LightProbe\":s=(new ic).fromJSON(t);break;case\"SkinnedMesh\":a=l(t.geometry),o=c(t.material),s=new $s(a,o),void 0!==t.bindMode&&(s.bindMode=t.bindMode),void 0!==t.bindMatrix&&s.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(s.skeleton=t.skeleton);break;case\"Mesh\":a=l(t.geometry),o=c(t.material),s=new Gn(a,o);break;case\"InstancedMesh\":a=l(t.geometry),o=c(t.material);const e=t.count,n=t.instanceMatrix,i=t.instanceColor;s=new ca(a,o,e),s.instanceMatrix=new en(new Float32Array(n.array),16),void 0!==i&&(s.instanceColor=new en(new Float32Array(i.array),i.itemSize));break;case\"LOD\":s=new Xs;break;case\"Line\":s=new ga(l(t.geometry),c(t.material));break;case\"LineLoop\":s=new _a(l(t.geometry),c(t.material));break;case\"LineSegments\":s=new xa(l(t.geometry),c(t.material));break;case\"PointCloud\":case\"Points\":s=new Ea(l(t.geometry),c(t.material));break;case\"Sprite\":s=new Vs(c(t.material));break;case\"Group\":s=new gs;break;case\"Bone\":s=new ta;break;default:s=new Pe}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(s.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(s.matrixAutoUpdate=t.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(s.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.frustumCulled&&(s.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(s.renderOrder=t.renderOrder),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.layers&&(s.layers.mask=t.layers),void 0!==t.children){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if(\"LOD\"===t.type){void 0!==t.autoUpdate&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=s.getObjectByProperty(\"uuid\",n.object);void 0!==i&&s.addLevel(i,n.distance)}}return s}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse((function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\",t.skeleton):t.bind(n,t.bindMatrix)}}))}setTexturePath(t){return console.warn(\"THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().\"),this.setResourcePath(t)}},t.ObjectSpaceNormalMap=1,t.OctahedronBufferGeometry=Go,t.OctahedronGeometry=Go,t.OneFactor=201,t.OneMinusDstAlphaFactor=207,t.OneMinusDstColorFactor=209,t.OneMinusSrcAlphaFactor=205,t.OneMinusSrcColorFactor=203,t.OrthographicCamera=Ql,t.PCFShadowMap=1,t.PCFSoftShadowMap=2,t.PMREMGenerator=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._blurMaterial=function(t){const e=new Float32Array(t),n=new Rt(0,1,0);return new tl({name:\"SphericalGaussianBlur\",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n},inputEncoding:{value:Bh[3e3]},outputEncoding:{value:Bh[3e3]}},vertexShader:tu(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t${eu()}\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include <cube_uv_reflection_fragment>\\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:0,depthTest:!1,depthWrite:!1})}(Nh),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Vh=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=$h(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=Kh(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t<Hh.length;t++)Hh[t].dispose()}_cleanup(t){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(Vh),t.scissorTest=!1,Qh(t,0,0,t.width,t.height)}_fromTexture(t){Vh=this._renderer.getRenderTarget();const e=this._allocateTargets(t);return this._textureToCubeUV(t,e),this._applyPMREM(e),this._cleanup(e),e}_allocateTargets(t){const e={magFilter:p,minFilter:p,generateMipmaps:!1,type:x,format:1023,encoding:Yh(t)?t.encoding:Z,depthBuffer:!1},n=Zh(e);return n.depthBuffer=!t,this._pingPongRenderTarget=Zh(e),n}_compileMaterial(t){const e=new Gn(Hh[0],t);this._renderer.compile(e,Oh)}_sceneToCubeUV(t,e,n,i){const r=new Jn(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.outputEncoding,h=o.toneMapping;o.getClearColor(kh),o.toneMapping=0,o.outputEncoding=X,o.autoClear=!1;let u=!1;const d=t.background;if(d){if(d.isColor){zh.color.copy(d).convertSRGBToLinear(),t.background=null;const e=Xh(zh.color);zh.opacity=e,u=!0}}else{zh.color.copy(kh).convertSRGBToLinear();const t=Xh(zh.color);zh.opacity=t,u=!0}for(let e=0;e<6;e++){const n=e%3;0==n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1==n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e])),Qh(i,n*Ph,e>2?Ph:0,Ph,Ph),o.setRenderTarget(i),u&&o.render(Fh,r),o.render(t,r)}o.toneMapping=h,o.outputEncoding=c,o.autoClear=l}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=$h()):null==this._equirectShader&&(this._equirectShader=Kh());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,r=new Gn(Hh[0],i),s=i.uniforms;s.envMap.value=t,t.isCubeTexture||s.texelSize.value.set(1/t.image.width,1/t.image.height),s.inputEncoding.value=Bh[t.encoding],s.outputEncoding.value=Bh[e.texture.encoding],Qh(e,0,0,3*Ph,2*Ph),n.setRenderTarget(e),n.render(r,Oh)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;e<Ih;e++){const n=Math.sqrt(Gh[e]*Gh[e]-Gh[e-1]*Gh[e-1]),i=qh[(e-1)%qh.length];this._blur(t,e-1,e,n,i)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,\"latitudinal\",r),this._halfBlur(s,t,n,n,i,\"longitudinal\",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer,l=this._blurMaterial;\"latitudinal\"!==s&&\"longitudinal\"!==s&&console.error(\"blur direction must be either latitudinal or longitudinal!\");const c=new Gn(Hh[i],l),h=l.uniforms,u=Uh[n]-1,d=isFinite(r)?Math.PI/(2*u):2*Math.PI/39,p=r/d,m=isFinite(r)?1+Math.floor(3*p):Nh;m>Nh&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;t<Nh;++t){const e=t/p,n=Math.exp(-e*e/2);f.push(n),0==t?g+=n:t<m&&(g+=2*n)}for(let t=0;t<f.length;t++)f[t]=f[t]/g;h.envMap.value=t.texture,h.samples.value=m,h.weights.value=f,h.latitudinal.value=\"latitudinal\"===s,a&&(h.poleAxis.value=a),h.dTheta.value=d,h.mipInt.value=8-n,h.inputEncoding.value=Bh[t.texture.encoding],h.outputEncoding.value=Bh[t.texture.encoding];const v=Uh[i];Qh(e,3*Math.max(0,Ph-2*v),(0===i?0:2*Ph)+2*v*(i>4?i-8+4:0),3*v,2*v),o.setRenderTarget(e),o.render(c,Oh)}},t.ParametricBufferGeometry=ko,t.ParametricGeometry=ko,t.Particle=function(t){return console.warn(\"THREE.Particle has been renamed to THREE.Sprite.\"),new Vs(t)},t.ParticleBasicMaterial=function(t){return console.warn(\"THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.\"),new ba(t)},t.ParticleSystem=function(t,e){return console.warn(\"THREE.ParticleSystem has been renamed to THREE.Points.\"),new Ea(t,e)},t.ParticleSystemMaterial=function(t){return console.warn(\"THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.\"),new ba(t)},t.Path=zl,t.PerspectiveCamera=Jn,t.Plane=ii,t.PlaneBufferGeometry=ci,t.PlaneGeometry=ci,t.PlaneHelper=class extends ga{constructor(t,e=1,n=16776960){const i=n,r=new wn;r.setAttribute(\"position\",new un([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),super(r,new ha({color:i,toneMapped:!1})),this.type=\"PlaneHelper\",this.plane=t,this.size=e;const s=new wn;s.setAttribute(\"position\",new un([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),s.computeBoundingSphere(),this.add(new Gn(s,new Ke({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){let e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),super.updateMatrixWorld(t)}},t.PointCloud=function(t,e){return console.warn(\"THREE.PointCloud has been renamed to THREE.Points.\"),new Ea(t,e)},t.PointCloudMaterial=function(t){return console.warn(\"THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.\"),new ba(t)},t.PointLight=Zl,t.PointLightHelper=class extends Gn{constructor(t,e,n){super(new jo(e,4,2),new Ke({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.light.updateMatrixWorld(),this.color=n,this.type=\"PointLightHelper\",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},t.Points=Ea,t.PointsMaterial=ba,t.PolarGridHelper=class extends xa{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new Qe(r),s=new Qe(s);const a=[],o=[];for(let n=0;n<=e;n++){const i=n/e*(2*Math.PI),l=Math.sin(i)*t,c=Math.cos(i)*t;a.push(0,0,0),a.push(l,0,c);const h=1&n?r:s;o.push(h.r,h.g,h.b),o.push(h.r,h.g,h.b)}for(let e=0;e<=n;e++){const l=1&e?r:s,c=t-t/n*e;for(let t=0;t<i;t++){let e=t/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c;a.push(n,0,r),o.push(l.r,l.g,l.b),e=(t+1)/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c,a.push(n,0,r),o.push(l.r,l.g,l.b)}}const l=new wn;l.setAttribute(\"position\",new un(a,3)),l.setAttribute(\"color\",new un(o,3));super(l,new ha({vertexColors:!0,toneMapped:!1})),this.type=\"PolarGridHelper\"}},t.PolyhedronBufferGeometry=Ba,t.PolyhedronGeometry=Ba,t.PositionalAudio=class extends Rc{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel=\"HRTF\",this.panner.connect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(Cc,Pc,Dc),Ic.set(0,0,1).applyQuaternion(Pc);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(Cc.x,t),e.positionY.linearRampToValueAtTime(Cc.y,t),e.positionZ.linearRampToValueAtTime(Cc.z,t),e.orientationX.linearRampToValueAtTime(Ic.x,t),e.orientationY.linearRampToValueAtTime(Ic.y,t),e.orientationZ.linearRampToValueAtTime(Ic.z,t)}else e.setPosition(Cc.x,Cc.y,Cc.z),e.setOrientation(Ic.x,Ic.y,Ic.z)}},t.PropertyBinding=qc,t.PropertyMixer=Bc,t.QuadraticBezierCurve=ro,t.QuadraticBezierCurve3=so,t.Quaternion=Lt,t.QuaternionKeyframeTrack=_l,t.QuaternionLinearInterpolant=xl,t.REVISION=e,t.RGBADepthPacking=3201,t.RGBAFormat=E,t.RGBAIntegerFormat=1033,t.RGBA_ASTC_10x10_Format=37819,t.RGBA_ASTC_10x5_Format=37816,t.RGBA_ASTC_10x6_Format=37817,t.RGBA_ASTC_10x8_Format=37818,t.RGBA_ASTC_12x10_Format=37820,t.RGBA_ASTC_12x12_Format=37821,t.RGBA_ASTC_4x4_Format=37808,t.RGBA_ASTC_5x4_Format=37809,t.RGBA_ASTC_5x5_Format=37810,t.RGBA_ASTC_6x5_Format=37811,t.RGBA_ASTC_6x6_Format=37812,t.RGBA_ASTC_8x5_Format=37813,t.RGBA_ASTC_8x6_Format=37814,t.RGBA_ASTC_8x8_Format=37815,t.RGBA_BPTC_Format=36492,t.RGBA_ETC2_EAC_Format=O,t.RGBA_PVRTC_2BPPV1_Format=z,t.RGBA_PVRTC_4BPPV1_Format=B,t.RGBA_S3TC_DXT1_Format=C,t.RGBA_S3TC_DXT3_Format=P,t.RGBA_S3TC_DXT5_Format=D,t.RGBDEncoding=$,t.RGBEEncoding=Z,t.RGBEFormat=1023,t.RGBFormat=T,t.RGBIntegerFormat=1032,t.RGBM16Encoding=K,t.RGBM7Encoding=Q,t.RGB_ETC1_Format=36196,t.RGB_ETC2_Format=F,t.RGB_PVRTC_2BPPV1_Format=N,t.RGB_PVRTC_4BPPV1_Format=I,t.RGB_S3TC_DXT1_Format=R,t.RGFormat=1030,t.RGIntegerFormat=1031,t.RawShaderMaterial=tl,t.Ray=se,t.Raycaster=class{constructor(t,e,n=0,i=1/0){this.ray=new se(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new ve,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error(\"THREE.Raycaster: Unsupported camera type: \"+e.type)}intersectObject(t,e=!1,n=[]){return th(t,this,n,e),n.sort($c),n}intersectObjects(t,e=!1,n=[]){for(let i=0,r=t.length;i<r;i++)th(t[i],this,n,e);return n.sort($c),n}},t.RectAreaLight=ec,t.RedFormat=1028,t.RedIntegerFormat=1029,t.ReinhardToneMapping=2,t.RepeatWrapping=h,t.ReplaceStencilOp=7681,t.ReverseSubtractEquation=102,t.RingBufferGeometry=Vo,t.RingGeometry=Vo,t.SRGB8_ALPHA8_ASTC_10x10_Format=37851,t.SRGB8_ALPHA8_ASTC_10x5_Format=37848,t.SRGB8_ALPHA8_ASTC_10x6_Format=37849,t.SRGB8_ALPHA8_ASTC_10x8_Format=37850,t.SRGB8_ALPHA8_ASTC_12x10_Format=37852,t.SRGB8_ALPHA8_ASTC_12x12_Format=37853,t.SRGB8_ALPHA8_ASTC_4x4_Format=37840,t.SRGB8_ALPHA8_ASTC_5x4_Format=37841,t.SRGB8_ALPHA8_ASTC_5x5_Format=37842,t.SRGB8_ALPHA8_ASTC_6x5_Format=37843,t.SRGB8_ALPHA8_ASTC_6x6_Format=37844,t.SRGB8_ALPHA8_ASTC_8x5_Format=37845,t.SRGB8_ALPHA8_ASTC_8x6_Format=37846,t.SRGB8_ALPHA8_ASTC_8x8_Format=37847,t.Scene=Ts,t.SceneUtils=nu,t.ShaderChunk=hi,t.ShaderLib=di,t.ShaderMaterial=Xn,t.ShadowMaterial=$o,t.Shape=Fl,t.ShapeBufferGeometry=Wo,t.ShapeGeometry=Wo,t.ShapePath=pc,t.ShapeUtils=No,t.ShortType=1011,t.Skeleton=ra,t.SkeletonHelper=uh,t.SkinnedMesh=$s,t.SmoothShading=2,t.Sphere=Qt,t.SphereBufferGeometry=jo,t.SphereGeometry=jo,t.Spherical=class{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(ht(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}},t.SphericalHarmonics3=nc,t.SplineCurve=ao,t.SpotLight=jl,t.SpotLightHelper=class extends Pe{constructor(t,e){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;const n=new wn,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t<n;t++,e++){const r=t/n*Math.PI*2,s=e/n*Math.PI*2;i.push(Math.cos(r),Math.sin(r),1,Math.cos(s),Math.sin(s),1)}n.setAttribute(\"position\",new un(i,3));const r=new ha({fog:!1,toneMapped:!1});this.cone=new xa(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();const t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),oh.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(oh),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}},t.Sprite=Vs,t.SpriteMaterial=Rs,t.SrcAlphaFactor=204,t.SrcAlphaSaturateFactor=210,t.SrcColorFactor=202,t.StaticCopyUsage=35046,t.StaticDrawUsage=et,t.StaticReadUsage=35045,t.StereoCamera=class{constructor(){this.type=\"StereoCamera\",this.aspect=1,this.eyeSep=.064,this.cameraL=new Jn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Jn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep;const n=t.projectionMatrix.clone(),i=e.eyeSep/2,r=i*e.near/e.focus,s=e.near*Math.tan(ot*e.fov*.5)/e.zoom;let a,o;Mc.elements[12]=-i,bc.elements[12]=i,a=-s*e.aspect+r,o=s*e.aspect+r,n.elements[0]=2*e.near/(o-a),n.elements[8]=(o+a)/(o-a),this.cameraL.projectionMatrix.copy(n),a=-s*e.aspect-r,o=s*e.aspect-r,n.elements[0]=2*e.near/(o-a),n.elements[8]=(o+a)/(o-a),this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(Mc),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(bc)}},t.StreamCopyUsage=35042,t.StreamDrawUsage=35040,t.StreamReadUsage=35041,t.StringKeyframeTrack=bl,t.SubtractEquation=101,t.SubtractiveBlending=3,t.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},t.TangentSpaceNormalMap=0,t.TetrahedronBufferGeometry=qo,t.TetrahedronGeometry=qo,t.TextBufferGeometry=Xo,t.TextGeometry=Xo,t.Texture=Mt,t.TextureLoader=Nl,t.TorusBufferGeometry=Yo,t.TorusGeometry=Yo,t.TorusKnotBufferGeometry=Jo,t.TorusKnotGeometry=Jo,t.Triangle=ke,t.TriangleFanDrawMode=2,t.TriangleStripDrawMode=1,t.TrianglesDrawMode=0,t.TubeBufferGeometry=Zo,t.TubeGeometry=Zo,t.UVMapping=i,t.Uint16Attribute=function(t,e){return console.warn(\"THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.\"),new on(t,e)},t.Uint16BufferAttribute=on,t.Uint32Attribute=function(t,e){return console.warn(\"THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.\"),new cn(t,e)},t.Uint32BufferAttribute=cn,t.Uint8Attribute=function(t,e){return console.warn(\"THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.\"),new rn(t,e)},t.Uint8BufferAttribute=rn,t.Uint8ClampedAttribute=function(t,e){return console.warn(\"THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.\"),new sn(t,e)},t.Uint8ClampedBufferAttribute=sn,t.Uniform=Zc,t.UniformsLib=ui,t.UniformsUtils=qn,t.UnsignedByteType=x,t.UnsignedInt248Type=S,t.UnsignedIntType=b,t.UnsignedShort4444Type=1017,t.UnsignedShort5551Type=1018,t.UnsignedShort565Type=1019,t.UnsignedShortType=_,t.VSMShadowMap=3,t.Vector2=vt,t.Vector3=Rt,t.Vector4=St,t.VectorKeyframeTrack=Ml,t.Vertex=function(t,e,n){return console.warn(\"THREE.Vertex has been removed. Use THREE.Vector3 instead.\"),new Rt(t,e,n)},t.VertexColors=2,t.VideoTexture=La,t.WebGL1Renderer=Ms,t.WebGLCubeRenderTarget=$n,t.WebGLMultipleRenderTargets=Et,t.WebGLMultisampleRenderTarget=At,t.WebGLRenderTarget=Tt,t.WebGLRenderTargetCube=function(t,e,n){return console.warn(\"THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).\"),new $n(t,n)},t.WebGLRenderer=bs,t.WebGLUtils=ms,t.WireframeGeometry=Qo,t.WireframeHelper=function(t,e){return console.warn(\"THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.\"),new xa(new Qo(t.geometry),new ha({color:void 0!==e?e:16777215}))},t.WrapAroundEnding=W,t.XHRLoader=function(t){return console.warn(\"THREE.XHRLoader has been renamed to THREE.FileLoader.\"),new Cl(t)},t.ZeroCurvatureEnding=k,t.ZeroFactor=200,t.ZeroSlopeEnding=V,t.ZeroStencilOp=0,t.sRGBEncoding=Y,Object.defineProperty(t,\"__esModule\",{value:!0})}\n",
       "//));\n",
       "\n",
       "  );\n",
       "}\n",
       "\n",
       "    // Project site:     https://github.com/vasturiano/3d-force-graph\n",
       "// Code source:      https://unpkg.com/3d-force-graph@1.70.5/dist/3d-force-graph.min.js - accessed on 19.11.2021\n",
       "// Original license: MIT\n",
       "// Code changes:     Commented out outermost functions\n",
       "//                   Wrapped all into a require define function\n",
       "\n",
       "if(!require.defined(\"gravis-3d-force-graph\")){\n",
       "  define(\"gravis-3d-force-graph\", [\"exports\"],\n",
       "\n",
       "// Version 1.70.5 3d-force-graph - https://github.com/vasturiano/3d-force-graph\n",
       "// !function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\n",
       "// \"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).ForceGraph3D=e()}(this,(\n",
       "function(){\"use strict\";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function e(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?t(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||function(t,e){if(!t)return;if(\"string\"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(\".graph-info-msg {\\n  top: 50%;\\n  width: 100%;\\n  text-align: center;\\n  color: lavender;\\n  opacity: 0.7;\\n  font-size: 22px;\\n  position: absolute;\\n  font-family: Sans-serif;\\n}\\n\\n.scene-container .clickable {\\n  cursor: pointer;\\n}\\n\\n.scene-container .grabbable {\\n  cursor: move;\\n  cursor: grab;\\n  cursor: -moz-grab;\\n  cursor: -webkit-grab;\\n}\\n\\n.scene-container .grabbable:active {\\n  cursor: grabbing;\\n  cursor: -moz-grabbing;\\n  cursor: -webkit-grabbing;\\n}\");const o={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},a=0,s=1,l=2,c=3,h=100,u=1e3,d=1001,p=1002,f=1003,m=1006,g=1008,v=1009,y=1012,x=1014,_=1015,b=1016,w=1020,M=1022,S=1023,E=1026,T=1027,A=2300,L=2301,C=2302,P=2400,R=2401,D=2402,I=2500,N=3e3,O=7680,k=35044,z=35048,B=\"300 es\";class F{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,r=n.length;e<r;e++)n[e].call(this,t);t.target=null}}}const U=[];for(let t=0;t<256;t++)U[t]=(t<16?\"0\":\"\")+t.toString(16);const H=Math.PI/180,V=180/Math.PI;function G(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return(U[255&t]+U[t>>8&255]+U[t>>16&255]+U[t>>24&255]+\"-\"+U[255&e]+U[e>>8&255]+\"-\"+U[e>>16&15|64]+U[e>>24&255]+\"-\"+U[63&n|128]+U[n>>8&255]+\"-\"+U[n>>16&255]+U[n>>24&255]+U[255&r]+U[r>>8&255]+U[r>>16&255]+U[r>>24&255]).toUpperCase()}function j(t,e,n){return Math.max(e,Math.min(n,t))}function W(t,e,n){return(1-n)*t+n*e}function q(t){return 0==(t&t-1)&&0!==t}function X(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}class Y{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6],this.y=r[1]*e+r[4]*n+r[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),r=Math.sin(e),i=this.x-t.x,o=this.y-t.y;return this.x=i*n-o*r+t.x,this.y=i*r+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}Y.prototype.isVector2=!0;class Z{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,r,i,o,a,s,l){const c=this.elements;return c[0]=t,c[1]=r,c[2]=a,c[3]=e,c[4]=i,c[5]=s,c[6]=n,c[7]=o,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,r=e.elements,i=this.elements,o=n[0],a=n[3],s=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],f=r[0],m=r[3],g=r[6],v=r[1],y=r[4],x=r[7],_=r[2],b=r[5],w=r[8];return i[0]=o*f+a*v+s*_,i[3]=o*m+a*y+s*b,i[6]=o*g+a*x+s*w,i[1]=l*f+c*v+h*_,i[4]=l*m+c*y+h*b,i[7]=l*g+c*x+h*w,i[2]=u*f+d*v+p*_,i[5]=u*m+d*y+p*b,i[8]=u*g+d*x+p*w,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8];return e*o*c-e*a*l-n*i*c+n*a*s+r*i*l-r*o*s}invert(){const t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8],h=c*o-a*l,u=a*s-c*i,d=l*i-o*s,p=e*h+n*u+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=h*f,t[1]=(r*l-c*n)*f,t[2]=(a*n-r*o)*f,t[3]=u*f,t[4]=(c*e-r*s)*f,t[5]=(r*i-a*e)*f,t[6]=d*f,t[7]=(n*s-l*e)*f,t[8]=(o*e-n*i)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,r,i,o,a){const s=Math.cos(i),l=Math.sin(i);return this.set(n*s,n*l,-n*(s*o+l*a)+o+t,-r*l,r*s,-r*(-l*o+s*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),r=this.elements,i=r[0],o=r[3],a=r[6],s=r[1],l=r[4],c=r[7];return r[0]=e*i+n*s,r[3]=e*o+n*l,r[6]=e*a+n*c,r[1]=-n*i+e*s,r[4]=-n*o+e*l,r[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let J;Z.prototype.isMatrix3=!0;class ${static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\"undefined\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===J&&(J=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")),J.width=t.width,J.height=t.height;const n=J.getContext(\"2d\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=J}return e.width>2048||e.height>2048?(console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",t),e.toDataURL(\"image/jpeg\",.6)):e.toDataURL(\"image/png\")}}let Q=0;class K extends F{constructor(t=K.DEFAULT_IMAGE,e=K.DEFAULT_MAPPING,n=1001,r=1001,i=1006,o=1008,a=1023,s=1009,l=1,c=3e3){super(),Object.defineProperty(this,\"id\",{value:Q++}),this.uuid=G(),this.name=\"\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=r,this.magFilter=i,this.minFilter=o,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=s,this.offset=new Y(0,0),this.repeat=new Y(1,1),this.center=new Y(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Z,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\"string\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const r=this.image;if(void 0===r.uuid&&(r.uuid=G()),!e&&void 0===t.images[r.uuid]){let e;if(Array.isArray(r)){e=[];for(let t=0,n=r.length;t<n;t++)r[t].isDataTexture?e.push(tt(r[t].image)):e.push(tt(r[t]))}else e=tt(r);t.images[r.uuid]={uuid:r.uuid,url:e}}n.image=r.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case u:t.x=t.x-Math.floor(t.x);break;case d:t.x=t.x<0?0:1;break;case p:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case u:t.y=t.y-Math.floor(t.y);break;case d:t.y=t.y<0?0:1;break;case p:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function tt(t){return\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap?$.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\"THREE.Texture: Unable to serialize Texture.\"),{})}K.DEFAULT_IMAGE=void 0,K.DEFAULT_MAPPING=300,K.prototype.isTexture=!0;class et{constructor(t=0,e=0,n=0,r=1){this.x=t,this.y=e,this.z=n,this.w=r}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,r){return this.x=t,this.y=e,this.z=n,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,r=this.z,i=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*r+o[12]*i,this.y=o[1]*e+o[5]*n+o[9]*r+o[13]*i,this.z=o[2]*e+o[6]*n+o[10]*r+o[14]*i,this.w=o[3]*e+o[7]*n+o[11]*r+o[15]*i,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,r,i;const o=.01,a=.1,s=t.elements,l=s[0],c=s[4],h=s[8],u=s[1],d=s[5],p=s[9],f=s[2],m=s[6],g=s[10];if(Math.abs(c-u)<o&&Math.abs(h-f)<o&&Math.abs(p-m)<o){if(Math.abs(c+u)<a&&Math.abs(h+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,s=(d+1)/2,v=(g+1)/2,y=(c+u)/4,x=(h+f)/4,_=(p+m)/4;return t>s&&t>v?t<o?(n=0,r=.707106781,i=.707106781):(n=Math.sqrt(t),r=y/n,i=x/n):s>v?s<o?(n=.707106781,r=0,i=.707106781):(r=Math.sqrt(s),n=y/r,i=_/r):v<o?(n=.707106781,r=.707106781,i=0):(i=Math.sqrt(v),n=x/i,r=_/i),this.set(n,r,i,e),this}let v=Math.sqrt((m-p)*(m-p)+(h-f)*(h-f)+(u-c)*(u-c));return Math.abs(v)<.001&&(v=1),this.x=(m-p)/v,this.y=(h-f)/v,this.z=(u-c)/v,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}et.prototype.isVector4=!0;class nt extends F{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new et(0,0,t,e),this.scissorTest=!1,this.viewport=new et(0,0,t,e),this.texture=new K(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:m,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}nt.prototype.isWebGLRenderTarget=!0;(class extends nt{constructor(t,e,n){super(t,e);const r=this.texture;this.texture=[];for(let t=0;t<n;t++)this.texture[t]=r.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let r=0,i=this.texture.length;r<i;r++)this.texture[r].image.width=t,this.texture[r].image.height=e,this.texture[r].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}).prototype.isWebGLMultipleRenderTargets=!0;class rt extends nt{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}rt.prototype.isWebGLMultisampleRenderTarget=!0;class it{constructor(t=0,e=0,n=0,r=1){this._x=t,this._y=e,this._z=n,this._w=r}static slerp(t,e,n,r){return console.warn(\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\"),n.slerpQuaternions(t,e,r)}static slerpFlat(t,e,n,r,i,o,a){let s=n[r+0],l=n[r+1],c=n[r+2],h=n[r+3];const u=i[o+0],d=i[o+1],p=i[o+2],f=i[o+3];if(0===a)return t[e+0]=s,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=f);if(h!==f||s!==u||l!==d||c!==p){let t=1-a;const e=s*u+l*d+c*p+h*f,n=e>=0?1:-1,r=1-e*e;if(r>Number.EPSILON){const i=Math.sqrt(r),o=Math.atan2(i,e*n);t=Math.sin(t*o)/i,a=Math.sin(a*o)/i}const i=a*n;if(s=s*t+u*i,l=l*t+d*i,c=c*t+p*i,h=h*t+f*i,t===1-a){const t=1/Math.sqrt(s*s+l*l+c*c+h*h);s*=t,l*=t,c*=t,h*=t}}t[e]=s,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,r,i,o){const a=n[r],s=n[r+1],l=n[r+2],c=n[r+3],h=i[o],u=i[o+1],d=i[o+2],p=i[o+3];return t[e]=a*p+c*h+s*d-l*u,t[e+1]=s*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-s*h,t[e+3]=c*p-a*h-s*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");const n=t._x,r=t._y,i=t._z,o=t._order,a=Math.cos,s=Math.sin,l=a(n/2),c=a(r/2),h=a(i/2),u=s(n/2),d=s(r/2),p=s(i/2);switch(o){case\"XYZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"YXZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"ZXY\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"ZYX\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"YZX\":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case\"XZY\":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+o)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],r=e[4],i=e[8],o=e[1],a=e[5],s=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-s)*t,this._y=(i-l)*t,this._z=(o-r)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-s)/t,this._x=.25*t,this._y=(r+o)/t,this._z=(i+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(i-l)/t,this._x=(r+o)/t,this._y=.25*t,this._z=(s+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(o-r)/t,this._x=(i+l)/t,this._y=(s+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(j(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const r=Math.min(1,e/n);return this.slerp(t,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,r=t._y,i=t._z,o=t._w,a=e._x,s=e._y,l=e._z,c=e._w;return this._x=n*c+o*a+r*l-i*s,this._y=r*c+o*s+i*a-n*l,this._z=i*c+o*l+n*s-r*a,this._w=o*c-n*a-r*s-i*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,r=this._y,i=this._z,o=this._w;let a=o*t._w+n*t._x+r*t._y+i*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=r,this._z=i,this;const s=1-a*a;if(s<=Number.EPSILON){const t=1-e;return this._w=t*o+e*this._w,this._x=t*n+e*this._x,this._y=t*r+e*this._y,this._z=t*i+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(s),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=o*h+this._w*u,this._x=n*h+this._x*u,this._y=r*h+this._y*u,this._z=i*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}it.prototype.isQuaternion=!0;class ot{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),this.applyQuaternion(st.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(st.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,r=this.z,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6]*r,this.y=i[1]*e+i[4]*n+i[7]*r,this.z=i[2]*e+i[5]*n+i[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,r=this.z,i=t.elements,o=1/(i[3]*e+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*e+i[4]*n+i[8]*r+i[12])*o,this.y=(i[1]*e+i[5]*n+i[9]*r+i[13])*o,this.z=(i[2]*e+i[6]*n+i[10]*r+i[14])*o,this}applyQuaternion(t){const e=this.x,n=this.y,r=this.z,i=t.x,o=t.y,a=t.z,s=t.w,l=s*e+o*r-a*n,c=s*n+a*e-i*r,h=s*r+i*n-o*e,u=-i*e-o*n-a*r;return this.x=l*s+u*-i+c*-a-h*-o,this.y=c*s+u*-o+h*-i-l*-a,this.z=h*s+u*-a+l*-o-c*-i,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,r=this.z,i=t.elements;return this.x=i[0]*e+i[4]*n+i[8]*r,this.y=i[1]*e+i[5]*n+i[9]*r,this.z=i[2]*e+i[6]*n+i[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,r=t.y,i=t.z,o=e.x,a=e.y,s=e.z;return this.x=r*s-i*a,this.y=i*o-n*s,this.z=n*a-r*o,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return at.copy(this).projectOnVector(t),this.sub(at)}reflect(t){return this.sub(at.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(j(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const r=Math.sin(e)*t;return this.x=r*Math.sin(n),this.y=Math.cos(e)*t,this.z=r*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}ot.prototype.isVector3=!0;const at=new ot,st=new it;class lt{constructor(t=new ot(1/0,1/0,1/0),e=new ot(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,a=-1/0;for(let s=0,l=t.length;s<l;s+=3){const l=t[s],c=t[s+1],h=t[s+2];l<e&&(e=l),c<n&&(n=c),h<r&&(r=h),l>i&&(i=l),c>o&&(o=c),h>a&&(a=h)}return this.min.set(e,n,r),this.max.set(i,o,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,a=-1/0;for(let s=0,l=t.count;s<l;s++){const l=t.getX(s),c=t.getY(s),h=t.getZ(s);l<e&&(e=l),c<n&&(n=c),h<r&&(r=h),l>i&&(i=l),c>o&&(o=c),h>a&&(a=h)}return this.min.set(e,n,r),this.max.set(i,o,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=ht.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),ut.copy(e.boundingBox),ut.applyMatrix4(t.matrixWorld),this.union(ut));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,ht),ht.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(yt),xt.subVectors(this.max,yt),dt.subVectors(t.a,yt),pt.subVectors(t.b,yt),ft.subVectors(t.c,yt),mt.subVectors(pt,dt),gt.subVectors(ft,pt),vt.subVectors(dt,ft);let e=[0,-mt.z,mt.y,0,-gt.z,gt.y,0,-vt.z,vt.y,mt.z,0,-mt.x,gt.z,0,-gt.x,vt.z,0,-vt.x,-mt.y,mt.x,0,-gt.y,gt.x,0,-vt.y,vt.x,0];return!!wt(e,dt,pt,ft,xt)&&(e=[1,0,0,0,1,0,0,0,1],!!wt(e,dt,pt,ft,xt)&&(_t.crossVectors(mt,gt),e=[_t.x,_t.y,_t.z],wt(e,dt,pt,ft,xt)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return ht.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(ht).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ct[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ct[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ct[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ct[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ct[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ct[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ct[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ct[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ct)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}lt.prototype.isBox3=!0;const ct=[new ot,new ot,new ot,new ot,new ot,new ot,new ot,new ot],ht=new ot,ut=new lt,dt=new ot,pt=new ot,ft=new ot,mt=new ot,gt=new ot,vt=new ot,yt=new ot,xt=new ot,_t=new ot,bt=new ot;function wt(t,e,n,r,i){for(let o=0,a=t.length-3;o<=a;o+=3){bt.fromArray(t,o);const a=i.x*Math.abs(bt.x)+i.y*Math.abs(bt.y)+i.z*Math.abs(bt.z),s=e.dot(bt),l=n.dot(bt),c=r.dot(bt);if(Math.max(-Math.max(s,l,c),Math.min(s,l,c))>a)return!1}return!0}const Mt=new lt,St=new ot,Et=new ot,Tt=new ot;class At{constructor(t=new ot,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Mt.setFromPoints(t).getCenter(n);let r=0;for(let e=0,i=t.length;e<i;e++)r=Math.max(r,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(r),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Tt.subVectors(t,this.center);const e=Tt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Tt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Et.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(St.copy(t.center).add(Et)),this.expandByPoint(St.copy(t.center).sub(Et)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Lt=new ot,Ct=new ot,Pt=new ot,Rt=new ot,Dt=new ot,It=new ot,Nt=new ot;class Ot{constructor(t=new ot,e=new ot(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Lt)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Lt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Lt.copy(this.direction).multiplyScalar(e).add(this.origin),Lt.distanceToSquared(t))}distanceSqToSegment(t,e,n,r){Ct.copy(t).add(e).multiplyScalar(.5),Pt.copy(e).sub(t).normalize(),Rt.copy(this.origin).sub(Ct);const i=.5*t.distanceTo(e),o=-this.direction.dot(Pt),a=Rt.dot(this.direction),s=-Rt.dot(Pt),l=Rt.lengthSq(),c=Math.abs(1-o*o);let h,u,d,p;if(c>0)if(h=o*s-a,u=o*a-s,p=i*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+o*u+2*a)+u*(o*h+u+2*s)+l}else u=i,h=Math.max(0,-(o*u+a)),d=-h*h+u*(u+2*s)+l;else u=-i,h=Math.max(0,-(o*u+a)),d=-h*h+u*(u+2*s)+l;else u<=-p?(h=Math.max(0,-(-o*i+a)),u=h>0?-i:Math.min(Math.max(-i,-s),i),d=-h*h+u*(u+2*s)+l):u<=p?(h=0,u=Math.min(Math.max(-i,-s),i),d=u*(u+2*s)+l):(h=Math.max(0,-(o*i+a)),u=h>0?i:Math.min(Math.max(-i,-s),i),d=-h*h+u*(u+2*s)+l);else u=o>0?-i:i,h=Math.max(0,-(o*u+a)),d=-h*h+u*(u+2*s)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),r&&r.copy(Pt).multiplyScalar(u).add(Ct),d}intersectSphere(t,e){Lt.subVectors(t.center,this.origin);const n=Lt.dot(this.direction),r=Lt.dot(Lt)-n*n,i=t.radius*t.radius;if(r>i)return null;const o=Math.sqrt(i-r),a=n-o,s=n+o;return a<0&&s<0?null:a<0?this.at(s,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,r,i,o,a,s;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,r=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,r=(t.min.x-u.x)*l),c>=0?(i=(t.min.y-u.y)*c,o=(t.max.y-u.y)*c):(i=(t.max.y-u.y)*c,o=(t.min.y-u.y)*c),n>o||i>r?null:((i>n||n!=n)&&(n=i),(o<r||r!=r)&&(r=o),h>=0?(a=(t.min.z-u.z)*h,s=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,s=(t.min.z-u.z)*h),n>s||a>r?null:((a>n||n!=n)&&(n=a),(s<r||r!=r)&&(r=s),r<0?null:this.at(n>=0?n:r,e)))}intersectsBox(t){return null!==this.intersectBox(t,Lt)}intersectTriangle(t,e,n,r,i){Dt.subVectors(e,t),It.subVectors(n,t),Nt.crossVectors(Dt,It);let o,a=this.direction.dot(Nt);if(a>0){if(r)return null;o=1}else{if(!(a<0))return null;o=-1,a=-a}Rt.subVectors(this.origin,t);const s=o*this.direction.dot(It.crossVectors(Rt,It));if(s<0)return null;const l=o*this.direction.dot(Dt.cross(Rt));if(l<0)return null;if(s+l>a)return null;const c=-o*Rt.dot(Nt);return c<0?null:this.at(c/a,i)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class kt{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,r,i,o,a,s,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=r,g[1]=i,g[5]=o,g[9]=a,g[13]=s,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new kt).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,r=1/zt.setFromMatrixColumn(t,0).length(),i=1/zt.setFromMatrixColumn(t,1).length(),o=1/zt.setFromMatrixColumn(t,2).length();return e[0]=n[0]*r,e[1]=n[1]*r,e[2]=n[2]*r,e[3]=0,e[4]=n[4]*i,e[5]=n[5]*i,e[6]=n[6]*i,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");const e=this.elements,n=t.x,r=t.y,i=t.z,o=Math.cos(n),a=Math.sin(n),s=Math.cos(r),l=Math.sin(r),c=Math.cos(i),h=Math.sin(i);if(\"XYZ\"===t.order){const t=o*c,n=o*h,r=a*c,i=a*h;e[0]=s*c,e[4]=-s*h,e[8]=l,e[1]=n+r*l,e[5]=t-i*l,e[9]=-a*s,e[2]=i-t*l,e[6]=r+n*l,e[10]=o*s}else if(\"YXZ\"===t.order){const t=s*c,n=s*h,r=l*c,i=l*h;e[0]=t+i*a,e[4]=r*a-n,e[8]=o*l,e[1]=o*h,e[5]=o*c,e[9]=-a,e[2]=n*a-r,e[6]=i+t*a,e[10]=o*s}else if(\"ZXY\"===t.order){const t=s*c,n=s*h,r=l*c,i=l*h;e[0]=t-i*a,e[4]=-o*h,e[8]=r+n*a,e[1]=n+r*a,e[5]=o*c,e[9]=i-t*a,e[2]=-o*l,e[6]=a,e[10]=o*s}else if(\"ZYX\"===t.order){const t=o*c,n=o*h,r=a*c,i=a*h;e[0]=s*c,e[4]=r*l-n,e[8]=t*l+i,e[1]=s*h,e[5]=i*l+t,e[9]=n*l-r,e[2]=-l,e[6]=a*s,e[10]=o*s}else if(\"YZX\"===t.order){const t=o*s,n=o*l,r=a*s,i=a*l;e[0]=s*c,e[4]=i-t*h,e[8]=r*h+n,e[1]=h,e[5]=o*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+r,e[10]=t-i*h}else if(\"XZY\"===t.order){const t=o*s,n=o*l,r=a*s,i=a*l;e[0]=s*c,e[4]=-h,e[8]=l*c,e[1]=t*h+i,e[5]=o*c,e[9]=n*h-r,e[2]=r*h-n,e[6]=a*c,e[10]=i*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Ft,t,Ut)}lookAt(t,e,n){const r=this.elements;return Gt.subVectors(t,e),0===Gt.lengthSq()&&(Gt.z=1),Gt.normalize(),Ht.crossVectors(n,Gt),0===Ht.lengthSq()&&(1===Math.abs(n.z)?Gt.x+=1e-4:Gt.z+=1e-4,Gt.normalize(),Ht.crossVectors(n,Gt)),Ht.normalize(),Vt.crossVectors(Gt,Ht),r[0]=Ht.x,r[4]=Vt.x,r[8]=Gt.x,r[1]=Ht.y,r[5]=Vt.y,r[9]=Gt.y,r[2]=Ht.z,r[6]=Vt.z,r[10]=Gt.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,r=e.elements,i=this.elements,o=n[0],a=n[4],s=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],b=r[0],w=r[4],M=r[8],S=r[12],E=r[1],T=r[5],A=r[9],L=r[13],C=r[2],P=r[6],R=r[10],D=r[14],I=r[3],N=r[7],O=r[11],k=r[15];return i[0]=o*b+a*E+s*C+l*I,i[4]=o*w+a*T+s*P+l*N,i[8]=o*M+a*A+s*R+l*O,i[12]=o*S+a*L+s*D+l*k,i[1]=c*b+h*E+u*C+d*I,i[5]=c*w+h*T+u*P+d*N,i[9]=c*M+h*A+u*R+d*O,i[13]=c*S+h*L+u*D+d*k,i[2]=p*b+f*E+m*C+g*I,i[6]=p*w+f*T+m*P+g*N,i[10]=p*M+f*A+m*R+g*O,i[14]=p*S+f*L+m*D+g*k,i[3]=v*b+y*E+x*C+_*I,i[7]=v*w+y*T+x*P+_*N,i[11]=v*M+y*A+x*R+_*O,i[15]=v*S+y*L+x*D+_*k,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],r=t[8],i=t[12],o=t[1],a=t[5],s=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+i*s*h-r*l*h-i*a*u+n*l*u+r*a*d-n*s*d)+t[7]*(+e*s*d-e*l*u+i*o*u-r*o*d+r*l*c-i*s*c)+t[11]*(+e*l*h-e*a*d-i*o*h+n*o*d+i*a*c-n*l*c)+t[15]*(-r*a*c-e*s*h+e*a*u+r*o*h-n*o*u+n*s*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const r=this.elements;return t.isVector3?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],v=h*m*l-f*u*l+f*s*d-a*m*d-h*s*g+a*u*g,y=p*u*l-c*m*l-p*s*d+o*m*d+c*s*g-o*u*g,x=c*f*l-p*h*l+p*a*d-o*f*d-c*a*g+o*h*g,_=p*h*s-c*f*s-p*a*u+o*f*u+c*a*m-o*h*m,b=e*v+n*y+r*x+i*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/b;return t[0]=v*w,t[1]=(f*u*i-h*m*i-f*r*d+n*m*d+h*r*g-n*u*g)*w,t[2]=(a*m*i-f*s*i+f*r*l-n*m*l-a*r*g+n*s*g)*w,t[3]=(h*s*i-a*u*i-h*r*l+n*u*l+a*r*d-n*s*d)*w,t[4]=y*w,t[5]=(c*m*i-p*u*i+p*r*d-e*m*d-c*r*g+e*u*g)*w,t[6]=(p*s*i-o*m*i-p*r*l+e*m*l+o*r*g-e*s*g)*w,t[7]=(o*u*i-c*s*i+c*r*l-e*u*l-o*r*d+e*s*d)*w,t[8]=x*w,t[9]=(p*h*i-c*f*i-p*n*d+e*f*d+c*n*g-e*h*g)*w,t[10]=(o*f*i-p*a*i+p*n*l-e*f*l-o*n*g+e*a*g)*w,t[11]=(c*a*i-o*h*i-c*n*l+e*h*l+o*n*d-e*a*d)*w,t[12]=_*w,t[13]=(c*f*r-p*h*r+p*n*u-e*f*u-c*n*m+e*h*m)*w,t[14]=(p*a*r-o*f*r-p*n*s+e*f*s+o*n*m-e*a*m)*w,t[15]=(o*h*r-c*a*r+c*n*s-e*h*s-o*n*u+e*a*u)*w,this}scale(t){const e=this.elements,n=t.x,r=t.y,i=t.z;return e[0]*=n,e[4]*=r,e[8]*=i,e[1]*=n,e[5]*=r,e[9]*=i,e[2]*=n,e[6]*=r,e[10]*=i,e[3]*=n,e[7]*=r,e[11]*=i,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],r=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,r))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),r=Math.sin(e),i=1-n,o=t.x,a=t.y,s=t.z,l=i*o,c=i*a;return this.set(l*o+n,l*a-r*s,l*s+r*a,0,l*a+r*s,c*a+n,c*s-r*o,0,l*s-r*a,c*s+r*o,i*s*s+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,r,i,o){return this.set(1,n,i,0,t,1,o,0,e,r,1,0,0,0,0,1),this}compose(t,e,n){const r=this.elements,i=e._x,o=e._y,a=e._z,s=e._w,l=i+i,c=o+o,h=a+a,u=i*l,d=i*c,p=i*h,f=o*c,m=o*h,g=a*h,v=s*l,y=s*c,x=s*h,_=n.x,b=n.y,w=n.z;return r[0]=(1-(f+g))*_,r[1]=(d+x)*_,r[2]=(p-y)*_,r[3]=0,r[4]=(d-x)*b,r[5]=(1-(u+g))*b,r[6]=(m+v)*b,r[7]=0,r[8]=(p+y)*w,r[9]=(m-v)*w,r[10]=(1-(u+f))*w,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}decompose(t,e,n){const r=this.elements;let i=zt.set(r[0],r[1],r[2]).length();const o=zt.set(r[4],r[5],r[6]).length(),a=zt.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),t.x=r[12],t.y=r[13],t.z=r[14],Bt.copy(this);const s=1/i,l=1/o,c=1/a;return Bt.elements[0]*=s,Bt.elements[1]*=s,Bt.elements[2]*=s,Bt.elements[4]*=l,Bt.elements[5]*=l,Bt.elements[6]*=l,Bt.elements[8]*=c,Bt.elements[9]*=c,Bt.elements[10]*=c,e.setFromRotationMatrix(Bt),n.x=i,n.y=o,n.z=a,this}makePerspective(t,e,n,r,i,o){void 0===o&&console.warn(\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\");const a=this.elements,s=2*i/(e-t),l=2*i/(n-r),c=(e+t)/(e-t),h=(n+r)/(n-r),u=-(o+i)/(o-i),d=-2*o*i/(o-i);return a[0]=s,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,r,i,o){const a=this.elements,s=1/(e-t),l=1/(n-r),c=1/(o-i),h=(e+t)*s,u=(n+r)*l,d=(o+i)*c;return a[0]=2*s,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}kt.prototype.isMatrix4=!0;const zt=new ot,Bt=new kt,Ft=new ot(0,0,0),Ut=new ot(1,1,1),Ht=new ot,Vt=new ot,Gt=new ot,jt=new kt,Wt=new it;class qt{constructor(t=0,e=0,n=0,r=qt.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=r}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,r=this._order){return this._x=t,this._y=e,this._z=n,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const r=t.elements,i=r[0],o=r[4],a=r[8],s=r[1],l=r[5],c=r[9],h=r[2],u=r[6],d=r[10];switch(e){case\"XYZ\":this._y=Math.asin(j(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-o,i)):(this._x=Math.atan2(u,l),this._z=0);break;case\"YXZ\":this._x=Math.asin(-j(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(s,l)):(this._y=Math.atan2(-h,i),this._z=0);break;case\"ZXY\":this._x=Math.asin(j(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(s,i));break;case\"ZYX\":this._y=Math.asin(-j(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(s,i)):(this._x=0,this._z=Math.atan2(-o,l));break;case\"YZX\":this._z=Math.asin(j(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,i)):(this._x=0,this._y=Math.atan2(a,d));break;case\"XZY\":this._z=Math.asin(-j(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,i)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return jt.makeRotationFromQuaternion(t),this.setFromRotationMatrix(jt,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Wt.setFromEuler(this),this.setFromQuaternion(Wt,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new ot(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}qt.prototype.isEuler=!0,qt.DefaultOrder=\"XYZ\",qt.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"];class Xt{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let Yt=0;const Zt=new ot,Jt=new it,$t=new kt,Qt=new ot,Kt=new ot,te=new ot,ee=new it,ne=new ot(1,0,0),re=new ot(0,1,0),ie=new ot(0,0,1),oe={type:\"added\"},ae={type:\"removed\"};class se extends F{constructor(){super(),Object.defineProperty(this,\"id\",{value:Yt++}),this.uuid=G(),this.name=\"\",this.type=\"Object3D\",this.parent=null,this.children=[],this.up=se.DefaultUp.clone();const t=new ot,e=new qt,n=new it,r=new ot(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new kt},normalMatrix:{value:new Z}}),this.matrix=new kt,this.matrixWorld=new kt,this.matrixAutoUpdate=se.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Xt,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return Jt.setFromAxisAngle(t,e),this.quaternion.multiply(Jt),this}rotateOnWorldAxis(t,e){return Jt.setFromAxisAngle(t,e),this.quaternion.premultiply(Jt),this}rotateX(t){return this.rotateOnAxis(ne,t)}rotateY(t){return this.rotateOnAxis(re,t)}rotateZ(t){return this.rotateOnAxis(ie,t)}translateOnAxis(t,e){return Zt.copy(t).applyQuaternion(this.quaternion),this.position.add(Zt.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(ne,t)}translateY(t){return this.translateOnAxis(re,t)}translateZ(t){return this.translateOnAxis(ie,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4($t.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Qt.copy(t):Qt.set(t,e,n);const r=this.parent;this.updateWorldMatrix(!0,!1),Kt.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?$t.lookAt(Kt,Qt,this.up):$t.lookAt(Qt,Kt,this.up),this.quaternion.setFromRotationMatrix($t),r&&($t.extractRotation(r.matrixWorld),Jt.setFromRotationMatrix($t),this.quaternion.premultiply(Jt.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(oe)):console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(ae)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(ae)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),$t.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),$t.multiply(t.parent.matrixWorld)),t.applyMatrix4($t),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\"id\",t)}getObjectByName(t){return this.getObjectByProperty(\"name\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,r=this.children.length;n<r;n++){const r=this.children[n].getObjectByProperty(t,e);if(void 0!==r)return r}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Kt,t,te),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Kt,ee,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,r=e.length;n<r;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,r=e.length;n<r;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,r=e.length;n<r;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\"string\"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:\"Object\",generator:\"Object3D.toJSON\"});const r={};function i(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(r.uuid=this.uuid,r.type=this.type,\"\"!==this.name&&(r.name=this.name),!0===this.castShadow&&(r.castShadow=!0),!0===this.receiveShadow&&(r.receiveShadow=!0),!1===this.visible&&(r.visible=!1),!1===this.frustumCulled&&(r.frustumCulled=!1),0!==this.renderOrder&&(r.renderOrder=this.renderOrder),\"{}\"!==JSON.stringify(this.userData)&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type=\"InstancedMesh\",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(r.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,r=n.length;e<r;e++){const r=n[e];i(t.shapes,r)}else i(t.shapes,n)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(i(t.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,r=this.material.length;n<r;n++)e.push(i(t.materials,this.material[n]));r.material=e}else r.material=i(t.materials,this.material);if(this.children.length>0){r.children=[];for(let e=0;e<this.children.length;e++)r.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){r.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];r.animations.push(i(t.animations,n))}}if(e){const e=o(t.geometries),r=o(t.materials),i=o(t.textures),a=o(t.images),s=o(t.shapes),l=o(t.skeletons),c=o(t.animations);e.length>0&&(n.geometries=e),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),a.length>0&&(n.images=a),s.length>0&&(n.shapes=s),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=r,n;function o(t){const e=[];for(const n in t){const r=t[n];delete r.metadata,e.push(r)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}se.DefaultUp=new ot(0,1,0),se.DefaultMatrixAutoUpdate=!0,se.prototype.isObject3D=!0;const le=new ot,ce=new ot,he=new ot,ue=new ot,de=new ot,pe=new ot,fe=new ot,me=new ot,ge=new ot,ve=new ot;class ye{constructor(t=new ot,e=new ot,n=new ot){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,r){r.subVectors(n,e),le.subVectors(t,e),r.cross(le);const i=r.lengthSq();return i>0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(t,e,n,r,i){le.subVectors(r,e),ce.subVectors(n,e),he.subVectors(t,e);const o=le.dot(le),a=le.dot(ce),s=le.dot(he),l=ce.dot(ce),c=ce.dot(he),h=o*l-a*a;if(0===h)return i.set(-2,-1,-1);const u=1/h,d=(l*s-a*c)*u,p=(o*c-a*s)*u;return i.set(1-d-p,p,d)}static containsPoint(t,e,n,r){return this.getBarycoord(t,e,n,r,ue),ue.x>=0&&ue.y>=0&&ue.x+ue.y<=1}static getUV(t,e,n,r,i,o,a,s){return this.getBarycoord(t,e,n,r,ue),s.set(0,0),s.addScaledVector(i,ue.x),s.addScaledVector(o,ue.y),s.addScaledVector(a,ue.z),s}static isFrontFacing(t,e,n,r){return le.subVectors(n,e),ce.subVectors(t,e),le.cross(ce).dot(r)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,r){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[r]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return le.subVectors(this.c,this.b),ce.subVectors(this.a,this.b),.5*le.cross(ce).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ye.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ye.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,r,i){return ye.getUV(t,this.a,this.b,this.c,e,n,r,i)}containsPoint(t){return ye.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ye.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,r=this.b,i=this.c;let o,a;de.subVectors(r,n),pe.subVectors(i,n),me.subVectors(t,n);const s=de.dot(me),l=pe.dot(me);if(s<=0&&l<=0)return e.copy(n);ge.subVectors(t,r);const c=de.dot(ge),h=pe.dot(ge);if(c>=0&&h<=c)return e.copy(r);const u=s*h-c*l;if(u<=0&&s>=0&&c<=0)return o=s/(s-c),e.copy(n).addScaledVector(de,o);ve.subVectors(t,i);const d=de.dot(ve),p=pe.dot(ve);if(p>=0&&d<=p)return e.copy(i);const f=d*l-s*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(pe,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return fe.subVectors(i,r),a=(h-c)/(h-c+(d-p)),e.copy(r).addScaledVector(fe,a);const g=1/(m+f+u);return o=f*g,a=u*g,e.copy(n).addScaledVector(de,o).addScaledVector(pe,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let xe=0;class _e extends F{constructor(){super(),Object.defineProperty(this,\"id\",{value:xe++}),this.uuid=G(),this.name=\"\",this.type=\"Material\",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=h,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=O,this.stencilZFail=O,this.stencilZPass=O,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}onBuild(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(\"THREE.Material: '\"+e+\"' parameter is undefined.\");continue}if(\"shading\"===e){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===n;continue}const r=this[e];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[e]=n:console.warn(\"THREE.\"+this.type+\": '\"+e+\"' is not a property of this material.\")}}toJSON(t){const e=void 0===t||\"string\"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};function r(t){const e=[];for(const n in t){const r=t[n];delete r.metadata,e.push(r)}return e}if(n.uuid=this.uuid,n.type=this.type,\"\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=r(t.textures),i=r(t.images);e.length>0&&(n.textures=e),i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let r=0;r!==t;++r)n[r]=e[r].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(t){!0===t&&this.version++}}_e.prototype.isMaterial=!0;const be={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},we={h:0,s:0,l:0},Me={h:0,s:0,l:0};function Se(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Ee(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Te(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Ae{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=function(t,e){return(t%e+e)%e}(t,1),e=j(e,0,1),n=j(n,0,1),0===e)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+e):n+e-n*e,i=2*n-r;this.r=Se(i,r,t+1/3),this.g=Se(i,r,t),this.b=Se(i,r,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}let n;if(n=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let t;const r=n[1],i=n[2];switch(r){case\"rgb\":case\"rgba\":if(t=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(i))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(i))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\"hsl\":case\"hsla\":if(t=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(i)){const n=parseFloat(t[1])/360,r=parseInt(t[2],10)/100,i=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,r,i)}}}else if(n=/^\\#([A-Fa-f\\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=be[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\"THREE.Color: Unknown color \"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Ee(t.r),this.g=Ee(t.g),this.b=Ee(t.b),this}copyLinearToSRGB(t){return this.r=Te(t.r),this.g=Te(t.g),this.b=Te(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\"000000\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,r=this.b,i=Math.max(e,n,r),o=Math.min(e,n,r);let a,s;const l=(o+i)/2;if(o===i)a=0,s=0;else{const t=i-o;switch(s=l<=.5?t/(i+o):t/(2-i-o),i){case e:a=(n-r)/t+(n<r?6:0);break;case n:a=(r-e)/t+2;break;case r:a=(e-n)/t+4}a/=6}return t.h=a,t.s=s,t.l=l,t}getStyle(){return\"rgb(\"+(255*this.r|0)+\",\"+(255*this.g|0)+\",\"+(255*this.b|0)+\")\"}offsetHSL(t,e,n){return this.getHSL(we),we.h+=t,we.s+=e,we.l+=n,this.setHSL(we.h,we.s,we.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(we),t.getHSL(Me);const n=W(we.h,Me.h,e),r=W(we.s,Me.s,e),i=W(we.l,Me.l,e);return this.setHSL(n,r,i),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}Ae.NAMES=be,Ae.prototype.isColor=!0,Ae.prototype.r=1,Ae.prototype.g=1,Ae.prototype.b=1;class Le extends _e{constructor(t){super(),this.type=\"MeshBasicMaterial\",this.color=new Ae(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this}}Le.prototype.isMeshBasicMaterial=!0;const Ce=new ot,Pe=new Y;class Re{constructor(t,e,n){if(Array.isArray(t))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.name=\"\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=k,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let r=0,i=this.itemSize;r<i;r++)this.array[t+r]=e.array[n+r];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyColorsArray(): color is undefined\",r),i=new Ae),e[n++]=i.r,e[n++]=i.g,e[n++]=i.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\",r),i=new Y),e[n++]=i.x,e[n++]=i.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\",r),i=new ot),e[n++]=i.x,e[n++]=i.y,e[n++]=i.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\",r),i=new et),e[n++]=i.x,e[n++]=i.y,e[n++]=i.z,e[n++]=i.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)Pe.fromBufferAttribute(this,e),Pe.applyMatrix3(t),this.setXY(e,Pe.x,Pe.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)Ce.fromBufferAttribute(this,e),Ce.applyMatrix3(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)Ce.x=this.getX(e),Ce.y=this.getY(e),Ce.z=this.getZ(e),Ce.applyMatrix4(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)Ce.x=this.getX(e),Ce.y=this.getY(e),Ce.z=this.getZ(e),Ce.applyNormalMatrix(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)Ce.x=this.getX(e),Ce.y=this.getY(e),Ce.z=this.getZ(e),Ce.transformDirection(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=r,this}setXYZW(t,e,n,r,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=r,this.array[t+3]=i,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\"\"!==this.name&&(t.name=this.name),this.usage!==k&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}Re.prototype.isBufferAttribute=!0;class De extends Re{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Ie extends Re{constructor(t,e,n){super(new Uint32Array(t),e,n)}}(class extends Re{constructor(t,e,n){super(new Uint16Array(t),e,n)}}).prototype.isFloat16BufferAttribute=!0;class Ne extends Re{constructor(t,e,n){super(new Float32Array(t),e,n)}}function Oe(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,r=t.length;n<r;++n)t[n]>e&&(e=t[n]);return e}let ke=0;const ze=new kt,Be=new se,Fe=new ot,Ue=new lt,He=new lt,Ve=new ot;class Ge extends F{constructor(){super(),Object.defineProperty(this,\"id\",{value:ke++}),this.uuid=G(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(Oe(t)>65535?Ie:De)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new Z).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const r=this.attributes.tangent;return void 0!==r&&(r.transformDirection(t),r.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return ze.makeRotationFromQuaternion(t),this.applyMatrix4(ze),this}rotateX(t){return ze.makeRotationX(t),this.applyMatrix4(ze),this}rotateY(t){return ze.makeRotationY(t),this.applyMatrix4(ze),this}rotateZ(t){return ze.makeRotationZ(t),this.applyMatrix4(ze),this}translate(t,e,n){return ze.makeTranslation(t,e,n),this.applyMatrix4(ze),this}scale(t,e,n){return ze.makeScale(t,e,n),this.applyMatrix4(ze),this}lookAt(t){return Be.lookAt(t),Be.updateMatrix(),this.applyMatrix4(Be.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Fe).negate(),this.translate(Fe.x,Fe.y,Fe.z),this}setFromPoints(t){const e=[];for(let n=0,r=t.length;n<r;n++){const r=t[n];e.push(r.x,r.y,r.z||0)}return this.setAttribute(\"position\",new Ne(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new lt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingBox.set(new ot(-1/0,-1/0,-1/0),new ot(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];Ue.setFromBufferAttribute(n),this.morphTargetsRelative?(Ve.addVectors(this.boundingBox.min,Ue.min),this.boundingBox.expandByPoint(Ve),Ve.addVectors(this.boundingBox.max,Ue.max),this.boundingBox.expandByPoint(Ve)):(this.boundingBox.expandByPoint(Ue.min),this.boundingBox.expandByPoint(Ue.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new At);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingSphere.set(new ot,1/0);if(t){const n=this.boundingSphere.center;if(Ue.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];He.setFromBufferAttribute(n),this.morphTargetsRelative?(Ve.addVectors(Ue.min,He.min),Ue.expandByPoint(Ve),Ve.addVectors(Ue.max,He.max),Ue.expandByPoint(Ve)):(Ue.expandByPoint(He.min),Ue.expandByPoint(He.max))}Ue.getCenter(n);let r=0;for(let e=0,i=t.count;e<i;e++)Ve.fromBufferAttribute(t,e),r=Math.max(r,n.distanceToSquared(Ve));if(e)for(let i=0,o=e.length;i<o;i++){const o=e[i],a=this.morphTargetsRelative;for(let e=0,i=o.count;e<i;e++)Ve.fromBufferAttribute(o,e),a&&(Fe.fromBufferAttribute(t,e),Ve.add(Fe)),r=Math.max(r,n.distanceToSquared(Ve))}this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeFaceNormals(){}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");const n=t.array,r=e.position.array,i=e.normal.array,o=e.uv.array,a=r.length/3;void 0===e.tangent&&this.setAttribute(\"tangent\",new Re(new Float32Array(4*a),4));const s=e.tangent.array,l=[],c=[];for(let t=0;t<a;t++)l[t]=new ot,c[t]=new ot;const h=new ot,u=new ot,d=new ot,p=new Y,f=new Y,m=new Y,g=new ot,v=new ot;function y(t,e,n){h.fromArray(r,3*t),u.fromArray(r,3*e),d.fromArray(r,3*n),p.fromArray(o,2*t),f.fromArray(o,2*e),m.fromArray(o,2*n),u.sub(h),d.sub(h),f.sub(p),m.sub(p);const i=1/(f.x*m.y-m.x*f.y);isFinite(i)&&(g.copy(u).multiplyScalar(m.y).addScaledVector(d,-f.y).multiplyScalar(i),v.copy(d).multiplyScalar(f.x).addScaledVector(u,-m.x).multiplyScalar(i),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(v),c[e].add(v),c[n].add(v))}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let t=0,e=x.length;t<e;++t){const e=x[t],r=e.start;for(let t=r,i=r+e.count;t<i;t+=3)y(n[t+0],n[t+1],n[t+2])}const _=new ot,b=new ot,w=new ot,M=new ot;function S(t){w.fromArray(i,3*t),M.copy(w);const e=l[t];_.copy(e),_.sub(w.multiplyScalar(w.dot(e))).normalize(),b.crossVectors(M,e);const n=b.dot(c[t])<0?-1:1;s[4*t]=_.x,s[4*t+1]=_.y,s[4*t+2]=_.z,s[4*t+3]=n}for(let t=0,e=x.length;t<e;++t){const e=x[t],r=e.start;for(let t=r,i=r+e.count;t<i;t+=3)S(n[t+0]),S(n[t+1]),S(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\"position\");if(void 0!==e){let n=this.getAttribute(\"normal\");if(void 0===n)n=new Re(new Float32Array(3*e.count),3),this.setAttribute(\"normal\",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const r=new ot,i=new ot,o=new ot,a=new ot,s=new ot,l=new ot,c=new ot,h=new ot;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),f=t.getX(u+2);r.fromBufferAttribute(e,d),i.fromBufferAttribute(e,p),o.fromBufferAttribute(e,f),c.subVectors(o,i),h.subVectors(r,i),c.cross(h),a.fromBufferAttribute(n,d),s.fromBufferAttribute(n,p),l.fromBufferAttribute(n,f),a.add(c),s.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,s.x,s.y,s.z),n.setXYZ(f,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3)r.fromBufferAttribute(e,t+0),i.fromBufferAttribute(e,t+1),o.fromBufferAttribute(e,t+2),c.subVectors(o,i),h.subVectors(r,i),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\",t);void 0===e&&(e=0,console.warn(\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\"));const n=this.attributes;for(const r in n){if(void 0===t.attributes[r])continue;const i=n[r].array,o=t.attributes[r],a=o.array,s=o.itemSize*e,l=Math.min(a.length,i.length-s);for(let t=0,e=s;t<l;t++,e++)i[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Ve.fromBufferAttribute(t,e),Ve.normalize(),t.setXYZ(e,Ve.x,Ve.y,Ve.z)}toNonIndexed(){function t(t,e){const n=t.array,r=t.itemSize,i=t.normalized,o=new n.constructor(e.length*r);let a=0,s=0;for(let i=0,l=e.length;i<l;i++){a=t.isInterleavedBufferAttribute?e[i]*t.data.stride+t.offset:e[i]*r;for(let t=0;t<r;t++)o[s++]=n[a++]}return new Re(o,r,i)}if(null===this.index)return console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\"),this;const e=new Ge,n=this.index.array,r=this.attributes;for(const i in r){const o=t(r[i],n);e.setAttribute(i,o)}const i=this.morphAttributes;for(const r in i){const o=[],a=i[r];for(let e=0,r=a.length;e<r;e++){const r=t(a[e],n);o.push(r)}e.morphAttributes[r]=o}e.morphTargetsRelative=this.morphTargetsRelative;const o=this.groups;for(let t=0,n=o.length;t<n;t++){const n=o[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};if(t.uuid=this.uuid,t.type=this.type,\"\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const r=n[e];t.data.attributes[e]=r.toJSON(t.data)}const r={};let i=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],o=[];for(let e=0,r=n.length;e<r;e++){const r=n[e];o.push(r.toJSON(t.data))}o.length>0&&(r[e]=o,i=!0)}i&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new Ge).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const r=t.attributes;for(const t in r){const n=r[t];this.setAttribute(t,n.clone(e))}const i=t.morphAttributes;for(const t in i){const n=[],r=i[t];for(let t=0,i=r.length;t<i;t++)n.push(r[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const o=t.groups;for(let t=0,e=o.length;t<e;t++){const e=o[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const s=t.boundingSphere;return null!==s&&(this.boundingSphere=s.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}Ge.prototype.isBufferGeometry=!0;const je=new kt,We=new Ot,qe=new At,Xe=new ot,Ye=new ot,Ze=new ot,Je=new ot,$e=new ot,Qe=new ot,Ke=new ot,tn=new ot,en=new ot,nn=new Y,rn=new Y,on=new Y,an=new ot,sn=new ot;class ln extends se{constructor(t=new Ge,e=new Le){super(),this.type=\"Mesh\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}raycast(t,e){const n=this.geometry,r=this.material,i=this.matrixWorld;if(void 0===r)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),qe.copy(n.boundingSphere),qe.applyMatrix4(i),!1===t.ray.intersectsSphere(qe))return;if(je.copy(i).invert(),We.copy(t.ray).applyMatrix4(je),null!==n.boundingBox&&!1===We.intersectsBox(n.boundingBox))return;let o;if(n.isBufferGeometry){const i=n.index,a=n.attributes.position,s=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==i)if(Array.isArray(r))for(let n=0,p=u.length;n<p;n++){const p=u[n],f=r[p.materialIndex];for(let n=Math.max(p.start,d.start),r=Math.min(p.start+p.count,d.start+d.count);n<r;n+=3){const r=i.getX(n),u=i.getX(n+1),d=i.getX(n+2);o=cn(this,f,t,We,a,s,l,c,h,r,u,d),o&&(o.faceIndex=Math.floor(n/3),o.face.materialIndex=p.materialIndex,e.push(o))}}else{for(let n=Math.max(0,d.start),u=Math.min(i.count,d.start+d.count);n<u;n+=3){const u=i.getX(n),d=i.getX(n+1),p=i.getX(n+2);o=cn(this,r,t,We,a,s,l,c,h,u,d,p),o&&(o.faceIndex=Math.floor(n/3),e.push(o))}}else if(void 0!==a)if(Array.isArray(r))for(let n=0,i=u.length;n<i;n++){const i=u[n],p=r[i.materialIndex];for(let n=Math.max(i.start,d.start),r=Math.min(i.start+i.count,d.start+d.count);n<r;n+=3){o=cn(this,p,t,We,a,s,l,c,h,n,n+1,n+2),o&&(o.faceIndex=Math.floor(n/3),o.face.materialIndex=i.materialIndex,e.push(o))}}else{for(let n=Math.max(0,d.start),i=Math.min(a.count,d.start+d.count);n<i;n+=3){o=cn(this,r,t,We,a,s,l,c,h,n,n+1,n+2),o&&(o.faceIndex=Math.floor(n/3),e.push(o))}}}else n.isGeometry&&console.error(\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}function cn(t,e,n,r,i,o,a,s,l,c,h,u){Xe.fromBufferAttribute(i,c),Ye.fromBufferAttribute(i,h),Ze.fromBufferAttribute(i,u);const d=t.morphTargetInfluences;if(e.morphTargets&&o&&d){Ke.set(0,0,0),tn.set(0,0,0),en.set(0,0,0);for(let t=0,e=o.length;t<e;t++){const e=d[t],n=o[t];0!==e&&(Je.fromBufferAttribute(n,c),$e.fromBufferAttribute(n,h),Qe.fromBufferAttribute(n,u),a?(Ke.addScaledVector(Je,e),tn.addScaledVector($e,e),en.addScaledVector(Qe,e)):(Ke.addScaledVector(Je.sub(Xe),e),tn.addScaledVector($e.sub(Ye),e),en.addScaledVector(Qe.sub(Ze),e)))}Xe.add(Ke),Ye.add(tn),Ze.add(en)}t.isSkinnedMesh&&(t.boneTransform(c,Xe),t.boneTransform(h,Ye),t.boneTransform(u,Ze));const p=function(t,e,n,r,i,o,a,s){let l;if(l=1===e.side?r.intersectTriangle(a,o,i,!0,s):r.intersectTriangle(i,o,a,2!==e.side,s),null===l)return null;sn.copy(s),sn.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(sn);return c<n.near||c>n.far?null:{distance:c,point:sn.clone(),object:t}}(t,e,n,r,Xe,Ye,Ze,an);if(p){s&&(nn.fromBufferAttribute(s,c),rn.fromBufferAttribute(s,h),on.fromBufferAttribute(s,u),p.uv=ye.getUV(an,Xe,Ye,Ze,nn,rn,on,new Y)),l&&(nn.fromBufferAttribute(l,c),rn.fromBufferAttribute(l,h),on.fromBufferAttribute(l,u),p.uv2=ye.getUV(an,Xe,Ye,Ze,nn,rn,on,new Y));const t={a:c,b:h,c:u,normal:new ot,materialIndex:0};ye.getNormal(Xe,Ye,Ze,t.normal),p.face=t}return p}ln.prototype.isMesh=!0;class hn extends Ge{constructor(t=1,e=1,n=1,r=1,i=1,o=1){super(),this.type=\"BoxGeometry\",this.parameters={width:t,height:e,depth:n,widthSegments:r,heightSegments:i,depthSegments:o};const a=this;r=Math.floor(r),i=Math.floor(i),o=Math.floor(o);const s=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,r,i,o,p,f,m,g,v){const y=o/m,x=p/g,_=o/2,b=p/2,w=f/2,M=m+1,S=g+1;let E=0,T=0;const A=new ot;for(let o=0;o<S;o++){const a=o*x-b;for(let s=0;s<M;s++){const u=s*y-_;A[t]=u*r,A[e]=a*i,A[n]=w,l.push(A.x,A.y,A.z),A[t]=0,A[e]=0,A[n]=f>0?1:-1,c.push(A.x,A.y,A.z),h.push(s/m),h.push(1-o/g),E+=1}}for(let t=0;t<g;t++)for(let e=0;e<m;e++){const n=u+e+M*t,r=u+e+M*(t+1),i=u+(e+1)+M*(t+1),o=u+(e+1)+M*t;s.push(n,r,o),s.push(r,i,o),T+=6}a.addGroup(d,T,v),d+=T,u+=E}p(\"z\",\"y\",\"x\",-1,-1,n,e,t,o,i,0),p(\"z\",\"y\",\"x\",1,-1,n,e,-t,o,i,1),p(\"x\",\"z\",\"y\",1,1,t,n,e,r,o,2),p(\"x\",\"z\",\"y\",1,-1,t,n,-e,r,o,3),p(\"x\",\"y\",\"z\",1,-1,t,e,n,r,i,4),p(\"x\",\"y\",\"z\",-1,-1,t,e,-n,r,i,5),this.setIndex(s),this.setAttribute(\"position\",new Ne(l,3)),this.setAttribute(\"normal\",new Ne(c,3)),this.setAttribute(\"uv\",new Ne(h,2))}static fromJSON(t){return new hn(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function un(t){const e={};for(const n in t){e[n]={};for(const r in t[n]){const i=t[n][r];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?e[n][r]=i.clone():Array.isArray(i)?e[n][r]=i.slice():e[n][r]=i}}return e}function dn(t){const e={};for(let n=0;n<t.length;n++){const r=un(t[n]);for(const t in r)e[t]=r[t]}return e}const pn={clone:un,merge:dn};class fn extends _e{constructor(t){super(),this.type=\"ShaderMaterial\",this.defines={},this.uniforms={},this.vertexShader=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",this.fragmentShader=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\"),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=un(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const r=this.uniforms[n].value;r&&r.isTexture?e.uniforms[n]={type:\"t\",value:r.toJSON(t).uuid}:r&&r.isColor?e.uniforms[n]={type:\"c\",value:r.getHex()}:r&&r.isVector2?e.uniforms[n]={type:\"v2\",value:r.toArray()}:r&&r.isVector3?e.uniforms[n]={type:\"v3\",value:r.toArray()}:r&&r.isVector4?e.uniforms[n]={type:\"v4\",value:r.toArray()}:r&&r.isMatrix3?e.uniforms[n]={type:\"m3\",value:r.toArray()}:r&&r.isMatrix4?e.uniforms[n]={type:\"m4\",value:r.toArray()}:e.uniforms[n]={value:r}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}fn.prototype.isShaderMaterial=!0;class mn extends se{constructor(){super(),this.type=\"Camera\",this.matrixWorldInverse=new kt,this.projectionMatrix=new kt,this.projectionMatrixInverse=new kt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}mn.prototype.isCamera=!0;class gn extends mn{constructor(t=50,e=1,n=.1,r=2e3){super(),this.type=\"PerspectiveCamera\",this.fov=t,this.zoom=1,this.near=n,this.far=r,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*V*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*H*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*V*Math.atan(Math.tan(.5*H*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,r,i,o){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*H*this.fov)/this.zoom,n=2*e,r=this.aspect*n,i=-.5*r;const o=this.view;if(null!==this.view&&this.view.enabled){const t=o.fullWidth,a=o.fullHeight;i+=o.offsetX*r/t,e-=o.offsetY*n/a,r*=o.width/t,n*=o.height/a}const a=this.filmOffset;0!==a&&(i+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}gn.prototype.isPerspectiveCamera=!0;const vn=90;class yn extends se{constructor(t,e,n){if(super(),this.type=\"CubeCamera\",!0!==n.isWebGLCubeRenderTarget)return void console.error(\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\");this.renderTarget=n;const r=new gn(vn,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new ot(1,0,0)),this.add(r);const i=new gn(vn,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new ot(-1,0,0)),this.add(i);const o=new gn(vn,1,t,e);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new ot(0,1,0)),this.add(o);const a=new gn(vn,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new ot(0,-1,0)),this.add(a);const s=new gn(vn,1,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new ot(0,0,1)),this.add(s);const l=new gn(vn,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new ot(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[r,i,o,a,s,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,r),t.setRenderTarget(n,1),t.render(e,i),t.setRenderTarget(n,2),t.render(e,o),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,s),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class xn extends K{constructor(t,e,n,r,i,o,a,s,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:301,n,r,i,o,a=void 0!==a?a:M,s,l,c),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}xn.prototype.isCubeTexture=!0;class _n extends nt{constructor(t,e,n){Number.isInteger(e)&&(console.warn(\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\"),e=n),super(t,t,e),e=e||{},this.texture=new xn(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:m,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=S,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"},r=new hn(5,5,5),i=new fn({name:\"CubemapFromEquirect\",uniforms:un(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});i.uniforms.tEquirect.value=e;const o=new ln(r,i),a=e.minFilter;e.minFilter===g&&(e.minFilter=m);return new yn(1,10,this).update(t,o),e.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(t,e,n,r){const i=t.getRenderTarget();for(let i=0;i<6;i++)t.setRenderTarget(this,i),t.clear(e,n,r);t.setRenderTarget(i)}}_n.prototype.isWebGLCubeRenderTarget=!0;const bn=new ot,wn=new ot,Mn=new Z;class Sn{constructor(t=new ot(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,r){return this.normal.set(t,e,n),this.constant=r,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const r=bn.subVectors(n,e).cross(wn.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(bn),r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const i=-(t.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:e.copy(n).multiplyScalar(i).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Mn.getNormalMatrix(t),r=this.coplanarPoint(bn).applyMatrix4(t),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Sn.prototype.isPlane=!0;const En=new At,Tn=new ot;class An{constructor(t=new Sn,e=new Sn,n=new Sn,r=new Sn,i=new Sn,o=new Sn){this.planes=[t,e,n,r,i,o]}set(t,e,n,r,i,o){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(r),a[4].copy(i),a[5].copy(o),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-r,h-s,f-u,y-m).normalize(),e[1].setComponents(a+r,h+s,f+u,y+m).normalize(),e[2].setComponents(a+i,h+l,f+d,y+g).normalize(),e[3].setComponents(a-i,h-l,f-d,y-g).normalize(),e[4].setComponents(a-o,h-c,f-p,y-v).normalize(),e[5].setComponents(a+o,h+c,f+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),En.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(En)}intersectsSprite(t){return En.center.set(0,0,0),En.radius=.7071067811865476,En.applyMatrix4(t.matrixWorld),this.intersectsSphere(En)}intersectsSphere(t){const e=this.planes,n=t.center,r=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<r)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const r=e[n];if(Tn.x=r.normal.x>0?t.max.x:t.min.x,Tn.y=r.normal.y>0?t.max.y:t.min.y,Tn.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(Tn)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Ln(){let t=null,e=!1,n=null,r=null;function i(e,o){n(e,o),r=t.requestAnimationFrame(i)}return{start:function(){!0!==e&&null!==n&&(r=t.requestAnimationFrame(i),e=!0)},stop:function(){t.cancelAnimationFrame(r),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Cn(t,e){const n=e.isWebGL2,r=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),r.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=r.get(e);n&&(t.deleteBuffer(n.buffer),r.delete(e))},update:function(e,i){if(e.isGLBufferAttribute){const t=r.get(e);return void((!t||t.version<e.version)&&r.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const o=r.get(e);void 0===o?r.set(e,function(e,r){const i=e.array,o=e.usage,a=t.createBuffer();t.bindBuffer(r,a),t.bufferData(r,i,o),e.onUploadCallback();let s=5126;return i instanceof Float32Array?s=5126:i instanceof Float64Array?console.warn(\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\"):i instanceof Uint16Array?e.isFloat16BufferAttribute?n?s=5131:console.warn(\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\"):s=5123:i instanceof Int16Array?s=5122:i instanceof Uint32Array?s=5125:i instanceof Int32Array?s=5124:i instanceof Int8Array?s=5120:(i instanceof Uint8Array||i instanceof Uint8ClampedArray)&&(s=5121),{buffer:a,type:s,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version}}(e,i)):o.version<e.version&&(!function(e,r,i){const o=r.array,a=r.updateRange;t.bindBuffer(i,e),-1===a.count?t.bufferSubData(i,0,o):(n?t.bufferSubData(i,a.offset*o.BYTES_PER_ELEMENT,o,a.offset,a.count):t.bufferSubData(i,a.offset*o.BYTES_PER_ELEMENT,o.subarray(a.offset,a.offset+a.count)),a.count=-1)}(o.buffer,e,i),o.version=e.version)}}}class Pn extends Ge{constructor(t=1,e=1,n=1,r=1){super(),this.type=\"PlaneGeometry\",this.parameters={width:t,height:e,widthSegments:n,heightSegments:r};const i=t/2,o=e/2,a=Math.floor(n),s=Math.floor(r),l=a+1,c=s+1,h=t/a,u=e/s,d=[],p=[],f=[],m=[];for(let t=0;t<c;t++){const e=t*u-o;for(let n=0;n<l;n++){const r=n*h-i;p.push(r,-e,0),f.push(0,0,1),m.push(n/a),m.push(1-t/s)}}for(let t=0;t<s;t++)for(let e=0;e<a;e++){const n=e+l*t,r=e+l*(t+1),i=e+1+l*(t+1),o=e+1+l*t;d.push(n,r,o),d.push(r,i,o)}this.setIndex(d),this.setAttribute(\"position\",new Ne(p,3)),this.setAttribute(\"normal\",new Ne(f,3)),this.setAttribute(\"uv\",new Ne(m,2))}static fromJSON(t){return new Pn(t.width,t.height,t.widthSegments,t.heightSegments)}}const Rn={alphamap_fragment:\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\",alphamap_pars_fragment:\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",alphatest_fragment:\"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\",aomap_fragment:\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\",aomap_pars_fragment:\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\",begin_vertex:\"vec3 transformed = vec3( position );\",beginnormal_vertex:\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\",bsdfs:\"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\\n}\\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n#else\\n\\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t}\\n\\treturn 1.0;\\n#endif\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\treturn specularColor * brdf.x + brdf.y;\\n}\\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\tvec3 FssEss = F * brdf.x + brdf.y;\\n\\tfloat Ess = brdf.x + brdf.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\",bumpmap_pars_fragment:\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\",color_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",color_pars_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_pars_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\",common:\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\",cube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\t\\tvec2 f = fract( uv );\\n\\t\\tuv += 0.5 - f;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x += texelSize;\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.y += texelSize;\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x -= texelSize;\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\treturn mix( tm, bm, f.y );\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\",defaultnormal_vertex:\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\",displacementmap_pars_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\",displacementmap_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\",encodings_fragment:\"gl_FragColor = linearToOutputTexel( gl_FragColor );\",encodings_pars_fragment:\"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\",envmap_fragment:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifndef ENVMAP_TYPE_CUBE_UV\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\",envmap_common_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\",envmap_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\",envmap_pars_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\",envmap_physical_pars_fragment:\"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\",envmap_vertex:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\",fog_vertex:\"#ifdef USE_FOG\\n\\tfogDepth = - mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\",fog_pars_fragment:\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\",gradientmap_pars_fragment:\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\",lightmap_fragment:\"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n#endif\",lightmap_pars_fragment:\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",lights_lambert_vertex:\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\",lights_pars_begin:\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\",lights_toon_fragment:\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\",lights_toon_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\",lights_phong_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_physical_fragment:\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\",lights_physical_pars_fragment:\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularRoughness;\\n\\tvec3 specularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(    0, 1,    0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\",lights_fragment_begin:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\",lights_fragment_maps:\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\",lights_fragment_end:\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\",logdepthbuf_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\",map_particle_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\",map_particle_pars_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n#endif\",morphtarget_pars_vertex:\"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",morphtarget_vertex:\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\",normal_fragment_begin:\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\",normal_fragment_maps:\"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\",clearcoat_normal_fragment_begin:\"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\",clearcoat_normal_fragment_maps:\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\",clearcoat_pars_fragment:\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\",packing:\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\",premultiplied_alpha_fragment:\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\",project_vertex:\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\",dithering_fragment:\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\",dithering_pars_fragment:\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\",roughnessmap_pars_fragment:\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",shadowmap_pars_fragment:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\",shadowmap_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\",skinbase_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\",skinning_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\",skinnormal_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\",tonemapping_pars_fragment:\"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(  1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,  1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\",transmission_fragment:\"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSNMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition.xyz / vWorldPosition.w;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tfloat ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );\\n\\tvec3 transmission = transmissionFactor * getIBLVolumeRefraction(\\n\\t\\tnormal, v, roughnessFactor, material.diffuseColor, totalSpecular,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );\\n#endif\",transmission_pars_fragment:\"#ifdef USE_TRANSMISSION\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec4 vWorldPosition;\\n\\tvec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) {\\n\\t\\tvec3 refractionVector = refract(-v, normalize(n), 1.0 / ior);\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length(vec3(modelMatrix[0].xyz));\\n\\t\\tmodelScale.y = length(vec3(modelMatrix[1].xyz));\\n\\t\\tmodelScale.z = length(vec3(modelMatrix[2].xyz));\\n\\t\\treturn normalize(refractionVector) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness(float roughness, float ior) {\\n\\t\\treturn roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0);\\n\\t}\\n\\tvec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) {\\n\\t\\tfloat framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior);\\n\\t\\treturn texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb;\\n\\t}\\n\\tvec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) {\\n\\t\\tif (attenuationDistance == 0.0) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp(-attenuationCoefficient * transmissionDistance);\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor,\\n\\t\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\n\\t\\tvec3 attenuationColor, float attenuationDistance) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix);\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0);\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior);\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance);\\n\\t\\treturn (1.0 - specularColor) * attenuatedColor * baseColor;\\n\\t}\\n#endif\",uv_pars_fragment:\"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\",uv_pars_vertex:\"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\",uv_vertex:\"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\",uv2_pars_fragment:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_pars_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\",uv2_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\",background_frag:\"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",background_vert:\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\",cube_frag:\"#include <envmap_common_pars_fragment>\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",cube_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\",depth_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\",distanceRGBA_frag:\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\",distanceRGBA_vert:\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\",equirect_frag:\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",equirect_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\",linedashed_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\",meshbasic_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshbasic_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_ENVMAP\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshlambert_frag:\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include <lightmap_fragment>\\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshmatcap_frag:\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshmatcap_vert:\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#ifndef FLAT_SHADED\\n\\t\\tvNormal = normalize( transformedNormal );\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\",meshtoon_frag:\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshtoon_vert:\"#define TOON\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphysical_frag:\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define REFLECTIVITY\\n\\t#define CLEARCOAT\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform vec3 attenuationColor;\\n\\tuniform float attenuationDistance;\\n#endif\\n#ifdef REFLECTIVITY\\n\\tuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\n#include <transmission_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphysical_vert:\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec4 vWorldPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition;\\n#endif\\n}\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",points_vert:\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\",shadow_frag:\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",shadow_vert:\"#include <common>\\n#include <fog_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",sprite_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",sprite_vert:\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\"},Dn={common:{diffuse:{value:new Ae(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Z},uv2Transform:{value:new Z},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Y(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ae(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ae(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Z}},sprite:{diffuse:{value:new Ae(16777215)},opacity:{value:1},center:{value:new Y(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Z}}},In={basic:{uniforms:dn([Dn.common,Dn.specularmap,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.fog]),vertexShader:Rn.meshbasic_vert,fragmentShader:Rn.meshbasic_frag},lambert:{uniforms:dn([Dn.common,Dn.specularmap,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)}}]),vertexShader:Rn.meshlambert_vert,fragmentShader:Rn.meshlambert_frag},phong:{uniforms:dn([Dn.common,Dn.specularmap,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)},specular:{value:new Ae(1118481)},shininess:{value:30}}]),vertexShader:Rn.meshphong_vert,fragmentShader:Rn.meshphong_frag},standard:{uniforms:dn([Dn.common,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.roughnessmap,Dn.metalnessmap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Rn.meshphysical_vert,fragmentShader:Rn.meshphysical_frag},toon:{uniforms:dn([Dn.common,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.gradientmap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)}}]),vertexShader:Rn.meshtoon_vert,fragmentShader:Rn.meshtoon_frag},matcap:{uniforms:dn([Dn.common,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.fog,{matcap:{value:null}}]),vertexShader:Rn.meshmatcap_vert,fragmentShader:Rn.meshmatcap_frag},points:{uniforms:dn([Dn.points,Dn.fog]),vertexShader:Rn.points_vert,fragmentShader:Rn.points_frag},dashed:{uniforms:dn([Dn.common,Dn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Rn.linedashed_vert,fragmentShader:Rn.linedashed_frag},depth:{uniforms:dn([Dn.common,Dn.displacementmap]),vertexShader:Rn.depth_vert,fragmentShader:Rn.depth_frag},normal:{uniforms:dn([Dn.common,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,{opacity:{value:1}}]),vertexShader:Rn.normal_vert,fragmentShader:Rn.normal_frag},sprite:{uniforms:dn([Dn.sprite,Dn.fog]),vertexShader:Rn.sprite_vert,fragmentShader:Rn.sprite_frag},background:{uniforms:{uvTransform:{value:new Z},t2D:{value:null}},vertexShader:Rn.background_vert,fragmentShader:Rn.background_frag},cube:{uniforms:dn([Dn.envmap,{opacity:{value:1}}]),vertexShader:Rn.cube_vert,fragmentShader:Rn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Rn.equirect_vert,fragmentShader:Rn.equirect_frag},distanceRGBA:{uniforms:dn([Dn.common,Dn.displacementmap,{referencePosition:{value:new ot},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Rn.distanceRGBA_vert,fragmentShader:Rn.distanceRGBA_frag},shadow:{uniforms:dn([Dn.lights,Dn.fog,{color:{value:new Ae(0)},opacity:{value:1}}]),vertexShader:Rn.shadow_vert,fragmentShader:Rn.shadow_frag}};function Nn(t,e,n,r,i){const o=new Ae(0);let a,s,l=0,c=null,h=0,u=null;function d(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,i)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),l=e,d(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t,d(o,l)},render:function(n,i){let p=!1,f=!0===i.isScene?i.background:null;f&&f.isTexture&&(f=e.get(f));const m=t.xr,g=m.getSession&&m.getSession();g&&\"additive\"===g.environmentBlendMode&&(f=null),null===f?d(o,l):f&&f.isColor&&(d(f,1),p=!0),(t.autoClear||p)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||306===f.mapping)?(void 0===s&&(s=new ln(new hn(1,1,1),new fn({name:\"BackgroundCubeMaterial\",uniforms:un(In.cube.uniforms),vertexShader:In.cube.vertexShader,fragmentShader:In.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),s.geometry.deleteAttribute(\"normal\"),s.geometry.deleteAttribute(\"uv\"),s.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(s.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}}),r.update(s)),s.material.uniforms.envMap.value=f,s.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f._needsFlipEnvMap?-1:1,c===f&&h===f.version&&u===t.toneMapping||(s.material.needsUpdate=!0,c=f,h=f.version,u=t.toneMapping),n.unshift(s,s.geometry,s.material,0,0,null)):f&&f.isTexture&&(void 0===a&&(a=new ln(new Pn(2,2),new fn({name:\"BackgroundMaterial\",uniforms:un(In.background.uniforms),vertexShader:In.background.vertexShader,fragmentShader:In.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute(\"normal\"),Object.defineProperty(a.material,\"map\",{get:function(){return this.uniforms.t2D.value}}),r.update(a)),a.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),a.material.uniforms.uvTransform.value.copy(f.matrix),c===f&&h===f.version&&u===t.toneMapping||(a.material.needsUpdate=!0,c=f,h=f.version,u=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function On(t,e,n,r){const i=t.getParameter(34921),o=r.isWebGL2?null:e.get(\"OES_vertex_array_object\"),a=r.isWebGL2||null!==o,s={},l=d(null);let c=l;function h(e){return r.isWebGL2?t.bindVertexArray(e):o.bindVertexArrayOES(e)}function u(e){return r.isWebGL2?t.deleteVertexArray(e):o.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],r=[];for(let t=0;t<i;t++)e[t]=0,n[t]=0,r[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:r,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function f(t){m(t,0)}function m(n,i){const o=c.newAttributes,a=c.enabledAttributes,s=c.attributeDivisors;if(o[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),s[n]!==i){(r.isWebGL2?t:e.get(\"ANGLE_instanced_arrays\"))[r.isWebGL2?\"vertexAttribDivisor\":\"vertexAttribDivisorANGLE\"](n,i),s[n]=i}}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let r=0,i=n.length;r<i;r++)n[r]!==e[r]&&(t.disableVertexAttribArray(r),n[r]=0)}function v(e,n,i,o,a,s){!0!==r.isWebGL2||5124!==i&&5125!==i?t.vertexAttribPointer(e,n,i,o,a,s):t.vertexAttribIPointer(e,n,i,a,s)}function y(){x(),c!==l&&(c=l,h(c.object))}function x(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(i,l,u,y,x){let _=!1;if(a){const e=function(e,n,i){const a=!0===i.wireframe;let l=s[e.id];void 0===l&&(l={},s[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[a];void 0===h&&(h=d(r.isWebGL2?t.createVertexArray():o.createVertexArrayOES()),c[a]=h);return h}(y,u,l);c!==e&&(c=e,h(c.object)),_=function(t,e){const n=c.attributes,r=t.attributes;let i=0;for(const t in r){const e=n[t],o=r[t];if(void 0===e)return!0;if(e.attribute!==o)return!0;if(e.data!==o.data)return!0;i++}return c.attributesNum!==i||c.index!==e}(y,x),_&&function(t,e){const n={},r=t.attributes;let i=0;for(const t in r){const e=r[t],o={};o.attribute=e,e.data&&(o.data=e.data),n[t]=o,i++}c.attributes=n,c.attributesNum=i,c.index=e}(y,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===u.id&&c.wireframe===t||(c.geometry=y.id,c.program=u.id,c.wireframe=t,_=!0)}!0===i.isInstancedMesh&&(_=!0),null!==x&&n.update(x,34963),_&&(!function(i,o,a,s){if(!1===r.isWebGL2&&(i.isInstancedMesh||s.isInstancedBufferGeometry)&&null===e.get(\"ANGLE_instanced_arrays\"))return;p();const l=s.attributes,c=a.getAttributes(),h=o.defaultAttributeValues;for(const e in c){const r=c[e];if(r>=0){const o=l[e];if(void 0!==o){const e=o.normalized,i=o.itemSize,a=n.get(o);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(o.isInterleavedBufferAttribute){const n=o.data,a=n.stride,u=o.offset;n&&n.isInstancedInterleavedBuffer?(m(r,n.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=n.meshPerAttribute*n.count)):f(r),t.bindBuffer(34962,l),v(r,i,c,e,a*h,u*h)}else o.isInstancedBufferAttribute?(m(r,o.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=o.meshPerAttribute*o.count)):f(r),t.bindBuffer(34962,l),v(r,i,c,e,0,0)}else if(\"instanceMatrix\"===e){const e=n.get(i.instanceMatrix);if(void 0===e)continue;const o=e.buffer,a=e.type;m(r+0,1),m(r+1,1),m(r+2,1),m(r+3,1),t.bindBuffer(34962,o),t.vertexAttribPointer(r+0,4,a,!1,64,0),t.vertexAttribPointer(r+1,4,a,!1,64,16),t.vertexAttribPointer(r+2,4,a,!1,64,32),t.vertexAttribPointer(r+3,4,a,!1,64,48)}else if(\"instanceColor\"===e){const e=n.get(i.instanceColor);if(void 0===e)continue;const o=e.buffer,a=e.type;m(r,1),t.bindBuffer(34962,o),t.vertexAttribPointer(r,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(r,n);break;case 3:t.vertexAttrib3fv(r,n);break;case 4:t.vertexAttrib4fv(r,n);break;default:t.vertexAttrib1fv(r,n)}}}}g()}(i,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in s){const e=s[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete s[t]}},releaseStatesOfGeometry:function(t){if(void 0===s[t.id])return;const e=s[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete s[t.id]},releaseStatesOfProgram:function(t){for(const e in s){const n=s[e];if(void 0===n[t.id])continue;const r=n[t.id];for(const t in r)u(r[t].object),delete r[t];delete n[t.id]}},initAttributes:p,enableAttribute:f,disableUnusedAttributes:g}}function kn(t,e,n,r){const i=r.isWebGL2;let o;this.setMode=function(t){o=t},this.render=function(e,r){t.drawArrays(o,e,r),n.update(r,o,1)},this.renderInstances=function(r,a,s){if(0===s)return;let l,c;if(i)l=t,c=\"drawArraysInstanced\";else if(l=e.get(\"ANGLE_instanced_arrays\"),c=\"drawArraysInstancedANGLE\",null===l)return void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");l[c](o,r,a,s),n.update(a,o,s)}}function zn(t,e,n){let r;function i(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?\"mediump\":\"lowp\"}const o=\"undefined\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||\"undefined\"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:\"highp\";const s=i(a);s!==a&&(console.warn(\"THREE.WebGLRenderer:\",a,\"not supported, using\",s,\"instead.\"),a=s);const l=o||e.has(\"WEBGL_draw_buffers\"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),f=t.getParameter(34921),m=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=o||e.has(\"OES_texture_float\");return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===e.has(\"EXT_texture_filter_anisotropic\")){const n=e.get(\"EXT_texture_filter_anisotropic\");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:i,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:o?t.getParameter(36183):0}}function Bn(t){const e=this;let n=null,r=0,i=!1,o=!1;const a=new Sn,s=new Z,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=r>0),e.numPlanes=r,e.numIntersection=0}function h(t,n,r,i){const o=null!==t?t.length:0;let c=null;if(0!==o){if(c=l.value,!0!==i||null===c){const e=r+4*o,i=n.matrixWorldInverse;s.getNormalMatrix(i),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=r;e!==o;++e,n+=4)a.copy(t[e]).applyMatrix4(i,s),a.normal.toArray(c,n),c[n+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=o,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,o){const a=0!==t.length||e||0!==r||i;return i=e,n=h(t,o,0),r=t.length,a},this.beginShadows=function(){o=!0,h(null)},this.endShadows=function(){o=!1,c()},this.setState=function(e,a,s){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,f=t.get(e);if(!i||null===u||0===u.length||o&&!p)o?h(null):c();else{const t=o?0:r,e=4*t;let i=f.clippingState||null;l.value=i,i=h(u,a,e,s);for(let t=0;t!==e;++t)i[t]=n[t];f.clippingState=i,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function Fn(t){let e=new WeakMap;function n(t,e){return 303===e?t.mapping=301:304===e&&(t.mapping=302),t}function r(t){const n=t.target;n.removeEventListener(\"dispose\",r);const i=e.get(n);void 0!==i&&(e.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture){const o=i.mapping;if(303===o||304===o){if(e.has(i)){return n(e.get(i).texture,i.mapping)}{const o=i.image;if(o&&o.height>0){const a=t.getRenderTarget(),s=new _n(o.height/2);return s.fromEquirectangularTexture(t,i),e.set(i,s),t.setRenderTarget(a),i.addEventListener(\"dispose\",r),n(s.texture,i.mapping)}return null}}}return i},dispose:function(){e=new WeakMap}}}function Un(t){const e={};function n(n){if(void 0!==e[n])return e[n];let r;switch(n){case\"WEBGL_depth_texture\":r=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":r=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":r=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":r=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:r=t.getExtension(n)}return e[n]=r,r}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n(\"EXT_color_buffer_float\"):(n(\"WEBGL_depth_texture\"),n(\"OES_texture_float\"),n(\"OES_texture_half_float\"),n(\"OES_texture_half_float_linear\"),n(\"OES_standard_derivatives\"),n(\"OES_element_index_uint\"),n(\"OES_vertex_array_object\"),n(\"ANGLE_instanced_arrays\")),n(\"OES_texture_float_linear\"),n(\"EXT_color_buffer_half_float\")},get:function(t){const e=n(t);return null===e&&console.warn(\"THREE.WebGLRenderer: \"+t+\" extension not supported.\"),e}}}function Hn(t,e,n,r){const i={},o=new WeakMap;function a(t){const s=t.target;null!==s.index&&e.remove(s.index);for(const t in s.attributes)e.remove(s.attributes[t]);s.removeEventListener(\"dispose\",a),delete i[s.id];const l=o.get(s);l&&(e.remove(l),o.delete(s)),r.releaseStatesOfGeometry(s),!0===s.isInstancedBufferGeometry&&delete s._maxInstanceCount,n.memory.geometries--}function s(t){const n=[],r=t.index,i=t.attributes.position;let a=0;if(null!==r){const t=r.array;a=r.version;for(let e=0,r=t.length;e<r;e+=3){const r=t[e+0],i=t[e+1],o=t[e+2];n.push(r,i,i,o,o,r)}}else{const t=i.array;a=i.version;for(let e=0,r=t.length/3-1;e<r;e+=3){const t=e+0,r=e+1,i=e+2;n.push(t,r,r,i,i,t)}}const s=new(Oe(n)>65535?Ie:De)(n,1);s.version=a;const l=o.get(t);l&&e.remove(l),o.set(t,s)}return{get:function(t,e){return!0===i[e.id]||(e.addEventListener(\"dispose\",a),i[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const r=t.morphAttributes;for(const t in r){const n=r[t];for(let t=0,r=n.length;t<r;t++)e.update(n[t],34962)}},getWireframeAttribute:function(t){const e=o.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&s(t)}else s(t);return o.get(t)}}}function Vn(t,e,n,r){const i=r.isWebGL2;let o,a,s;this.setMode=function(t){o=t},this.setIndex=function(t){a=t.type,s=t.bytesPerElement},this.render=function(e,r){t.drawElements(o,r,a,e*s),n.update(r,o,1)},this.renderInstances=function(r,l,c){if(0===c)return;let h,u;if(i)h=t,u=\"drawElementsInstanced\";else if(h=e.get(\"ANGLE_instanced_arrays\"),u=\"drawElementsInstancedANGLE\",null===h)return void console.error(\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");h[u](o,l,a,r*s,c),n.update(l,o,c)}}function Gn(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,r){switch(e.calls++,n){case 4:e.triangles+=r*(t/3);break;case 1:e.lines+=r*(t/2);break;case 3:e.lines+=r*(t-1);break;case 2:e.lines+=r*t;break;case 0:e.points+=r*t;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",n)}}}}function jn(t,e){return t[0]-e[0]}function Wn(t,e){return Math.abs(e[1])-Math.abs(t[1])}function qn(t){const e={},n=new Float32Array(8),r=[];for(let t=0;t<8;t++)r[t]=[t,0];return{update:function(i,o,a,s){const l=i.morphTargetInfluences,c=void 0===l?0:l.length;let h=e[o.id];if(void 0===h||h.length!==c){h=[];for(let t=0;t<c;t++)h[t]=[t,0];e[o.id]=h}for(let t=0;t<c;t++){const e=h[t];e[0]=t,e[1]=l[t]}h.sort(Wn);for(let t=0;t<8;t++)t<c&&h[t][1]?(r[t][0]=h[t][0],r[t][1]=h[t][1]):(r[t][0]=Number.MAX_SAFE_INTEGER,r[t][1]=0);r.sort(jn);const u=a.morphTargets&&o.morphAttributes.position,d=a.morphNormals&&o.morphAttributes.normal;let p=0;for(let t=0;t<8;t++){const e=r[t],i=e[0],a=e[1];i!==Number.MAX_SAFE_INTEGER&&a?(u&&o.getAttribute(\"morphTarget\"+t)!==u[i]&&o.setAttribute(\"morphTarget\"+t,u[i]),d&&o.getAttribute(\"morphNormal\"+t)!==d[i]&&o.setAttribute(\"morphNormal\"+t,d[i]),n[t]=a,p+=a):(u&&!0===o.hasAttribute(\"morphTarget\"+t)&&o.deleteAttribute(\"morphTarget\"+t),d&&!0===o.hasAttribute(\"morphNormal\"+t)&&o.deleteAttribute(\"morphNormal\"+t),n[t]=0)}const f=o.morphTargetsRelative?1:1-p;s.getUniforms().setValue(t,\"morphTargetBaseInfluence\",f),s.getUniforms().setValue(t,\"morphTargetInfluences\",n)}}}function Xn(t,e,n,r){let i=new WeakMap;function o(t){const e=t.target;e.removeEventListener(\"dispose\",o),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const a=r.render.frame,s=t.geometry,l=e.get(t,s);return i.get(l)!==a&&(e.update(l),i.set(l,a)),t.isInstancedMesh&&(!1===t.hasEventListener(\"dispose\",o)&&t.addEventListener(\"dispose\",o),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){i=new WeakMap}}}In.physical={uniforms:dn([In.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Y(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Ae(0)},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Y},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ae(0)}}]),vertexShader:Rn.meshphysical_vert,fragmentShader:Rn.meshphysical_frag};class Yn extends K{constructor(t=null,e=1,n=1,r=1){super(null),this.image={data:t,width:e,height:n,depth:r},this.magFilter=f,this.minFilter=f,this.wrapR=d,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Yn.prototype.isDataTexture2DArray=!0;class Zn extends K{constructor(t=null,e=1,n=1,r=1){super(null),this.image={data:t,width:e,height:n,depth:r},this.magFilter=f,this.minFilter=f,this.wrapR=d,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Zn.prototype.isDataTexture3D=!0;const Jn=new K,$n=new Yn,Qn=new Zn,Kn=new xn,tr=[],er=[],nr=new Float32Array(16),rr=new Float32Array(9),ir=new Float32Array(4);function or(t,e,n){const r=t[0];if(r<=0||r>0)return t;const i=e*n;let o=tr[i];if(void 0===o&&(o=new Float32Array(i),tr[i]=o),0!==e){r.toArray(o,0);for(let r=1,i=0;r!==e;++r)i+=n,t[r].toArray(o,i)}return o}function ar(t,e){if(t.length!==e.length)return!1;for(let n=0,r=t.length;n<r;n++)if(t[n]!==e[n])return!1;return!0}function sr(t,e){for(let n=0,r=e.length;n<r;n++)t[n]=e[n]}function lr(t,e){let n=er[e];void 0===n&&(n=new Int32Array(e),er[e]=n);for(let r=0;r!==e;++r)n[r]=t.allocateTextureUnit();return n}function cr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function hr(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(ar(n,e))return;t.uniform2fv(this.addr,e),sr(n,e)}}function ur(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(ar(n,e))return;t.uniform3fv(this.addr,e),sr(n,e)}}function dr(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(ar(n,e))return;t.uniform4fv(this.addr,e),sr(n,e)}}function pr(t,e){const n=this.cache,r=e.elements;if(void 0===r){if(ar(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),sr(n,e)}else{if(ar(n,r))return;ir.set(r),t.uniformMatrix2fv(this.addr,!1,ir),sr(n,r)}}function fr(t,e){const n=this.cache,r=e.elements;if(void 0===r){if(ar(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),sr(n,e)}else{if(ar(n,r))return;rr.set(r),t.uniformMatrix3fv(this.addr,!1,rr),sr(n,r)}}function mr(t,e){const n=this.cache,r=e.elements;if(void 0===r){if(ar(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),sr(n,e)}else{if(ar(n,r))return;nr.set(r),t.uniformMatrix4fv(this.addr,!1,nr),sr(n,r)}}function gr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function vr(t,e){const n=this.cache;ar(n,e)||(t.uniform2iv(this.addr,e),sr(n,e))}function yr(t,e){const n=this.cache;ar(n,e)||(t.uniform3iv(this.addr,e),sr(n,e))}function xr(t,e){const n=this.cache;ar(n,e)||(t.uniform4iv(this.addr,e),sr(n,e))}function _r(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function br(t,e){const n=this.cache;ar(n,e)||(t.uniform2uiv(this.addr,e),sr(n,e))}function wr(t,e){const n=this.cache;ar(n,e)||(t.uniform3uiv(this.addr,e),sr(n,e))}function Mr(t,e){const n=this.cache;ar(n,e)||(t.uniform4uiv(this.addr,e),sr(n,e))}function Sr(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.safeSetTexture2D(e||Jn,i)}function Er(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTexture3D(e||Qn,i)}function Tr(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.safeSetTextureCube(e||Kn,i)}function Ar(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTexture2DArray(e||$n,i)}function Lr(t,e){t.uniform1fv(this.addr,e)}function Cr(t,e){const n=or(e,this.size,2);t.uniform2fv(this.addr,n)}function Pr(t,e){const n=or(e,this.size,3);t.uniform3fv(this.addr,n)}function Rr(t,e){const n=or(e,this.size,4);t.uniform4fv(this.addr,n)}function Dr(t,e){const n=or(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Ir(t,e){const n=or(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function Nr(t,e){const n=or(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Or(t,e){t.uniform1iv(this.addr,e)}function kr(t,e){t.uniform2iv(this.addr,e)}function zr(t,e){t.uniform3iv(this.addr,e)}function Br(t,e){t.uniform4iv(this.addr,e)}function Fr(t,e){t.uniform1uiv(this.addr,e)}function Ur(t,e){t.uniform2uiv(this.addr,e)}function Hr(t,e){t.uniform3uiv(this.addr,e)}function Vr(t,e){t.uniform4uiv(this.addr,e)}function Gr(t,e,n){const r=e.length,i=lr(n,r);t.uniform1iv(this.addr,i);for(let t=0;t!==r;++t)n.safeSetTexture2D(e[t]||Jn,i[t])}function jr(t,e,n){const r=e.length,i=lr(n,r);t.uniform1iv(this.addr,i);for(let t=0;t!==r;++t)n.safeSetTextureCube(e[t]||Kn,i[t])}function Wr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return cr;case 35664:return hr;case 35665:return ur;case 35666:return dr;case 35674:return pr;case 35675:return fr;case 35676:return mr;case 5124:case 35670:return gr;case 35667:case 35671:return vr;case 35668:case 35672:return yr;case 35669:case 35673:return xr;case 5125:return _r;case 36294:return br;case 36295:return wr;case 36296:return Mr;case 35678:case 36198:case 36298:case 36306:case 35682:return Sr;case 35679:case 36299:case 36307:return Er;case 35680:case 36300:case 36308:case 36293:return Tr;case 36289:case 36303:case 36311:case 36292:return Ar}}(e.type)}function qr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return Lr;case 35664:return Cr;case 35665:return Pr;case 35666:return Rr;case 35674:return Dr;case 35675:return Ir;case 35676:return Nr;case 5124:case 35670:return Or;case 35667:case 35671:return kr;case 35668:case 35672:return zr;case 35669:case 35673:return Br;case 5125:return Fr;case 36294:return Ur;case 36295:return Hr;case 36296:return Vr;case 35678:case 36198:case 36298:case 36306:case 35682:return Gr;case 35680:case 36300:case 36308:case 36293:return jr}}(e.type)}function Xr(t){this.id=t,this.seq=[],this.map={}}qr.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),sr(e,t)},Xr.prototype.setValue=function(t,e,n){const r=this.seq;for(let i=0,o=r.length;i!==o;++i){const o=r[i];o.setValue(t,e[o.id],n)}};const Yr=/(\\w+)(\\])?(\\[|\\.)?/g;function Zr(t,e){t.seq.push(e),t.map[e.id]=e}function Jr(t,e,n){const r=t.name,i=r.length;for(Yr.lastIndex=0;;){const o=Yr.exec(r),a=Yr.lastIndex;let s=o[1];const l=\"]\"===o[2],c=o[3];if(l&&(s|=0),void 0===c||\"[\"===c&&a+2===i){Zr(n,void 0===c?new Wr(s,t,e):new qr(s,t,e));break}{let t=n.map[s];void 0===t&&(t=new Xr(s),Zr(n,t)),n=t}}}function $r(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let r=0;r<n;++r){const n=t.getActiveUniform(e,r);Jr(n,t.getUniformLocation(e,n.name),this)}}function Qr(t,e,n){const r=t.createShader(e);return t.shaderSource(r,n),t.compileShader(r),r}$r.prototype.setValue=function(t,e,n,r){const i=this.map[e];void 0!==i&&i.setValue(t,n,r)},$r.prototype.setOptional=function(t,e,n){const r=e[n];void 0!==r&&this.setValue(t,n,r)},$r.upload=function(t,e,n,r){for(let i=0,o=e.length;i!==o;++i){const o=e[i],a=n[o.id];!1!==a.needsUpdate&&o.setValue(t,a.value,r)}},$r.seqWithValue=function(t,e){const n=[];for(let r=0,i=t.length;r!==i;++r){const i=t[r];i.id in e&&n.push(i)}return n};let Kr=0;function ti(t){switch(t){case N:return[\"Linear\",\"( value )\"];case 3001:return[\"sRGB\",\"( value )\"];case 3002:return[\"RGBE\",\"( value )\"];case 3004:return[\"RGBM\",\"( value, 7.0 )\"];case 3005:return[\"RGBM\",\"( value, 16.0 )\"];case 3006:return[\"RGBD\",\"( value, 256.0 )\"];case 3007:return[\"Gamma\",\"( value, float( GAMMA_FACTOR ) )\"];case 3003:return[\"LogLuv\",\"( value )\"];default:return console.warn(\"THREE.WebGLProgram: Unsupported encoding:\",t),[\"Linear\",\"( value )\"]}}function ei(t,e,n){const r=t.getShaderParameter(e,35713),i=t.getShaderInfoLog(e).trim();if(r&&\"\"===i)return\"\";return\"THREE.WebGLShader: gl.getShaderInfoLog() \"+n+\"\\n\"+i+function(t){const e=t.split(\"\\n\");for(let t=0;t<e.length;t++)e[t]=t+1+\": \"+e[t];return e.join(\"\\n\")}(t.getShaderSource(e))}function ni(t,e){const n=ti(e);return\"vec4 \"+t+\"( vec4 value ) { return \"+n[0]+\"ToLinear\"+n[1]+\"; }\"}function ri(t,e){const n=ti(e);return\"vec4 \"+t+\"( vec4 value ) { return LinearTo\"+n[0]+n[1]+\"; }\"}function ii(t,e){let n;switch(e){case 1:n=\"Linear\";break;case 2:n=\"Reinhard\";break;case 3:n=\"OptimizedCineon\";break;case 4:n=\"ACESFilmic\";break;case 5:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e),n=\"Linear\"}return\"vec3 \"+t+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}function oi(t){return\"\"!==t}function ai(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function si(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const li=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function ci(t){return t.replace(li,hi)}function hi(t,e){const n=Rn[e];if(void 0===n)throw new Error(\"Can not resolve #include <\"+e+\">\");return ci(n)}const ui=/#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g,di=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function pi(t){return t.replace(di,mi).replace(ui,fi)}function fi(t,e,n,r){return console.warn(\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\"),mi(t,e,n,r)}function mi(t,e,n,r){let i=\"\";for(let t=parseInt(e);t<parseInt(n);t++)i+=r.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+t+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,t);return i}function gi(t){let e=\"precision \"+t.precision+\" float;\\nprecision \"+t.precision+\" int;\";return\"highp\"===t.precision?e+=\"\\n#define HIGH_PRECISION\":\"mediump\"===t.precision?e+=\"\\n#define MEDIUM_PRECISION\":\"lowp\"===t.precision&&(e+=\"\\n#define LOW_PRECISION\"),e}function vi(t,e,n,r){const i=t.getContext(),o=n.defines;let a=n.vertexShader,s=n.fragmentShader;const l=function(t){let e=\"SHADOWMAP_TYPE_BASIC\";return 1===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF\":2===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF_SOFT\":3===t.shadowMapType&&(e=\"SHADOWMAP_TYPE_VSM\"),e}(n),c=function(t){let e=\"ENVMAP_TYPE_CUBE\";if(t.envMap)switch(t.envMapMode){case 301:case 302:e=\"ENVMAP_TYPE_CUBE\";break;case 306:case 307:e=\"ENVMAP_TYPE_CUBE_UV\"}return e}(n),h=function(t){let e=\"ENVMAP_MODE_REFLECTION\";if(t.envMap)switch(t.envMapMode){case 302:case 307:e=\"ENVMAP_MODE_REFRACTION\"}return e}(n),u=function(t){let e=\"ENVMAP_BLENDING_NONE\";if(t.envMap)switch(t.combine){case 0:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case 1:e=\"ENVMAP_BLENDING_MIX\";break;case 2:e=\"ENVMAP_BLENDING_ADD\"}return e}(n),d=t.gammaFactor>0?t.gammaFactor:1,p=n.isWebGL2?\"\":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||\"physical\"===t.shaderID?\"#extension GL_OES_standard_derivatives : enable\":\"\",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?\"#extension GL_EXT_frag_depth : enable\":\"\",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?\"#extension GL_EXT_draw_buffers : require\":\"\",(t.extensionShaderTextureLOD||t.envMap||t.transmission>0)&&t.rendererExtensionShaderTextureLod?\"#extension GL_EXT_shader_texture_lod : enable\":\"\"].filter(oi).join(\"\\n\")}(n),f=function(t){const e=[];for(const n in t){const r=t[n];!1!==r&&e.push(\"#define \"+n+\" \"+r)}return e.join(\"\\n\")}(o),m=i.createProgram();let g,v,y=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";n.isRawShaderMaterial?(g=[f].filter(oi).join(\"\\n\"),g.length>0&&(g+=\"\\n\"),v=[p,f].filter(oi).join(\"\\n\"),v.length>0&&(v+=\"\\n\")):(g=[gi(n),\"#define SHADER_NAME \"+n.shaderName,f,n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+d,\"#define MAX_BONES \"+n.maxBones,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&!1===n.flatShading?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(oi).join(\"\\n\"),v=[p,gi(n),\"#define SHADER_NAME \"+n.shaderName,f,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest+(n.alphaTest%1?\"\":\".0\"):\"\",\"#define GAMMA_FACTOR \"+d,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+c:\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+u:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",0!==n.toneMapping?\"#define TONE_MAPPING\":\"\",0!==n.toneMapping?Rn.tonemapping_pars_fragment:\"\",0!==n.toneMapping?ii(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",Rn.encodings_pars_fragment,n.map?ni(\"mapTexelToLinear\",n.mapEncoding):\"\",n.matcap?ni(\"matcapTexelToLinear\",n.matcapEncoding):\"\",n.envMap?ni(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMap?ni(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.lightMap?ni(\"lightMapTexelToLinear\",n.lightMapEncoding):\"\",ri(\"linearToOutputTexel\",n.outputEncoding),n.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(oi).join(\"\\n\")),a=ci(a),a=ai(a,n),a=si(a,n),s=ci(s),s=ai(s,n),s=si(s,n),a=pi(a),s=pi(s),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(y=\"#version 300 es\\n\",g=[\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+g,v=[\"#define varying in\",n.glslVersion===B?\"\":\"out highp vec4 pc_fragColor;\",n.glslVersion===B?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+v);const x=y+v+s,_=Qr(i,35633,y+g+a),b=Qr(i,35632,x);if(i.attachShader(m,_),i.attachShader(m,b),void 0!==n.index0AttributeName?i.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&i.bindAttribLocation(m,0,\"position\"),i.linkProgram(m),t.debug.checkShaderErrors){const t=i.getProgramInfoLog(m).trim(),e=i.getShaderInfoLog(_).trim(),n=i.getShaderInfoLog(b).trim();let r=!0,o=!0;if(!1===i.getProgramParameter(m,35714)){r=!1;const e=ei(i,_,\"vertex\"),n=ei(i,b,\"fragment\");console.error(\"THREE.WebGLProgram: shader error: \",i.getError(),\"35715\",i.getProgramParameter(m,35715),\"gl.getProgramInfoLog\",t,e,n)}else\"\"!==t?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",t):\"\"!==e&&\"\"!==n||(o=!1);o&&(this.diagnostics={runnable:r,programLog:t,vertexShader:{log:e,prefix:g},fragmentShader:{log:n,prefix:v}})}let w,M;return i.deleteShader(_),i.deleteShader(b),this.getUniforms=function(){return void 0===w&&(w=new $r(i,m)),w},this.getAttributes=function(){return void 0===M&&(M=function(t,e){const n={},r=t.getProgramParameter(e,35721);for(let i=0;i<r;i++){const r=t.getActiveAttrib(e,i).name;n[r]=t.getAttribLocation(e,r)}return n}(i,m)),M},this.destroy=function(){r.releaseStatesOfProgram(this),i.deleteProgram(m),this.program=void 0},this.name=n.shaderName,this.id=Kr++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=_,this.fragmentShader=b,this}function yi(t,e,n,r,i,o){const a=[],s=r.isWebGL2,l=r.logarithmicDepthBuffer,c=r.floatVertexTextures,h=r.maxVertexUniforms,u=r.vertexTextures;let d=r.precision;const p={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"},f=[\"precision\",\"isWebGL2\",\"supportsVertexTextures\",\"outputEncoding\",\"instancing\",\"instancingColor\",\"map\",\"mapEncoding\",\"matcap\",\"matcapEncoding\",\"envMap\",\"envMapMode\",\"envMapEncoding\",\"envMapCubeUV\",\"lightMap\",\"lightMapEncoding\",\"aoMap\",\"emissiveMap\",\"emissiveMapEncoding\",\"bumpMap\",\"normalMap\",\"objectSpaceNormalMap\",\"tangentSpaceNormalMap\",\"clearcoatMap\",\"clearcoatRoughnessMap\",\"clearcoatNormalMap\",\"displacementMap\",\"specularMap\",\"roughnessMap\",\"metalnessMap\",\"gradientMap\",\"alphaMap\",\"combine\",\"vertexColors\",\"vertexAlphas\",\"vertexTangents\",\"vertexUvs\",\"uvsVertexOnly\",\"fog\",\"useFog\",\"fogExp2\",\"flatShading\",\"sizeAttenuation\",\"logarithmicDepthBuffer\",\"skinning\",\"maxBones\",\"useVertexTexture\",\"morphTargets\",\"morphNormals\",\"premultipliedAlpha\",\"numDirLights\",\"numPointLights\",\"numSpotLights\",\"numHemiLights\",\"numRectAreaLights\",\"numDirLightShadows\",\"numPointLightShadows\",\"numSpotLightShadows\",\"shadowMapEnabled\",\"shadowMapType\",\"toneMapping\",\"physicallyCorrectLights\",\"alphaTest\",\"doubleSided\",\"flipSided\",\"numClippingPlanes\",\"numClipIntersection\",\"depthPacking\",\"dithering\",\"sheen\",\"transmission\",\"transmissionMap\",\"thicknessMap\"];function m(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\"),e=t.texture.encoding):e=N,e}return{getParameters:function(i,a,f,g,v){const y=g.fog,x=i.isMeshStandardMaterial?g.environment:null,_=e.get(i.envMap||x),b=p[i.type],w=v.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(c)return 1024;{const t=h,n=Math.floor((t-20)/4),r=Math.min(n,e.length);return r<e.length?(console.warn(\"THREE.WebGLRenderer: Skeleton has \"+e.length+\" bones. This GPU supports \"+r+\".\"),0):r}}(v):0;let M,S;if(null!==i.precision&&(d=r.getMaxPrecision(i.precision),d!==i.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",i.precision,\"not supported, using\",d,\"instead.\")),b){const t=In[b];M=t.vertexShader,S=t.fragmentShader}else M=i.vertexShader,S=i.fragmentShader;const E=t.getRenderTarget();return{isWebGL2:s,shaderID:b,shaderName:i.type,vertexShader:M,fragmentShader:S,defines:i.defines,isRawShaderMaterial:!0===i.isRawShaderMaterial,glslVersion:i.glslVersion,precision:d,instancing:!0===v.isInstancedMesh,instancingColor:!0===v.isInstancedMesh&&null!==v.instanceColor,supportsVertexTextures:u,outputEncoding:null!==E?m(E.texture):t.outputEncoding,map:!!i.map,mapEncoding:m(i.map),matcap:!!i.matcap,matcapEncoding:m(i.matcap),envMap:!!_,envMapMode:_&&_.mapping,envMapEncoding:m(_),envMapCubeUV:!!_&&(306===_.mapping||307===_.mapping),lightMap:!!i.lightMap,lightMapEncoding:m(i.lightMap),aoMap:!!i.aoMap,emissiveMap:!!i.emissiveMap,emissiveMapEncoding:m(i.emissiveMap),bumpMap:!!i.bumpMap,normalMap:!!i.normalMap,objectSpaceNormalMap:1===i.normalMapType,tangentSpaceNormalMap:0===i.normalMapType,clearcoatMap:!!i.clearcoatMap,clearcoatRoughnessMap:!!i.clearcoatRoughnessMap,clearcoatNormalMap:!!i.clearcoatNormalMap,displacementMap:!!i.displacementMap,roughnessMap:!!i.roughnessMap,metalnessMap:!!i.metalnessMap,specularMap:!!i.specularMap,alphaMap:!!i.alphaMap,gradientMap:!!i.gradientMap,sheen:!!i.sheen,transmission:!!i.transmission,transmissionMap:!!i.transmissionMap,thicknessMap:!!i.thicknessMap,combine:i.combine,vertexTangents:i.normalMap&&i.vertexTangents,vertexColors:i.vertexColors,vertexAlphas:!0===i.vertexColors&&v.geometry&&v.geometry.attributes.color&&4===v.geometry.attributes.color.itemSize,vertexUvs:!!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatMap||i.clearcoatRoughnessMap||i.clearcoatNormalMap||i.displacementMap||i.transmissionMap||i.thicknessMap),uvsVertexOnly:!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatNormalMap||i.transmission||i.transmissionMap||i.thicknessMap||!i.displacementMap),fog:!!y,useFog:i.fog,fogExp2:y&&y.isFogExp2,flatShading:!!i.flatShading,sizeAttenuation:i.sizeAttenuation,logarithmicDepthBuffer:l,skinning:!0===v.isSkinnedMesh&&w>0,maxBones:w,useVertexTexture:c,morphTargets:i.morphTargets,morphNormals:i.morphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:i.dithering,shadowMapEnabled:t.shadowMap.enabled&&f.length>0,shadowMapType:t.shadowMap.type,toneMapping:i.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:i.premultipliedAlpha,alphaTest:i.alphaTest,doubleSided:2===i.side,flipSided:1===i.side,depthPacking:void 0!==i.depthPacking&&i.depthPacking,index0AttributeName:i.index0AttributeName,extensionDerivatives:i.extensions&&i.extensions.derivatives,extensionFragDepth:i.extensions&&i.extensions.fragDepth,extensionDrawBuffers:i.extensions&&i.extensions.drawBuffers,extensionShaderTextureLOD:i.extensions&&i.extensions.shaderTextureLOD,rendererExtensionFragDepth:s||n.has(\"EXT_frag_depth\"),rendererExtensionDrawBuffers:s||n.has(\"WEBGL_draw_buffers\"),rendererExtensionShaderTextureLod:s||n.has(\"EXT_shader_texture_lod\"),customProgramCacheKey:i.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<f.length;t++)n.push(e[f[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=p[t.type];let n;if(e){const t=In[e];n=pn.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let r;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){r=e,++r.usedTimes;break}}return void 0===r&&(r=new vi(t,n,e,i),a.push(r)),r},releaseProgram:function(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function xi(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,r){t.get(e)[n]=r},dispose:function(){t=new WeakMap}}}function _i(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function bi(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function wi(t){const e=[];let n=0;const r=[],i=[],o=[],a={id:-1};function s(r,i,o,s,l,c){let h=e[n];const u=t.get(o);return void 0===h?(h={id:r.id,object:r,geometry:i,material:o,program:u.program||a,groupOrder:s,renderOrder:r.renderOrder,z:l,group:c},e[n]=h):(h.id=r.id,h.object=r,h.geometry=i,h.material=o,h.program=u.program||a,h.groupOrder=s,h.renderOrder=r.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:r,transmissive:i,transparent:o,init:function(){n=0,r.length=0,i.length=0,o.length=0},push:function(t,e,n,a,l,c){const h=s(t,e,n,a,l,c);n.transmission>0?i.push(h):!0===n.transparent?o.push(h):r.push(h)},unshift:function(t,e,n,a,l,c){const h=s(t,e,n,a,l,c);n.transmission>0?i.unshift(h):!0===n.transparent?o.unshift(h):r.unshift(h)},finish:function(){for(let t=n,r=e.length;t<r;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){r.length>1&&r.sort(t||_i),i.length>1&&i.sort(e||bi),o.length>1&&o.sort(e||bi)}}}function Mi(t){let e=new WeakMap;return{get:function(n,r){let i;return!1===e.has(n)?(i=new wi(t),e.set(n,[i])):r>=e.get(n).length?(i=new wi(t),e.get(n).push(i)):i=e.get(n)[r],i},dispose:function(){e=new WeakMap}}}function Si(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={direction:new ot,color:new Ae};break;case\"SpotLight\":n={position:new ot,direction:new ot,color:new Ae,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new ot,color:new Ae,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new ot,skyColor:new Ae,groundColor:new Ae};break;case\"RectAreaLight\":n={color:new Ae,position:new ot,halfWidth:new ot,halfHeight:new ot}}return t[e.id]=n,n}}}let Ei=0;function Ti(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Ai(t,e){const n=new Si,r=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":case\"SpotLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y};break;case\"PointLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)i.probe.push(new ot);const o=new ot,a=new kt,s=new kt;return{setup:function(o){let a=0,s=0,l=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,f=0,m=0,g=0;o.sort(Ti);for(let t=0,e=o.length;t<e;t++){const e=o[t],v=e.color,y=e.intensity,x=e.distance,_=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=v.r*y,s+=v.g*y,l+=v.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)i.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=r.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,i.directionalShadow[c]=n,i.directionalShadowMap[c]=_,i.directionalShadowMatrix[c]=e.shadow.matrix,f++}i.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(v).multiplyScalar(y),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=r.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,i.spotShadow[u]=n,i.spotShadowMap[u]=_,i.spotShadowMatrix[u]=e.shadow.matrix,g++}i.spot[u]=t,u++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(v).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),i.rectArea[d]=t,d++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=r.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,i.pointShadow[h]=n,i.pointShadowMap[h]=_,i.pointShadowMatrix[h]=e.shadow.matrix,m++}i.point[h]=t,h++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),i.hemi[p]=t,p++}}d>0&&(e.isWebGL2||!0===t.has(\"OES_texture_float_linear\")?(i.rectAreaLTC1=Dn.LTC_FLOAT_1,i.rectAreaLTC2=Dn.LTC_FLOAT_2):!0===t.has(\"OES_texture_half_float_linear\")?(i.rectAreaLTC1=Dn.LTC_HALF_1,i.rectAreaLTC2=Dn.LTC_HALF_2):console.error(\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\")),i.ambient[0]=a,i.ambient[1]=s,i.ambient[2]=l;const v=i.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===f&&v.numPointShadows===m&&v.numSpotShadows===g||(i.directional.length=c,i.spot.length=u,i.rectArea.length=d,i.point.length=h,i.hemi.length=p,i.directionalShadow.length=f,i.directionalShadowMap.length=f,i.pointShadow.length=m,i.pointShadowMap.length=m,i.spotShadow.length=g,i.spotShadowMap.length=g,i.directionalShadowMatrix.length=f,i.pointShadowMatrix.length=m,i.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=f,v.numPointShadows=m,v.numSpotShadows=g,i.version=Ei++)},setupView:function(t,e){let n=0,r=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),o.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(o),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=i.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),o.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(o),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=i.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),s.identity(),a.copy(d.matrixWorld),a.premultiply(u),s.extractRotation(a),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(s),t.halfHeight.applyMatrix4(s),c++}else if(d.isPointLight){const t=i.point[r];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),r++}else if(d.isHemisphereLight){const t=i.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:i}}function Li(t,e){const n=new Ai(t,e),r=[],i=[];return{init:function(){r.length=0,i.length=0},state:{lightsArray:r,shadowsArray:i,lights:n},setupLights:function(){n.setup(r)},setupLightsView:function(t){n.setupView(r,t)},pushLight:function(t){r.push(t)},pushShadow:function(t){i.push(t)}}}function Ci(t,e){let n=new WeakMap;return{get:function(r,i=0){let o;return!1===n.has(r)?(o=new Li(t,e),n.set(r,[o])):i>=n.get(r).length?(o=new Li(t,e),n.get(r).push(o)):o=n.get(r)[i],o},dispose:function(){n=new WeakMap}}}class Pi extends _e{constructor(t){super(),this.type=\"MeshDepthMaterial\",this.depthPacking=3200,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Pi.prototype.isMeshDepthMaterial=!0;class Ri extends _e{constructor(t){super(),this.type=\"MeshDistanceMaterial\",this.referencePosition=new ot,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}Ri.prototype.isMeshDistanceMaterial=!0;function Di(t,e,n){let r=new An;const i=new Y,o=new Y,a=new et,s=[],l=[],c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new fn({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new Y},radius:{value:4}},vertexShader:\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\",fragmentShader:\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean * HALF_SAMPLE_RATE;\\n\\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const g=new Ge;g.setAttribute(\"position\",new Re(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new ln(g,d),y=this;function x(n,r){const i=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(r,null,i,d,v,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(r,null,i,p,v,null)}function _(t){const e=t<<0;let n=s[e];return void 0===n&&(n=new Pi({depthPacking:3201,morphTargets:t}),s[e]=n),n}function b(t){const e=t<<0;let n=l[e];return void 0===n&&(n=new Ri({morphTargets:t}),l[e]=n),n}function w(e,n,r,i,o,a,s){let l=null,h=_,d=e.customDepthMaterial;if(!0===i.isPointLight&&(h=b,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===r.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0),l=h(t)}else l=d;if(t.localClippingEnabled&&!0===r.clipShadows&&0!==r.clippingPlanes.length){const t=l.uuid,e=r.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let i=n[e];void 0===i&&(i=l.clone(),n[e]=i),l=i}return l.visible=r.visible,l.wireframe=r.wireframe,l.side=3===s?null!==r.shadowSide?r.shadowSide:r.side:null!==r.shadowSide?r.shadowSide:u[r.side],l.clipShadows=r.clipShadows,l.clippingPlanes=r.clippingPlanes,l.clipIntersection=r.clipIntersection,l.wireframeLinewidth=r.wireframeLinewidth,l.linewidth=r.linewidth,!0===i.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(i.matrixWorld),l.nearDistance=o,l.farDistance=a),l}function M(n,i,o,a,s){if(!1===n.visible)return;if(n.layers.test(i.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===s)&&(!n.frustumCulled||r.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,n.matrixWorld);const r=e.update(n),i=n.material;if(Array.isArray(i)){const e=r.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=i[c.materialIndex];if(h&&h.visible){const e=w(n,r,h,a,o.near,o.far,s);t.renderBufferDirect(o,null,r,e,n,c)}}}else if(i.visible){const e=w(n,r,i,a,o.near,o.far,s);t.renderBufferDirect(o,null,r,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)M(l[t],i,o,a,s)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,s){if(!1===y.enabled)return;if(!1===y.autoUpdate&&!1===y.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;i.copy(u.mapSize);const p=u.getFrameExtents();if(i.multiply(p),o.copy(u.mapSize),(i.x>h||i.y>h)&&(i.x>h&&(o.x=Math.floor(h/p.x),i.x=o.x*p.x,u.mapSize.x=o.x),i.y>h&&(o.y=Math.floor(h/p.y),i.y=o.y*p.y,u.mapSize.y=o.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:m,magFilter:m,format:S};u.map=new nt(i.x,i.y,t),u.map.texture.name=c.name+\".shadowMap\",u.mapPass=new nt(i.x,i.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:f,magFilter:f,format:S};u.map=new nt(i.x,i.y,t),u.map.texture.name=c.name+\".shadowMap\",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const g=u.getViewportCount();for(let t=0;t<g;t++){const e=u.getViewport(t);a.set(o.x*e.x,o.y*e.y,o.x*e.z,o.y*e.w),d.viewport(a),u.updateMatrices(c,t),r=u.getFrustum(),M(n,s,u.camera,c,this.type)}u.isPointLightShadow||3!==this.type||x(u,s),u.needsUpdate=!1}y.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function Ii(t,e,n){const r=n.isWebGL2;const i=new function(){let e=!1;const n=new et;let r=null;const i=new et(0,0,0,0);return{setMask:function(n){r===n||e||(t.colorMask(n,n,n,n),r=n)},setLocked:function(t){e=t},setClear:function(e,r,o,a,s){!0===s&&(e*=a,r*=a,o*=a),n.set(e,r,o,a),!1===i.equals(n)&&(t.clearColor(e,r,o,a),i.copy(n))},reset:function(){e=!1,r=null,i.set(-1,0,0,0)}}},o=new function(){let e=!1,n=null,r=null,i=null;return{setTest:function(t){t?B(2929):F(2929)},setMask:function(r){n===r||e||(t.depthMask(r),n=r)},setFunc:function(e){if(r!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);r=e}},setLocked:function(t){e=t},setClear:function(e){i!==e&&(t.clearDepth(e),i=e)},reset:function(){e=!1,n=null,r=null,i=null}}},a=new function(){let e=!1,n=null,r=null,i=null,o=null,a=null,s=null,l=null,c=null;return{setTest:function(t){e||(t?B(2960):F(2960))},setMask:function(r){n===r||e||(t.stencilMask(r),n=r)},setFunc:function(e,n,a){r===e&&i===n&&o===a||(t.stencilFunc(e,n,a),r=e,i=n,o=a)},setOp:function(e,n,r){a===e&&s===n&&l===r||(t.stencilOp(e,n,r),a=e,s=n,l=r)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,r=null,i=null,o=null,a=null,s=null,l=null,c=null}}};let s={},l=null,c={},u=null,d=!1,p=null,f=null,m=null,g=null,v=null,y=null,x=null,_=!1,b=null,w=null,M=null,S=null,E=null;const T=t.getParameter(35661);let A=!1,L=0;const C=t.getParameter(7938);-1!==C.indexOf(\"WebGL\")?(L=parseFloat(/^WebGL (\\d)/.exec(C)[1]),A=L>=1):-1!==C.indexOf(\"OpenGL ES\")&&(L=parseFloat(/^OpenGL ES (\\d)/.exec(C)[1]),A=L>=2);let P=null,R={};const D=t.getParameter(3088),I=t.getParameter(2978),N=(new et).fromArray(D),O=(new et).fromArray(I);function k(e,n,r){const i=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<r;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,i);return o}const z={};function B(e){!0!==s[e]&&(t.enable(e),s[e]=!0)}function F(e){!1!==s[e]&&(t.disable(e),s[e]=!1)}z[3553]=k(3553,3553,1),z[34067]=k(34067,34069,6),i.setClear(0,0,0,1),o.setClear(1),a.setClear(0),B(2929),o.setFunc(3),G(!1),j(1),B(2884),V(0);const U={[h]:32774,101:32778,102:32779};if(r)U[103]=32775,U[104]=32776;else{const t=e.get(\"EXT_blend_minmax\");null!==t&&(U[103]=t.MIN_EXT,U[104]=t.MAX_EXT)}const H={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function V(e,n,r,i,o,a,s,l){if(0!==e){if(!1===d&&(B(3042),d=!0),5===e)o=o||n,a=a||r,s=s||i,n===f&&o===v||(t.blendEquationSeparate(U[n],U[o]),f=n,v=o),r===m&&i===g&&a===y&&s===x||(t.blendFuncSeparate(H[r],H[i],H[a],H[s]),m=r,g=i,y=a,x=s),p=e,_=null;else if(e!==p||l!==_){if(f===h&&v===h||(t.blendEquation(32774),f=h,v=h),l)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}m=null,g=null,y=null,x=null,p=e,_=l}}else!0===d&&(F(3042),d=!1)}function G(e){b!==e&&(e?t.frontFace(2304):t.frontFace(2305),b=e)}function j(e){0!==e?(B(2884),e!==w&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):F(2884),w=e}function W(e,n,r){e?(B(32823),S===n&&E===r||(t.polygonOffset(n,r),S=n,E=r)):F(32823)}function q(e){void 0===e&&(e=33984+T-1),P!==e&&(t.activeTexture(e),P=e)}return{buffers:{color:i,depth:o,stencil:a},enable:B,disable:F,bindFramebuffer:function(e,n){return null===n&&null!==l&&(n=l),c[e]!==n&&(t.bindFramebuffer(e,n),c[e]=n,r&&(36009===e&&(c[36160]=n),36160===e&&(c[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==l&&(t.bindFramebuffer(36160,e),l=e)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:V,setMaterial:function(t,e){2===t.side?F(2884):B(2884);let n=1===t.side;e&&(n=!n),G(n),1===t.blending&&!1===t.transparent?V(0):V(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),o.setFunc(t.depthFunc),o.setTest(t.depthTest),o.setMask(t.depthWrite),i.setMask(t.colorWrite);const r=t.stencilWrite;a.setTest(r),r&&(a.setMask(t.stencilWriteMask),a.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),a.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),W(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?B(32926):F(32926)},setFlipSided:G,setCullFace:j,setLineWidth:function(e){e!==M&&(A&&t.lineWidth(e),M=e)},setPolygonOffset:W,setScissorTest:function(t){t?B(3089):F(3089)},activeTexture:q,bindTexture:function(e,n){null===P&&q();let r=R[P];void 0===r&&(r={type:void 0,texture:void 0},R[P]=r),r.type===e&&r.texture===n||(t.bindTexture(e,n||z[e]),r.type=e,r.texture=n)},unbindTexture:function(){const e=R[P];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},scissor:function(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function(e){!1===O.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),O.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===r&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),s={},P=null,R={},l=null,c={},u=null,d=!1,p=null,f=null,m=null,g=null,v=null,y=null,x=null,_=!1,b=null,w=null,M=null,S=null,E=null,N.set(0,0,t.canvas.width,t.canvas.height),O.set(0,0,t.canvas.width,t.canvas.height),i.reset(),o.reset(),a.reset()}}}function Ni(t,e,n,r,i,o,a){const s=i.isWebGL2,l=i.maxTextures,c=i.maxCubemapSize,h=i.maxTextureSize,v=i.maxSamples,A=new WeakMap;let L,C=!1;try{C=\"undefined\"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\"2d\")}catch(t){}function P(t,e){return C?new OffscreenCanvas(t,e):document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")}function R(t,e,n,r){let i=1;if((t.width>r||t.height>r)&&(i=r/Math.max(t.width,t.height)),i<1||!0===e){if(\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap){const r=e?X:Math.floor,o=r(i*t.width),a=r(i*t.height);void 0===L&&(L=P(o,a));const s=n?P(o,a):L;s.width=o,s.height=a;return s.getContext(\"2d\").drawImage(t,0,0,o,a),console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+t.width+\"x\"+t.height+\") to (\"+o+\"x\"+a+\").\"),s}return\"data\"in t&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+t.width+\"x\"+t.height+\").\"),t}return t}function D(t){return q(t.width)&&q(t.height)}function I(t,e){return t.generateMipmaps&&e&&t.minFilter!==f&&t.minFilter!==m}function N(e,n,i,o,a=1){t.generateMipmap(e);r.get(n).__maxMipLevel=Math.log2(Math.max(i,o,a))}function O(n,r,i){if(!1===s)return r;if(null!==n){if(void 0!==t[n])return t[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let o=r;return 6403===r&&(5126===i&&(o=33326),5131===i&&(o=33325),5121===i&&(o=33321)),6407===r&&(5126===i&&(o=34837),5131===i&&(o=34843),5121===i&&(o=32849)),6408===r&&(5126===i&&(o=34836),5131===i&&(o=34842),5121===i&&(o=32856)),33325!==o&&33326!==o&&34842!==o&&34836!==o||e.get(\"EXT_color_buffer_float\"),o}function k(t){return t===f||1004===t||1005===t?9728:9729}function z(e){const n=e.target;n.removeEventListener(\"dispose\",z),function(e){const n=r.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),r.remove(e)}(n),n.isVideoTexture&&A.delete(n),a.memory.textures--}function B(e){const n=e.target;n.removeEventListener(\"dispose\",B),function(e){const n=e.texture,i=r.get(e),o=r.get(n);if(!e)return;void 0!==o.__webglTexture&&(t.deleteTexture(o.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(i.__webglFramebuffer[e]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[e]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&t.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer&&t.deleteRenderbuffer(i.__webglColorRenderbuffer),i.__webglDepthRenderbuffer&&t.deleteRenderbuffer(i.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,i=n.length;e<i;e++){const i=r.get(n[e]);i.__webglTexture&&(t.deleteTexture(i.__webglTexture),a.memory.textures--),r.remove(n[e])}r.remove(n),r.remove(e)}(n)}let F=0;function U(t,e){const i=r.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;A.get(t)!==e&&(A.set(t,e),t.update())}(t),t.version>0&&i.__version!==t.version){const n=t.image;if(void 0===n)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\");else{if(!1!==n.complete)return void Y(i,t,e);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.activeTexture(33984+e),n.bindTexture(3553,i.__webglTexture)}function H(e,i){const a=r.get(e);e.version>0&&a.__version!==e.version?function(e,r,i){if(6!==r.image.length)return;W(e,r),n.activeTexture(33984+i),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const a=r&&(r.isCompressedTexture||r.image[0].isCompressedTexture),l=r.image[0]&&r.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?r.image[t].image:r.image[t]:R(r.image[t],!1,!0,c);const u=h[0],d=D(u)||s,p=o.convert(r.format),f=o.convert(r.type),m=O(r.internalFormat,p,f);let g;if(j(34067,r,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e<g.length;e++){const i=g[e];r.format!==S&&r.format!==M?null!==p?n.compressedTexImage2D(34069+t,e,m,i.width,i.height,0,i.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):n.texImage2D(34069+t,e,m,i.width,i.height,0,p,f,i.data)}}e.__maxMipLevel=g.length-1}else{g=r.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,m,h[t].width,h[t].height,0,p,f,h[t].data);for(let e=0;e<g.length;e++){const r=g[e].image[t].image;n.texImage2D(34069+t,e+1,m,r.width,r.height,0,p,f,r.data)}}else{n.texImage2D(34069+t,0,m,p,f,h[t]);for(let e=0;e<g.length;e++){const r=g[e];n.texImage2D(34069+t,e+1,m,p,f,r.image[t])}}e.__maxMipLevel=g.length}I(r,d)&&N(34067,r,u.width,u.height);e.__version=r.version,r.onUpdate&&r.onUpdate(r)}(a,e,i):(n.activeTexture(33984+i),n.bindTexture(34067,a.__webglTexture))}const V={[u]:10497,[d]:33071,[p]:33648},G={[f]:9728,1004:9984,1005:9986,[m]:9729,1007:9985,[g]:9987};function j(n,o,a){if(a?(t.texParameteri(n,10242,V[o.wrapS]),t.texParameteri(n,10243,V[o.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,V[o.wrapR]),t.texParameteri(n,10240,G[o.magFilter]),t.texParameteri(n,10241,G[o.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),o.wrapS===d&&o.wrapT===d||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\"),t.texParameteri(n,10240,k(o.magFilter)),t.texParameteri(n,10241,k(o.minFilter)),o.minFilter!==f&&o.minFilter!==m&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\")),!0===e.has(\"EXT_texture_filter_anisotropic\")){const a=e.get(\"EXT_texture_filter_anisotropic\");if(o.type===_&&!1===e.has(\"OES_texture_float_linear\"))return;if(!1===s&&o.type===b&&!1===e.has(\"OES_texture_half_float_linear\"))return;(o.anisotropy>1||r.get(o).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,i.getMaxAnisotropy())),r.get(o).__currentAnisotropy=o.anisotropy)}}function W(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",z),e.__webglTexture=t.createTexture(),a.memory.textures++)}function Y(e,r,i){let a=3553;r.isDataTexture2DArray&&(a=35866),r.isDataTexture3D&&(a=32879),W(e,r),n.activeTexture(33984+i),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!s&&(t.wrapS!==d||t.wrapT!==d||t.minFilter!==f&&t.minFilter!==m)}(r)&&!1===D(r.image),c=R(r.image,l,!1,h),u=D(c)||s,p=o.convert(r.format);let g,v=o.convert(r.type),b=O(r.internalFormat,p,v);j(a,r,u);const A=r.mipmaps;if(r.isDepthTexture)b=6402,s?b=r.type===_?36012:r.type===x?33190:r.type===w?35056:33189:r.type===_&&console.error(\"WebGLRenderer: Floating point depth texture requires WebGL2.\"),r.format===E&&6402===b&&r.type!==y&&r.type!==x&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),r.type=y,v=o.convert(r.type)),r.format===T&&6402===b&&(b=34041,r.type!==w&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),r.type=w,v=o.convert(r.type))),n.texImage2D(3553,0,b,c.width,c.height,0,p,v,null);else if(r.isDataTexture)if(A.length>0&&u){for(let t=0,e=A.length;t<e;t++)g=A[t],n.texImage2D(3553,t,b,g.width,g.height,0,p,v,g.data);r.generateMipmaps=!1,e.__maxMipLevel=A.length-1}else n.texImage2D(3553,0,b,c.width,c.height,0,p,v,c.data),e.__maxMipLevel=0;else if(r.isCompressedTexture){for(let t=0,e=A.length;t<e;t++)g=A[t],r.format!==S&&r.format!==M?null!==p?n.compressedTexImage2D(3553,t,b,g.width,g.height,0,g.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):n.texImage2D(3553,t,b,g.width,g.height,0,p,v,g.data);e.__maxMipLevel=A.length-1}else if(r.isDataTexture2DArray)n.texImage3D(35866,0,b,c.width,c.height,c.depth,0,p,v,c.data),e.__maxMipLevel=0;else if(r.isDataTexture3D)n.texImage3D(32879,0,b,c.width,c.height,c.depth,0,p,v,c.data),e.__maxMipLevel=0;else if(A.length>0&&u){for(let t=0,e=A.length;t<e;t++)g=A[t],n.texImage2D(3553,t,b,p,v,g);r.generateMipmaps=!1,e.__maxMipLevel=A.length-1}else n.texImage2D(3553,0,b,p,v,c),e.__maxMipLevel=0;I(r,u)&&N(a,r,c.width,c.height),e.__version=r.version,r.onUpdate&&r.onUpdate(r)}function Z(e,i,a,s,l){const c=o.convert(a.format),h=o.convert(a.type),u=O(a.internalFormat,c,h);32879===l||35866===l?n.texImage3D(l,0,u,i.width,i.height,i.depth,0,c,h,null):n.texImage2D(l,0,u,i.width,i.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,s,l,r.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function J(e,n,r){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let i=33189;if(r){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===_?i=36012:e.type===x&&(i=33190));const r=Q(n);t.renderbufferStorageMultisample(36161,r,i,n.width,n.height)}else t.renderbufferStorage(36161,i,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(r){const e=Q(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,i=o.convert(e.format),a=o.convert(e.type),s=O(e.internalFormat,i,a);if(r){const e=Q(n);t.renderbufferStorageMultisample(36161,e,s,n.width,n.height)}else t.renderbufferStorage(36161,s,n.width,n.height)}t.bindRenderbuffer(36161,null)}function $(e){const i=r.get(e),o=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(o)throw new Error(\"target.depthTexture not supported in Cube render targets\");!function(e,i){if(i&&i.isWebGLCubeRenderTarget)throw new Error(\"Depth Texture with cube render targets is not supported\");if(n.bindFramebuffer(36160,e),!i.depthTexture||!i.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");r.get(i.depthTexture).__webglTexture&&i.depthTexture.image.width===i.width&&i.depthTexture.image.height===i.height||(i.depthTexture.image.width=i.width,i.depthTexture.image.height=i.height,i.depthTexture.needsUpdate=!0),U(i.depthTexture,0);const o=r.get(i.depthTexture).__webglTexture;if(i.depthTexture.format===E)t.framebufferTexture2D(36160,36096,3553,o,0);else{if(i.depthTexture.format!==T)throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(36160,33306,3553,o,0)}}(i.__webglFramebuffer,e)}else if(o){i.__webglDepthbuffer=[];for(let r=0;r<6;r++)n.bindFramebuffer(36160,i.__webglFramebuffer[r]),i.__webglDepthbuffer[r]=t.createRenderbuffer(),J(i.__webglDepthbuffer[r],e,!1)}else n.bindFramebuffer(36160,i.__webglFramebuffer),i.__webglDepthbuffer=t.createRenderbuffer(),J(i.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function Q(t){return s&&t.isWebGLMultisampleRenderTarget?Math.min(v,t.samples):0}let K=!1,tt=!1;this.allocateTextureUnit=function(){const t=F;return t>=l&&console.warn(\"THREE.WebGLTextures: Trying to use \"+t+\" texture units while this GPU supports only \"+l),F+=1,t},this.resetTextureUnits=function(){F=0},this.setTexture2D=U,this.setTexture2DArray=function(t,e){const i=r.get(t);t.version>0&&i.__version!==t.version?Y(i,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,i.__webglTexture))},this.setTexture3D=function(t,e){const i=r.get(t);t.version>0&&i.__version!==t.version?Y(i,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,i.__webglTexture))},this.setTextureCube=H,this.setupRenderTarget=function(e){const l=e.texture,c=r.get(e),h=r.get(l);e.addEventListener(\"dispose\",B),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,a.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,f=l.isDataTexture3D||l.isDataTexture2DArray,m=D(e)||s;if(!s||l.format!==M||l.type!==_&&l.type!==b||(l.format=S,console.warn(\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(i.drawBuffers){const n=e.texture;for(let e=0,i=n.length;e<i;e++){const i=r.get(n[e]);void 0===i.__webglTexture&&(i.__webglTexture=t.createTexture(),a.memory.textures++)}}else console.warn(\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\");else if(p)if(s){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const r=o.convert(l.format),i=o.convert(l.type),a=O(l.internalFormat,r,i),s=Q(e);t.renderbufferStorageMultisample(36161,s,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),J(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\");if(u){n.bindTexture(34067,h.__webglTexture),j(34067,l,m);for(let t=0;t<6;t++)Z(c.__webglFramebuffer[t],e,l,36064,34069+t);I(l,m)&&N(34067,l,e.width,e.height),n.bindTexture(34067,null)}else if(d){const t=e.texture;for(let i=0,o=t.length;i<o;i++){const o=t[i],a=r.get(o);n.bindTexture(3553,a.__webglTexture),j(3553,o,m),Z(c.__webglFramebuffer,e,o,36064+i,3553),I(o,m)&&N(3553,o,e.width,e.height)}n.bindTexture(3553,null)}else{let t=3553;if(f)if(s){t=l.isDataTexture3D?32879:35866}else console.warn(\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\");n.bindTexture(t,h.__webglTexture),j(t,l,m),Z(c.__webglFramebuffer,e,l,36064,t),I(l,m)&&N(t,l,e.width,e.height,e.depth),n.bindTexture(t,null)}e.depthBuffer&&$(e)},this.updateRenderTargetMipmap=function(t){const e=D(t)||s,i=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let o=0,a=i.length;o<a;o++){const a=i[o];if(I(a,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,i=r.get(a).__webglTexture;n.bindTexture(e,i),N(e,a,t.width,t.height),n.bindTexture(e,null)}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(s){const i=e.width,o=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const s=r.get(e);n.bindFramebuffer(36008,s.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,s.__webglFramebuffer),t.blitFramebuffer(0,0,i,o,0,0,i,o,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,s.__webglMultisampledFramebuffer)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===K&&(console.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\"),K=!0),t=t.texture),U(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===tt&&(console.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),tt=!0),t=t.texture),H(t,e)}}function Oi(t,e,n){const r=n.isWebGL2;return{convert:function(t){let n;if(t===v)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===y)return 5123;if(1013===t)return 5124;if(t===x)return 5125;if(t===_)return 5126;if(t===b)return r?5131:(n=e.get(\"OES_texture_half_float\"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===M)return 6407;if(t===S)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===E)return 6402;if(t===T)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(33776===t||33777===t||33778===t||33779===t){if(n=e.get(\"WEBGL_compressed_texture_s3tc\"),null===n)return null;if(33776===t)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===t||35841===t||35842===t||35843===t){if(n=e.get(\"WEBGL_compressed_texture_pvrtc\"),null===n)return null;if(35840===t)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get(\"WEBGL_compressed_texture_etc1\"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((37492===t||37496===t)&&(n=e.get(\"WEBGL_compressed_texture_etc\"),null!==n)){if(37492===t)return n.COMPRESSED_RGB8_ETC2;if(37496===t)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get(\"WEBGL_compressed_texture_astc\"),null!==n?t:null):36492===t?(n=e.get(\"EXT_texture_compression_bptc\"),null!==n?t:null):t===w?r?34042:(n=e.get(\"WEBGL_depth_texture\"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class ki extends gn{constructor(t=[]){super(),this.cameras=t}}ki.prototype.isArrayCamera=!0;class zi extends se{constructor(){super(),this.type=\"Group\"}}zi.prototype.isGroup=!0;const Bi={type:\"move\"};class Fi{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new zi,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new zi,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new ot,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new ot),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new zi,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new ot,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new ot),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:\"disconnected\",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let r=null,i=null,o=null;const a=this._targetRay,s=this._grip,l=this._hand;if(t&&\"visible-blurred\"!==e.session.visibilityState)if(null!==a&&(r=e.getPose(t.targetRaySpace,n),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Bi))),l&&t.hand){o=!0;for(const r of t.hand.values()){const t=e.getJointPose(r,n);if(void 0===l.joints[r.jointName]){const t=new zi;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[r.jointName]=t,l.add(t)}const i=l.joints[r.jointName];null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.jointRadius=t.radius),i.visible=null!==t}const r=l.joints[\"index-finger-tip\"],i=l.joints[\"thumb-tip\"],a=r.position.distanceTo(i.position),s=.02,c=.005;l.inputState.pinching&&a>s+c?(l.inputState.pinching=!1,this.dispatchEvent({type:\"pinchend\",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=s-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:\"pinchstart\",handedness:t.handedness,target:this}))}else null!==s&&t.gripSpace&&(i=e.getPose(t.gripSpace,n),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==r),null!==s&&(s.visible=null!==i),null!==l&&(l.visible=null!==o),this}}class Ui extends F{constructor(t,e){super();const n=this,r=t.state;let i=null,o=1,a=null,s=\"local-floor\",l=null,c=null,h=null,u=null;const d=[],p=new Map,f=new gn;f.layers.enable(1),f.viewport=new et;const m=new gn;m.layers.enable(2),m.viewport=new et;const g=[f,m],v=new ki;v.layers.enable(1),v.layers.enable(2);let y=null,x=null;function _(t){const e=p.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function b(){p.forEach((function(t,e){t.disconnect(e)})),p.clear(),y=null,x=null,r.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),A.stop(),n.isPresenting=!1,n.dispatchEvent({type:\"sessionend\"})}function w(t){const e=i.inputSources;for(let t=0;t<d.length;t++)p.set(e[t],d[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],r=p.get(n);r&&(r.dispatchEvent({type:\"disconnected\",data:n}),p.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],r=p.get(n);r&&r.dispatchEvent({type:\"connected\",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=d[t];return void 0===e&&(e=new Fi,d[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=d[t];return void 0===e&&(e=new Fi,d[t]=e),e.getGripSpace()},this.getHand=function(t){let e=d[t];return void 0===e&&(e=new Fi,d[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){o=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")},this.setReferenceSpaceType=function(t){s=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")},this.getReferenceSpace=function(){return a},this.getSession=function(){return i},this.setSession=async function(t){if(i=t,null!==i){i.addEventListener(\"select\",_),i.addEventListener(\"selectstart\",_),i.addEventListener(\"selectend\",_),i.addEventListener(\"squeeze\",_),i.addEventListener(\"squeezestart\",_),i.addEventListener(\"squeezeend\",_),i.addEventListener(\"end\",b),i.addEventListener(\"inputsourceschange\",w);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:o},r=new XRWebGLLayer(i,e,n);i.updateRenderState({baseLayer:r})}else{let n=0;t.depth&&(n=t.stencil?34041:6402);const r={colorFormat:t.alpha?6408:6407,depthFormat:n,scaleFactor:o};c=new XRWebGLBinding(i,e),u=c.createProjectionLayer(r),h=e.createFramebuffer(),i.updateRenderState({layers:[u]})}a=await i.requestReferenceSpace(s),A.setContext(i),A.start(),n.isPresenting=!0,n.dispatchEvent({type:\"sessionstart\"})}};const M=new ot,S=new ot;function E(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;v.near=m.near=f.near=t.near,v.far=m.far=f.far=t.far,y===v.near&&x===v.far||(i.updateRenderState({depthNear:v.near,depthFar:v.far}),y=v.near,x=v.far);const e=t.parent,n=v.cameras;E(v,e);for(let t=0;t<n.length;t++)E(n[t],e);v.matrixWorld.decompose(v.position,v.quaternion,v.scale),t.position.copy(v.position),t.quaternion.copy(v.quaternion),t.scale.copy(v.scale),t.matrix.copy(v.matrix),t.matrixWorld.copy(v.matrixWorld);const r=t.children;for(let t=0,e=r.length;t<e;t++)r[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){M.setFromMatrixPosition(e.matrixWorld),S.setFromMatrixPosition(n.matrixWorld);const r=M.distanceTo(S),i=e.projectionMatrix.elements,o=n.projectionMatrix.elements,a=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],c=(i[9]-1)/i[5],h=(i[8]-1)/i[0],u=(o[8]+1)/o[0],d=a*h,p=a*u,f=r/(-h+u),m=f*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f,v=s+f,y=d-m,x=p+(r-m),_=l*s/v*g,b=c*s/v*g;t.projectionMatrix.makePerspective(y,x,_,b,g,v)}(v,f,m):v.projectionMatrix.copy(f.projectionMatrix)},this.getCamera=function(){return v};let T=null;const A=new Ln;A.setAnimationLoop((function(t,n){if(l=n.getViewerPose(a),null!==l){const t=l.views,n=i.renderState.baseLayer;void 0===i.renderState.layers&&r.bindXRFramebuffer(n.framebuffer);let o=!1;t.length!==v.cameras.length&&(v.cameras.length=0,o=!0);for(let a=0;a<t.length;a++){const s=t[a];let l=null;if(void 0===i.renderState.layers)l=n.getViewport(s);else{const t=c.getViewSubImage(u,s);r.bindXRFramebuffer(h),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,36096,3553,t.depthStencilTexture,0),l=t.viewport}const d=g[a];d.matrix.fromArray(s.transform.matrix),d.projectionMatrix.fromArray(s.projectionMatrix),d.viewport.set(l.x,l.y,l.width,l.height),0===a&&v.matrix.copy(d.matrix),!0===o&&v.cameras.push(d)}}const o=i.inputSources;for(let t=0;t<d.length;t++){const e=d[t],r=o[t];e.update(r,n,a)}T&&T(t,n)})),this.setAnimationLoop=function(t){T=t},this.dispose=function(){}}}function Hi(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const r=t.get(n).envMap;if(r){e.envMap.value=r,e.flipEnvMap.value=r.isCubeTexture&&r._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const i=t.get(r).__maxMipLevel;void 0!==i&&(e.maxMipLevel.value=i)}let i,o;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?i=n.map:n.specularMap?i=n.specularMap:n.displacementMap?i=n.displacementMap:n.normalMap?i=n.normalMap:n.bumpMap?i=n.bumpMap:n.roughnessMap?i=n.roughnessMap:n.metalnessMap?i=n.metalnessMap:n.alphaMap?i=n.alphaMap:n.emissiveMap?i=n.emissiveMap:n.clearcoatMap?i=n.clearcoatMap:n.clearcoatNormalMap?i=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(i=n.clearcoatRoughnessMap),void 0!==i&&(i.isWebGLRenderTarget&&(i=i.texture),!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix)),n.aoMap?o=n.aoMap:n.lightMap&&(o=n.lightMap),void 0!==o&&(o.isWebGLRenderTarget&&(o=o.texture),!0===o.matrixAutoUpdate&&o.updateMatrix(),e.uv2Transform.value.copy(o.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,r,i,o,a){r.isMeshBasicMaterial?e(t,r):r.isMeshLambertMaterial?(e(t,r),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,r)):r.isMeshToonMaterial?(e(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshPhongMaterial?(e(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshStandardMaterial?(e(t,r),r.isMeshPhysicalMaterial?function(t,e,r){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen);e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap);e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap);e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate());t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap);e.transmission>0&&(t.transmissionSamplerMap.value=r.texture,t.transmissionSamplerSize.value.set(r.width,r.height));t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap);t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)}(t,r,a):n(t,r)):r.isMeshMatcapMaterial?(e(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshDepthMaterial?(e(t,r),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshDistanceMaterial?(e(t,r),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,r)):r.isMeshNormalMaterial?(e(t,r),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,n,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*r,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let i;e.map?i=e.map:e.alphaMap&&(i=e.alphaMap);void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),t.uvTransform.value.copy(i.matrix))}(t,r,i,o):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Vi(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");return t.style.display=\"block\",t}(),n=void 0!==t.context?t.context:null,r=void 0!==t.alpha&&t.alpha,i=void 0===t.depth||t.depth,o=void 0===t.stencil||t.stencil,a=void 0!==t.antialias&&t.antialias,s=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:\"default\",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let u=null,p=null;const m=[],y=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=N,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const x=this;let w=!1,M=0,E=0,T=null,A=-1,L=null;const C=new et,P=new et;let R=null,D=e.width,I=e.height,O=1,k=null,z=null;const B=new et(0,0,D,I),F=new et(0,0,D,I);let U=!1;const H=[],V=new An;let G=!1,j=!1,W=null;const q=new kt,X=new ot,Y={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Z(){return null===T?O:1}let J,$,Q,K,tt,it,at,st,lt,ct,ht,ut,dt,pt,ft,mt,gt,vt,yt,xt,_t,bt,wt=n;function Mt(t,n){for(let r=0;r<t.length;r++){const i=t[r],o=e.getContext(i,n);if(null!==o)return o}return null}try{const t={alpha:r,depth:i,stencil:o,antialias:a,premultipliedAlpha:s,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener(\"webglcontextlost\",Tt,!1),e.addEventListener(\"webglcontextrestored\",At,!1),null===wt){const e=[\"webgl2\",\"webgl\",\"experimental-webgl\"];if(!0===x.isWebGL1Renderer&&e.shift(),wt=Mt(e,t),null===wt)throw Mt(e)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}void 0===wt.getShaderPrecisionFormat&&(wt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error(\"THREE.WebGLRenderer: \"+t.message),t}function St(){J=new Un(wt),$=new zn(wt,J,t),J.init($),_t=new Oi(wt,J,$),Q=new Ii(wt,J,$),H[0]=1029,K=new Gn(wt),tt=new xi,it=new Ni(wt,J,Q,tt,$,_t,K),at=new Fn(x),st=new Cn(wt,$),bt=new On(wt,J,st,$),lt=new Hn(wt,st,K,bt),ct=new Xn(wt,lt,st,K),vt=new qn(wt),ft=new Bn(tt),ht=new yi(x,at,J,$,bt,ft),ut=new Hi(tt),dt=new Mi(tt),pt=new Ci(J,$),gt=new Nn(x,at,Q,ct,s),mt=new Di(x,ct,$),yt=new kn(wt,J,K,$),xt=new Vn(wt,J,K,$),K.programs=ht.programs,x.capabilities=$,x.extensions=J,x.properties=tt,x.renderLists=dt,x.shadowMap=mt,x.state=Q,x.info=K}St();const Et=new Ui(x,wt);function Tt(t){t.preventDefault(),console.log(\"THREE.WebGLRenderer: Context Lost.\"),w=!0}function At(){console.log(\"THREE.WebGLRenderer: Context Restored.\"),w=!1;const t=K.autoReset,e=mt.enabled,n=mt.autoUpdate,r=mt.needsUpdate,i=mt.type;St(),K.autoReset=t,mt.enabled=e,mt.autoUpdate=n,mt.needsUpdate=r,mt.type=i}function Lt(t){const e=t.target;e.removeEventListener(\"dispose\",Lt),function(t){(function(t){const e=tt.get(t).programs;void 0!==e&&e.forEach((function(t){ht.releaseProgram(t)}))})(t),tt.remove(t)}(e)}this.xr=Et,this.getContext=function(){return wt},this.getContextAttributes=function(){return wt.getContextAttributes()},this.forceContextLoss=function(){const t=J.get(\"WEBGL_lose_context\");t&&t.loseContext()},this.forceContextRestore=function(){const t=J.get(\"WEBGL_lose_context\");t&&t.restoreContext()},this.getPixelRatio=function(){return O},this.setPixelRatio=function(t){void 0!==t&&(O=t,this.setSize(D,I,!1))},this.getSize=function(t){return t.set(D,I)},this.setSize=function(t,n,r){Et.isPresenting?console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\"):(D=t,I=n,e.width=Math.floor(t*O),e.height=Math.floor(n*O),!1!==r&&(e.style.width=t+\"px\",e.style.height=n+\"px\"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(D*O,I*O).floor()},this.setDrawingBufferSize=function(t,n,r){D=t,I=n,O=r,e.width=Math.floor(t*r),e.height=Math.floor(n*r),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(C)},this.getViewport=function(t){return t.copy(B)},this.setViewport=function(t,e,n,r){t.isVector4?B.set(t.x,t.y,t.z,t.w):B.set(t,e,n,r),Q.viewport(C.copy(B).multiplyScalar(O).floor())},this.getScissor=function(t){return t.copy(F)},this.setScissor=function(t,e,n,r){t.isVector4?F.set(t.x,t.y,t.z,t.w):F.set(t,e,n,r),Q.scissor(P.copy(F).multiplyScalar(O).floor())},this.getScissorTest=function(){return U},this.setScissorTest=function(t){Q.setScissorTest(U=t)},this.setOpaqueSort=function(t){k=t},this.setTransparentSort=function(t){z=t},this.getClearColor=function(t){return t.copy(gt.getClearColor())},this.setClearColor=function(){gt.setClearColor.apply(gt,arguments)},this.getClearAlpha=function(){return gt.getClearAlpha()},this.setClearAlpha=function(){gt.setClearAlpha.apply(gt,arguments)},this.clear=function(t,e,n){let r=0;(void 0===t||t)&&(r|=16384),(void 0===e||e)&&(r|=256),(void 0===n||n)&&(r|=1024),wt.clear(r)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(\"webglcontextlost\",Tt,!1),e.removeEventListener(\"webglcontextrestored\",At,!1),dt.dispose(),pt.dispose(),tt.dispose(),at.dispose(),ct.dispose(),bt.dispose(),Et.dispose(),Et.removeEventListener(\"sessionstart\",Pt),Et.removeEventListener(\"sessionend\",Rt),W&&(W.dispose(),W=null),Dt.stop()},this.renderBufferImmediate=function(t,e){bt.initAttributes();const n=tt.get(t);t.hasPositions&&!n.position&&(n.position=wt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=wt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=wt.createBuffer()),t.hasColors&&!n.color&&(n.color=wt.createBuffer());const r=e.getAttributes();t.hasPositions&&(wt.bindBuffer(34962,n.position),wt.bufferData(34962,t.positionArray,35048),bt.enableAttribute(r.position),wt.vertexAttribPointer(r.position,3,5126,!1,0,0)),t.hasNormals&&(wt.bindBuffer(34962,n.normal),wt.bufferData(34962,t.normalArray,35048),bt.enableAttribute(r.normal),wt.vertexAttribPointer(r.normal,3,5126,!1,0,0)),t.hasUvs&&(wt.bindBuffer(34962,n.uv),wt.bufferData(34962,t.uvArray,35048),bt.enableAttribute(r.uv),wt.vertexAttribPointer(r.uv,2,5126,!1,0,0)),t.hasColors&&(wt.bindBuffer(34962,n.color),wt.bufferData(34962,t.colorArray,35048),bt.enableAttribute(r.color),wt.vertexAttribPointer(r.color,3,5126,!1,0,0)),bt.disableUnusedAttributes(),wt.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,r,i,o){null===e&&(e=Y);const a=i.isMesh&&i.matrixWorld.determinant()<0,s=Ft(t,e,r,i);Q.setMaterial(r,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===r.wireframe&&(l=lt.getWireframeAttribute(n),u=2),(r.morphTargets||r.morphNormals)&&vt.update(i,n,r,s),bt.setup(i,r,s,n,l);let d=yt;null!==l&&(h=st.get(l),d=xt,d.setIndex(h));const p=null!==l?l.count:c.count,f=n.drawRange.start*u,m=n.drawRange.count*u,g=null!==o?o.start*u:0,v=null!==o?o.count*u:1/0,y=Math.max(f,g),x=Math.min(p,f+m,g+v)-1,_=Math.max(0,x-y+1);if(0!==_){if(i.isMesh)!0===r.wireframe?(Q.setLineWidth(r.wireframeLinewidth*Z()),d.setMode(1)):d.setMode(4);else if(i.isLine){let t=r.linewidth;void 0===t&&(t=1),Q.setLineWidth(t*Z()),i.isLineSegments?d.setMode(1):i.isLineLoop?d.setMode(2):d.setMode(3)}else i.isPoints?d.setMode(0):i.isSprite&&d.setMode(4);if(i.isInstancedMesh)d.renderInstances(y,_,i.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,_,t)}else d.render(y,_)}},this.compile=function(t,e){p=pt.get(t),p.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(p.pushLight(t),t.castShadow&&p.pushShadow(t))})),p.setupLights(),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let r=0;r<n.length;r++){zt(n[r],t,e)}else zt(n,t,e)}))};let Ct=null;function Pt(){Dt.stop()}function Rt(){Dt.start()}const Dt=new Ln;function It(t,e,n,r){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)p.pushLight(t),t.castShadow&&p.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||V.intersectsSprite(t)){r&&X.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q);const e=ct.update(t),i=t.material;i.visible&&u.push(t,e,i,n,X.z,null)}}else if(t.isImmediateRenderObject)r&&X.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q),u.push(t,null,t.material,n,X.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==K.render.frame&&(t.skeleton.update(),t.skeleton.frame=K.render.frame),!t.frustumCulled||V.intersectsObject(t))){r&&X.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q);const e=ct.update(t),i=t.material;if(Array.isArray(i)){const r=e.groups;for(let o=0,a=r.length;o<a;o++){const a=r[o],s=i[a.materialIndex];s&&s.visible&&u.push(t,e,s,n,X.z,a)}}else i.visible&&u.push(t,e,i,n,X.z,null)}const i=t.children;for(let t=0,o=i.length;t<o;t++)It(i[t],e,n,r)}function Nt(t,e,n){const r=!0===e.isScene?e.overrideMaterial:null;for(let i=0,o=t.length;i<o;i++){const o=t[i],a=o.object,s=o.geometry,l=null===r?o.material:r,c=o.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,r=t.length;n<r;n++){const r=t[n];a.layers.test(r.layers)&&(Q.viewport(C.copy(r.viewport)),p.setupLightsView(r),Ot(a,e,r,s,l,c))}}else Ot(a,e,n,s,l,c)}}function Ot(t,e,n,r,i,o){if(t.onBeforeRender(x,e,n,r,i,o),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const r=Ft(n,e,i,t);Q.setMaterial(i),bt.reset(),function(t,e){t.render((function(t){x.renderBufferImmediate(t,e)}))}(t,r)}else!0===i.transparent&&2===i.side?(i.side=1,i.needsUpdate=!0,x.renderBufferDirect(n,e,r,i,t,o),i.side=0,i.needsUpdate=!0,x.renderBufferDirect(n,e,r,i,t,o),i.side=2):x.renderBufferDirect(n,e,r,i,t,o);t.onAfterRender(x,e,n,r,i,o)}function zt(t,e,n){!0!==e.isScene&&(e=Y);const r=tt.get(t),i=p.state.lights,o=p.state.shadowsArray,a=i.state.version,s=ht.getParameters(t,i.state,o,e,n),l=ht.getProgramCacheKey(s);let c=r.programs;r.environment=t.isMeshStandardMaterial?e.environment:null,r.fog=e.fog,r.envMap=at.get(t.envMap||r.environment),void 0===c&&(t.addEventListener(\"dispose\",Lt),c=new Map,r.programs=c);let h=c.get(l);if(void 0!==h){if(r.currentProgram===h&&r.lightsStateVersion===a)return Bt(t,s),h}else s.uniforms=ht.getUniforms(t),t.onBuild(s,x),t.onBeforeCompile(s,x),h=ht.acquireProgram(s,l),c.set(l,h),r.uniforms=s.uniforms;const u=r.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ft.uniform),Bt(t,s),r.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),r.lightsStateVersion=a,r.needsLights&&(u.ambientLightColor.value=i.state.ambient,u.lightProbe.value=i.state.probe,u.directionalLights.value=i.state.directional,u.directionalLightShadows.value=i.state.directionalShadow,u.spotLights.value=i.state.spot,u.spotLightShadows.value=i.state.spotShadow,u.rectAreaLights.value=i.state.rectArea,u.ltc_1.value=i.state.rectAreaLTC1,u.ltc_2.value=i.state.rectAreaLTC2,u.pointLights.value=i.state.point,u.pointLightShadows.value=i.state.pointShadow,u.hemisphereLights.value=i.state.hemi,u.directionalShadowMap.value=i.state.directionalShadowMap,u.directionalShadowMatrix.value=i.state.directionalShadowMatrix,u.spotShadowMap.value=i.state.spotShadowMap,u.spotShadowMatrix.value=i.state.spotShadowMatrix,u.pointShadowMap.value=i.state.pointShadowMap,u.pointShadowMatrix.value=i.state.pointShadowMatrix);const d=h.getUniforms(),f=$r.seqWithValue(d.seq,u);return r.currentProgram=h,r.uniformsList=f,h}function Bt(t,e){const n=tt.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas}function Ft(t,e,n,r){!0!==e.isScene&&(e=Y),it.resetTextureUnits();const i=e.fog,o=n.isMeshStandardMaterial?e.environment:null,a=null===T?x.outputEncoding:T.texture.encoding,s=at.get(n.envMap||o),l=!0===n.vertexColors&&r.geometry&&r.geometry.attributes.color&&4===r.geometry.attributes.color.itemSize,c=tt.get(n),h=p.state.lights;if(!0===G&&(!0===j||t!==L)){const e=t===L&&n.id===A;ft.setState(n,t,e)}let u=!1;n.version===c.__version?c.needsLights&&c.lightsStateVersion!==h.state.version||c.outputEncoding!==a||r.isInstancedMesh&&!1===c.instancing?u=!0:r.isInstancedMesh||!0!==c.instancing?r.isSkinnedMesh&&!1===c.skinning?u=!0:r.isSkinnedMesh||!0!==c.skinning?c.envMap!==s||n.fog&&c.fog!==i?u=!0:void 0===c.numClippingPlanes||c.numClippingPlanes===ft.numPlanes&&c.numIntersection===ft.numIntersection?c.vertexAlphas!==l&&(u=!0):u=!0:u=!0:u=!0:(u=!0,c.__version=n.version);let d=c.currentProgram;!0===u&&(d=zt(n,e,r));let f=!1,m=!1,g=!1;const v=d.getUniforms(),y=c.uniforms;if(Q.useProgram(d.program)&&(f=!0,m=!0,g=!0),n.id!==A&&(A=n.id,m=!0),f||L!==t){if(v.setValue(wt,\"projectionMatrix\",t.projectionMatrix),$.logarithmicDepthBuffer&&v.setValue(wt,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),L!==t&&(L=t,m=!0,g=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=v.map.cameraPosition;void 0!==e&&e.setValue(wt,X.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&v.setValue(wt,\"isOrthographic\",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||r.isSkinnedMesh)&&v.setValue(wt,\"viewMatrix\",t.matrixWorldInverse)}if(r.isSkinnedMesh){v.setOptional(wt,r,\"bindMatrix\"),v.setOptional(wt,r,\"bindMatrixInverse\");const t=r.skeleton;t&&($.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),v.setValue(wt,\"boneTexture\",t.boneTexture,it),v.setValue(wt,\"boneTextureSize\",t.boneTextureSize)):v.setOptional(wt,t,\"boneMatrices\"))}var _,b;return(m||c.receiveShadow!==r.receiveShadow)&&(c.receiveShadow=r.receiveShadow,v.setValue(wt,\"receiveShadow\",r.receiveShadow)),m&&(v.setValue(wt,\"toneMappingExposure\",x.toneMappingExposure),c.needsLights&&(b=g,(_=y).ambientLightColor.needsUpdate=b,_.lightProbe.needsUpdate=b,_.directionalLights.needsUpdate=b,_.directionalLightShadows.needsUpdate=b,_.pointLights.needsUpdate=b,_.pointLightShadows.needsUpdate=b,_.spotLights.needsUpdate=b,_.spotLightShadows.needsUpdate=b,_.rectAreaLights.needsUpdate=b,_.hemisphereLights.needsUpdate=b),i&&n.fog&&ut.refreshFogUniforms(y,i),ut.refreshMaterialUniforms(y,n,O,I,W),$r.upload(wt,c.uniformsList,y,it)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&($r.upload(wt,c.uniformsList,y,it),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&v.setValue(wt,\"center\",r.center),v.setValue(wt,\"modelViewMatrix\",r.modelViewMatrix),v.setValue(wt,\"normalMatrix\",r.normalMatrix),v.setValue(wt,\"modelMatrix\",r.matrixWorld),d}Dt.setAnimationLoop((function(t){Ct&&Ct(t)})),\"undefined\"!=typeof window&&Dt.setContext(window),this.setAnimationLoop=function(t){Ct=t,Et.setAnimationLoop(t),null===t?Dt.stop():Dt.start()},Et.addEventListener(\"sessionstart\",Pt),Et.addEventListener(\"sessionend\",Rt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");if(!0===w)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===Et.enabled&&!0===Et.isPresenting&&(!0===Et.cameraAutoUpdate&&Et.updateCamera(e),e=Et.getCamera()),!0===t.isScene&&t.onBeforeRender(x,t,e,T),p=pt.get(t,y.length),p.init(),y.push(p),q.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),V.setFromProjectionMatrix(q),j=this.localClippingEnabled,G=ft.init(this.clippingPlanes,j,e),u=dt.get(t,m.length),u.init(),m.push(u),It(t,e,0,x.sortObjects),u.finish(),!0===x.sortObjects&&u.sort(k,z),!0===G&&ft.beginShadows();const n=p.state.shadowsArray;mt.render(n,t,e),p.setupLights(),p.setupLightsView(e),!0===G&&ft.endShadows(),!0===this.info.autoReset&&this.info.reset(),gt.render(u,t);const r=u.opaque,i=u.transmissive,o=u.transparent;r.length>0&&Nt(r,t,e),i.length>0&&function(t,e,n,r){if(null===W){const t=!0===a&&!0===$.isWebGL2;W=new(t?rt:nt)(1024,1024,{generateMipmaps:!0,type:null!==_t.convert(b)?b:v,minFilter:g,magFilter:f,wrapS:d,wrapT:d})}const i=x.getRenderTarget();x.setRenderTarget(W),x.clear();const o=x.toneMapping;x.toneMapping=0,Nt(t,n,r),x.toneMapping=o,it.updateMultisampleRenderTarget(W),it.updateRenderTargetMipmap(W),x.setRenderTarget(i),Nt(e,n,r)}(r,i,t,e),o.length>0&&Nt(o,t,e),null!==T&&(it.updateMultisampleRenderTarget(T),it.updateRenderTargetMipmap(T)),!0===t.isScene&&t.onAfterRender(x,t,e),Q.buffers.depth.setTest(!0),Q.buffers.depth.setMask(!0),Q.buffers.color.setMask(!0),Q.setPolygonOffset(!1),bt.resetDefaultState(),A=-1,L=null,y.pop(),p=y.length>0?y[y.length-1]:null,m.pop(),u=m.length>0?m[m.length-1]:null},this.getActiveCubeFace=function(){return M},this.getActiveMipmapLevel=function(){return E},this.getRenderTarget=function(){return T},this.setRenderTarget=function(t,e=0,n=0){T=t,M=e,E=n,t&&void 0===tt.get(t).__webglFramebuffer&&it.setupRenderTarget(t);let r=null,i=!1,o=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(o=!0);const a=tt.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=a[e],i=!0):r=t.isWebGLMultisampleRenderTarget?tt.get(t).__webglMultisampledFramebuffer:a,C.copy(t.viewport),P.copy(t.scissor),R=t.scissorTest}else C.copy(B).multiplyScalar(O).floor(),P.copy(F).multiplyScalar(O).floor(),R=U;if(Q.bindFramebuffer(36160,r)&&$.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(H.length!==n.length||36064!==H[0]){for(let t=0,e=n.length;t<e;t++)H[t]=36064+t;H.length=n.length,e=!0}}else 1===H.length&&36064===H[0]||(H[0]=36064,H.length=1,e=!0);else 1===H.length&&1029===H[0]||(H[0]=1029,H.length=1,e=!0);e&&($.isWebGL2?wt.drawBuffers(H):J.get(\"WEBGL_draw_buffers\").drawBuffersWEBGL(H))}if(Q.viewport(C),Q.scissor(P),Q.setScissorTest(R),i){const r=tt.get(t.texture);wt.framebufferTexture2D(36160,36064,34069+e,r.__webglTexture,n)}else if(o){const r=tt.get(t.texture),i=e||0;wt.framebufferTextureLayer(36160,36064,r.__webglTexture,n||0,i)}},this.readRenderTargetPixels=function(t,e,n,r,i,o,a){if(!t||!t.isWebGLRenderTarget)return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let s=tt.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(s=s[a]),s){Q.bindFramebuffer(36160,s);try{const a=t.texture,s=a.format,l=a.type;if(s!==S&&_t.convert(s)!==wt.getParameter(35739))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");const c=l===b&&(J.has(\"EXT_color_buffer_half_float\")||$.isWebGL2&&J.has(\"EXT_color_buffer_float\"));if(!(l===v||_t.convert(l)===wt.getParameter(35738)||l===_&&($.isWebGL2||J.has(\"OES_texture_float\")||J.has(\"WEBGL_color_buffer_float\"))||c))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");36053===wt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-r&&n>=0&&n<=t.height-i&&wt.readPixels(e,n,r,i,_t.convert(s),_t.convert(l),o):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{const t=null!==T?tt.get(T).__webglFramebuffer:null;Q.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const r=Math.pow(2,-n),i=Math.floor(e.image.width*r),o=Math.floor(e.image.height*r);let a=_t.convert(e.format);$.isWebGL2&&(6407===a&&(a=32849),6408===a&&(a=32856)),it.setTexture2D(e,0),wt.copyTexImage2D(3553,n,a,t.x,t.y,i,o,0),Q.unbindTexture()},this.copyTextureToTexture=function(t,e,n,r=0){const i=e.image.width,o=e.image.height,a=_t.convert(n.format),s=_t.convert(n.type);it.setTexture2D(n,0),wt.pixelStorei(37440,n.flipY),wt.pixelStorei(37441,n.premultiplyAlpha),wt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?wt.texSubImage2D(3553,r,t.x,t.y,i,o,a,s,e.image.data):e.isCompressedTexture?wt.compressedTexSubImage2D(3553,r,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):wt.texSubImage2D(3553,r,t.x,t.y,a,s,e.image),0===r&&n.generateMipmaps&&wt.generateMipmap(3553),Q.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,r,i=0){if(x.isWebGL1Renderer)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\");const o=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,s=t.max.z-t.min.z+1,l=_t.convert(r.format),c=_t.convert(r.type);let h;if(r.isDataTexture3D)it.setTexture3D(r,0),h=32879;else{if(!r.isDataTexture2DArray)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");it.setTexture2DArray(r,0),h=35866}wt.pixelStorei(37440,r.flipY),wt.pixelStorei(37441,r.premultiplyAlpha),wt.pixelStorei(3317,r.unpackAlignment);const u=wt.getParameter(3314),d=wt.getParameter(32878),p=wt.getParameter(3316),f=wt.getParameter(3315),m=wt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;wt.pixelStorei(3314,g.width),wt.pixelStorei(32878,g.height),wt.pixelStorei(3316,t.min.x),wt.pixelStorei(3315,t.min.y),wt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?wt.texSubImage3D(h,i,e.x,e.y,e.z,o,a,s,l,c,g.data):n.isCompressedTexture?(console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\"),wt.compressedTexSubImage3D(h,i,e.x,e.y,e.z,o,a,s,l,g.data)):wt.texSubImage3D(h,i,e.x,e.y,e.z,o,a,s,l,c,g),wt.pixelStorei(3314,u),wt.pixelStorei(32878,d),wt.pixelStorei(3316,p),wt.pixelStorei(3315,f),wt.pixelStorei(32877,m),0===i&&r.generateMipmaps&&wt.generateMipmap(h),Q.unbindTexture()},this.initTexture=function(t){it.setTexture2D(t,0),Q.unbindTexture()},this.resetState=function(){M=0,E=0,T=null,Q.reset(),bt.reset()},\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}(class extends Vi{}).prototype.isWebGL1Renderer=!0;class Gi extends se{constructor(){super(),this.type=\"Scene\",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Gi.prototype.isScene=!0;class ji{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=k,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=G()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,i=this.stride;r<i;r++)this.array[t+r]=e.array[n+r];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=G()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=G()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}ji.prototype.isInterleavedBuffer=!0;const Wi=new ot;class qi{constructor(t,e,n,r=!1){this.name=\"\",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===r}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)Wi.x=this.getX(e),Wi.y=this.getY(e),Wi.z=this.getZ(e),Wi.applyMatrix4(t),this.setXYZ(e,Wi.x,Wi.y,Wi.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)Wi.x=this.getX(e),Wi.y=this.getY(e),Wi.z=this.getZ(e),Wi.applyNormalMatrix(t),this.setXYZ(e,Wi.x,Wi.y,Wi.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)Wi.x=this.getX(e),Wi.y=this.getY(e),Wi.z=this.getZ(e),Wi.transformDirection(t),this.setXYZ(e,Wi.x,Wi.y,Wi.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=r,this}setXYZW(t,e,n,r,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=r,this.data.array[t+3]=i,this}clone(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new Re(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new qi(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}qi.prototype.isInterleavedBufferAttribute=!0;class Xi extends _e{constructor(t){super(),this.type=\"SpriteMaterial\",this.color=new Ae(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let Yi;Xi.prototype.isSpriteMaterial=!0;const Zi=new ot,Ji=new ot,$i=new ot,Qi=new Y,Ki=new Y,to=new kt,eo=new ot,no=new ot,ro=new ot,io=new Y,oo=new Y,ao=new Y;function so(t,e,n,r,i,o){Qi.subVectors(t,n).addScalar(.5).multiply(r),void 0!==i?(Ki.x=o*Qi.x-i*Qi.y,Ki.y=i*Qi.x+o*Qi.y):Ki.copy(Qi),t.copy(e),t.x+=Ki.x,t.y+=Ki.y,t.applyMatrix4(to)}(class extends se{constructor(t){if(super(),this.type=\"Sprite\",void 0===Yi){Yi=new Ge;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new ji(t,5);Yi.setIndex([0,1,2,0,2,3]),Yi.setAttribute(\"position\",new qi(e,3,0,!1)),Yi.setAttribute(\"uv\",new qi(e,2,3,!1))}this.geometry=Yi,this.material=void 0!==t?t:new Xi,this.center=new Y(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.'),Ji.setFromMatrixScale(this.matrixWorld),to.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),$i.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Ji.multiplyScalar(-$i.z);const n=this.material.rotation;let r,i;0!==n&&(i=Math.cos(n),r=Math.sin(n));const o=this.center;so(eo.set(-.5,-.5,0),$i,o,Ji,r,i),so(no.set(.5,-.5,0),$i,o,Ji,r,i),so(ro.set(.5,.5,0),$i,o,Ji,r,i),io.set(0,0),oo.set(1,0),ao.set(1,1);let a=t.ray.intersectTriangle(eo,no,ro,!1,Zi);if(null===a&&(so(no.set(-.5,.5,0),$i,o,Ji,r,i),oo.set(0,1),a=t.ray.intersectTriangle(eo,ro,no,!1,Zi),null===a))return;const s=t.ray.origin.distanceTo(Zi);s<t.near||s>t.far||e.push({distance:s,point:Zi.clone(),uv:ye.getUV(Zi,eo,no,ro,io,oo,ao,new Y),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}).prototype.isSprite=!0;const lo=new ot,co=new et,ho=new et,uo=new ot,po=new kt;class fo extends ln{constructor(t,e){super(t,e),this.type=\"SkinnedMesh\",this.bindMode=\"attached\",this.bindMatrix=new kt,this.bindMatrixInverse=new kt}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new et,e=this.geometry.attributes.skinWeight;for(let n=0,r=e.count;n<r;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const r=1/t.manhattanLength();r!==1/0?t.multiplyScalar(r):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\"attached\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\"detached\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}boneTransform(t,e){const n=this.skeleton,r=this.geometry;co.fromBufferAttribute(r.attributes.skinIndex,t),ho.fromBufferAttribute(r.attributes.skinWeight,t),lo.fromBufferAttribute(r.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const r=ho.getComponent(t);if(0!==r){const i=co.getComponent(t);po.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]),e.addScaledVector(uo.copy(lo).applyMatrix4(po),r)}}return e.applyMatrix4(this.bindMatrixInverse)}}fo.prototype.isSkinnedMesh=!0;(class extends se{constructor(){super(),this.type=\"Bone\"}}).prototype.isBone=!0;(class extends K{constructor(t=null,e=1,n=1,r,i,o,a,s,l=1003,c=1003,h,u){super(null,o,a,s,l,c,r,i,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}).prototype.isDataTexture=!0;const mo=new kt,go=new kt,vo=[],yo=new ln;(class extends ln{constructor(t,e,n){super(t,e),this.instanceMatrix=new Re(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,r=this.count;if(yo.geometry=this.geometry,yo.material=this.material,void 0!==yo.material)for(let i=0;i<r;i++){this.getMatrixAt(i,mo),go.multiplyMatrices(n,mo),yo.matrixWorld=go,yo.raycast(t,vo);for(let t=0,n=vo.length;t<n;t++){const n=vo[t];n.instanceId=i,n.object=this,e.push(n)}vo.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new Re(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"})}}).prototype.isInstancedMesh=!0;class xo extends _e{constructor(t){super(),this.type=\"LineBasicMaterial\",this.color=new Ae(16777215),this.linewidth=1,this.linecap=\"round\",this.linejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this}}xo.prototype.isLineBasicMaterial=!0;const _o=new ot,bo=new ot,wo=new kt,Mo=new Ot,So=new At;class Eo extends se{constructor(t=new Ge,e=new xo){super(),this.type=\"Line\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,r=e.count;t<r;t++)_o.fromBufferAttribute(e,t-1),bo.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=_o.distanceTo(bo);t.setAttribute(\"lineDistance\",new Ne(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}raycast(t,e){const n=this.geometry,r=this.matrixWorld,i=t.params.Line.threshold,o=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),So.copy(n.boundingSphere),So.applyMatrix4(r),So.radius+=i,!1===t.ray.intersectsSphere(So))return;wo.copy(r).invert(),Mo.copy(t.ray).applyMatrix4(wo);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3),s=a*a,l=new ot,c=new ot,h=new ot,u=new ot,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const r=n.index,i=n.attributes.position;if(null!==r){for(let n=Math.max(0,o.start),a=Math.min(r.count,o.start+o.count)-1;n<a;n+=d){const o=r.getX(n),a=r.getX(n+1);l.fromBufferAttribute(i,o),c.fromBufferAttribute(i,a);if(Mo.distanceSqToSegment(l,c,u,h)>s)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,o.start),r=Math.min(i.count,o.start+o.count)-1;n<r;n+=d){l.fromBufferAttribute(i,n),c.fromBufferAttribute(i,n+1);if(Mo.distanceSqToSegment(l,c,u,h)>s)continue;u.applyMatrix4(this.matrixWorld);const r=t.ray.origin.distanceTo(u);r<t.near||r>t.far||e.push({distance:r,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}Eo.prototype.isLine=!0;const To=new ot,Ao=new ot;class Lo extends Eo{constructor(t,e){super(t,e),this.type=\"LineSegments\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,r=e.count;t<r;t+=2)To.fromBufferAttribute(e,t),Ao.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+To.distanceTo(Ao);t.setAttribute(\"lineDistance\",new Ne(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}}Lo.prototype.isLineSegments=!0;(class extends Eo{constructor(t,e){super(t,e),this.type=\"LineLoop\"}}).prototype.isLineLoop=!0;class Co extends _e{constructor(t){super(),this.type=\"PointsMaterial\",this.color=new Ae(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this}}Co.prototype.isPointsMaterial=!0;const Po=new kt,Ro=new Ot,Do=new At,Io=new ot;function No(t,e,n,r,i,o,a){const s=Ro.distanceSqToPoint(t);if(s<n){const n=new ot;Ro.closestPointToPoint(t,n),n.applyMatrix4(r);const l=i.ray.origin.distanceTo(n);if(l<i.near||l>i.far)return;o.push({distance:l,distanceToRay:Math.sqrt(s),point:n,index:e,face:null,object:a})}}(class extends se{constructor(t=new Ge,e=new Co){super(),this.type=\"Points\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,r=this.matrixWorld,i=t.params.Points.threshold,o=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),Do.copy(n.boundingSphere),Do.applyMatrix4(r),Do.radius+=i,!1===t.ray.intersectsSphere(Do))return;Po.copy(r).invert(),Ro.copy(t.ray).applyMatrix4(Po);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3),s=a*a;if(n.isBufferGeometry){const i=n.index,a=n.attributes.position;if(null!==i){for(let n=Math.max(0,o.start),l=Math.min(i.count,o.start+o.count);n<l;n++){const o=i.getX(n);Io.fromBufferAttribute(a,o),No(Io,o,s,r,t,e,this)}}else{for(let n=Math.max(0,o.start),i=Math.min(a.count,o.start+o.count);n<i;n++)Io.fromBufferAttribute(a,n),No(Io,n,s,r,t,e,this)}}else console.error(\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}).prototype.isPoints=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l){super(t,e,n,r,i,o,a,s,l),this.format=void 0!==a?a:M,this.minFilter=void 0!==o?o:m,this.magFilter=void 0!==i?i:m,this.generateMipmaps=!1;const c=this;\"requestVideoFrameCallback\"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1===\"requestVideoFrameCallback\"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}).prototype.isVideoTexture=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l,c,h,u){super(null,o,a,s,l,c,r,i,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}).prototype.isCompressedTexture=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l){super(t,e,n,r,i,o,a,s,l),this.needsUpdate=!0}}).prototype.isCanvasTexture=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l,c){if((c=void 0!==c?c:E)!==E&&c!==T)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===n&&c===E&&(n=y),void 0===n&&c===T&&(n=w),super(null,r,i,o,a,s,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:f,this.minFilter=void 0!==s?s:f,this.flipY=!1,this.generateMipmaps=!1}}).prototype.isDepthTexture=!0;class Oo extends Ge{constructor(t=1,e=1,n=1,r=8,i=1,o=!1,a=0,s=2*Math.PI){super(),this.type=\"CylinderGeometry\",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:r,heightSegments:i,openEnded:o,thetaStart:a,thetaLength:s};const l=this;r=Math.floor(r),i=Math.floor(i);const c=[],h=[],u=[],d=[];let p=0;const f=[],m=n/2;let g=0;function v(n){const i=p,o=new Y,f=new ot;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=r;t++)h.push(0,m*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=r;t++){const e=t/r*s+a,n=Math.cos(e),i=Math.sin(e);f.x=y*i,f.y=m*x,f.z=y*n,h.push(f.x,f.y,f.z),u.push(0,x,0),o.x=.5*n+.5,o.y=.5*i*x+.5,d.push(o.x,o.y),p++}for(let t=0;t<r;t++){const e=i+t,r=_+t;!0===n?c.push(r,r+1,e):c.push(r+1,r,e),v+=3}l.addGroup(g,v,!0===n?1:2),g+=v}!function(){const o=new ot,v=new ot;let y=0;const x=(e-t)/n;for(let l=0;l<=i;l++){const c=[],g=l/i,y=g*(e-t)+t;for(let t=0;t<=r;t++){const e=t/r,i=e*s+a,l=Math.sin(i),f=Math.cos(i);v.x=y*l,v.y=-g*n+m,v.z=y*f,h.push(v.x,v.y,v.z),o.set(l,x,f).normalize(),u.push(o.x,o.y,o.z),d.push(e,1-g),c.push(p++)}f.push(c)}for(let t=0;t<r;t++)for(let e=0;e<i;e++){const n=f[e][t],r=f[e+1][t],i=f[e+1][t+1],o=f[e][t+1];c.push(n,r,o),c.push(r,i,o),y+=6}l.addGroup(g,y,0),g+=y}(),!1===o&&(t>0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute(\"position\",new Ne(h,3)),this.setAttribute(\"normal\",new Ne(u,3)),this.setAttribute(\"uv\",new Ne(d,2))}static fromJSON(t){return new Oo(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ko extends Oo{constructor(t=1,e=1,n=8,r=1,i=!1,o=0,a=2*Math.PI){super(0,t,e,n,r,i,o,a),this.type=\"ConeGeometry\",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:o,thetaLength:a}}static fromJSON(t){return new ko(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}new ot,new ot,new ot,new ye;class zo{constructor(){this.type=\"Curve\",this.arcLengthDivisions=200}getPoint(){return console.warn(\"THREE.Curve: .getPoint() not implemented.\"),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),i=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),i+=n.distanceTo(r),e.push(i),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const i=n.length;let o;o=e||t*n[i-1];let a,s=0,l=i-1;for(;s<=l;)if(r=Math.floor(s+(l-s)/2),a=n[r]-o,a<0)s=r+1;else{if(!(a>0)){l=r;break}l=r-1}if(r=l,n[r]===o)return r/(i-1);const c=n[r];return(r+(o-c)/(n[r+1]-c))/(i-1)}getTangent(t,e){const n=1e-4;let r=t-n,i=t+n;r<0&&(r=0),i>1&&(i=1);const o=this.getPoint(r),a=this.getPoint(i),s=e||(o.isVector2?new Y:new ot);return s.copy(a).sub(o).normalize(),s}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new ot,r=[],i=[],o=[],a=new ot,s=new kt;for(let e=0;e<=t;e++){const n=e/t;r[e]=this.getTangentAt(n,new ot),r[e].normalize()}i[0]=new ot,o[0]=new ot;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x),h=Math.abs(r[0].y),u=Math.abs(r[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),i[0].crossVectors(r[0],a),o[0].crossVectors(r[0],i[0]);for(let e=1;e<=t;e++){if(i[e]=i[e-1].clone(),o[e]=o[e-1].clone(),a.crossVectors(r[e-1],r[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(j(r[e-1].dot(r[e]),-1,1));i[e].applyMatrix4(s.makeRotationAxis(a,t))}o[e].crossVectors(r[e],i[e])}if(!0===e){let e=Math.acos(j(i[0].dot(i[t]),-1,1));e/=t,r[0].dot(a.crossVectors(i[0],i[t]))>0&&(e=-e);for(let n=1;n<=t;n++)i[n].applyMatrix4(s.makeRotationAxis(r[n],e*n)),o[n].crossVectors(r[n],i[n])}return{tangents:r,normals:i,binormals:o}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:\"Curve\",generator:\"Curve.toJSON\"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Bo extends zo{constructor(t=0,e=0,n=1,r=1,i=0,o=2*Math.PI,a=!1,s=0){super(),this.type=\"EllipseCurve\",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=a,this.aRotation=s}getPoint(t,e){const n=e||new Y,r=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const o=Math.abs(i)<Number.EPSILON;for(;i<0;)i+=r;for(;i>r;)i-=r;i<Number.EPSILON&&(i=o?0:r),!0!==this.aClockwise||o||(i===r?i=-r:i-=r);const a=this.aStartAngle+t*i;let s=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=s-this.aX,r=l-this.aY;s=n*t-r*e+this.aX,l=n*e+r*t+this.aY}return n.set(s,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}Bo.prototype.isEllipseCurve=!0;class Fo extends Bo{constructor(t,e,n,r,i,o){super(t,e,n,n,r,i,o),this.type=\"ArcCurve\"}}function Uo(){let t=0,e=0,n=0,r=0;function i(i,o,a,s){t=i,e=a,n=-3*i+3*o-2*a-s,r=2*i-2*o+a+s}return{initCatmullRom:function(t,e,n,r,o){i(e,n,o*(n-t),o*(r-e))},initNonuniformCatmullRom:function(t,e,n,r,o,a,s){let l=(e-t)/o-(n-t)/(o+a)+(n-e)/a,c=(n-e)/a-(r-e)/(a+s)+(r-n)/s;l*=a,c*=a,i(e,n,l,c)},calc:function(i){const o=i*i;return t+e*i+n*o+r*(o*i)}}}Fo.prototype.isArcCurve=!0;const Ho=new ot,Vo=new Uo,Go=new Uo,jo=new Uo;class Wo extends zo{constructor(t=[],e=!1,n=\"centripetal\",r=.5){super(),this.type=\"CatmullRomCurve3\",this.points=t,this.closed=e,this.curveType=n,this.tension=r}getPoint(t,e=new ot){const n=e,r=this.points,i=r.length,o=(i-(this.closed?0:1))*t;let a,s,l=Math.floor(o),c=o-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?a=r[(l-1)%i]:(Ho.subVectors(r[0],r[1]).add(r[0]),a=Ho);const h=r[l%i],u=r[(l+1)%i];if(this.closed||l+2<i?s=r[(l+2)%i]:(Ho.subVectors(r[i-1],r[i-2]).add(r[i-1]),s=Ho),\"centripetal\"===this.curveType||\"chordal\"===this.curveType){const t=\"chordal\"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),r=Math.pow(u.distanceToSquared(s),t);n<1e-4&&(n=1),e<1e-4&&(e=n),r<1e-4&&(r=n),Vo.initNonuniformCatmullRom(a.x,h.x,u.x,s.x,e,n,r),Go.initNonuniformCatmullRom(a.y,h.y,u.y,s.y,e,n,r),jo.initNonuniformCatmullRom(a.z,h.z,u.z,s.z,e,n,r)}else\"catmullrom\"===this.curveType&&(Vo.initCatmullRom(a.x,h.x,u.x,s.x,this.tension),Go.initCatmullRom(a.y,h.y,u.y,s.y,this.tension),jo.initCatmullRom(a.z,h.z,u.z,s.z,this.tension));return n.set(Vo.calc(c),Go.calc(c),jo.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new ot).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function qo(t,e,n,r,i){const o=.5*(r-e),a=.5*(i-n),s=t*t;return(2*n-2*r+o+a)*(t*s)+(-3*n+3*r-2*o-a)*s+o*t+n}function Xo(t,e,n,r){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,r)}function Yo(t,e,n,r,i){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,r)+function(t,e){return t*t*t*e}(t,i)}Wo.prototype.isCatmullRomCurve3=!0;class Zo extends zo{constructor(t=new Y,e=new Y,n=new Y,r=new Y){super(),this.type=\"CubicBezierCurve\",this.v0=t,this.v1=e,this.v2=n,this.v3=r}getPoint(t,e=new Y){const n=e,r=this.v0,i=this.v1,o=this.v2,a=this.v3;return n.set(Yo(t,r.x,i.x,o.x,a.x),Yo(t,r.y,i.y,o.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}Zo.prototype.isCubicBezierCurve=!0;class Jo extends zo{constructor(t=new ot,e=new ot,n=new ot,r=new ot){super(),this.type=\"CubicBezierCurve3\",this.v0=t,this.v1=e,this.v2=n,this.v3=r}getPoint(t,e=new ot){const n=e,r=this.v0,i=this.v1,o=this.v2,a=this.v3;return n.set(Yo(t,r.x,i.x,o.x,a.x),Yo(t,r.y,i.y,o.y,a.y),Yo(t,r.z,i.z,o.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}Jo.prototype.isCubicBezierCurve3=!0;class $o extends zo{constructor(t=new Y,e=new Y){super(),this.type=\"LineCurve\",this.v1=t,this.v2=e}getPoint(t,e=new Y){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new Y;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}$o.prototype.isLineCurve=!0;class Qo extends zo{constructor(t=new Y,e=new Y,n=new Y){super(),this.type=\"QuadraticBezierCurve\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Y){const n=e,r=this.v0,i=this.v1,o=this.v2;return n.set(Xo(t,r.x,i.x,o.x),Xo(t,r.y,i.y,o.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}Qo.prototype.isQuadraticBezierCurve=!0;class Ko extends zo{constructor(t=new ot,e=new ot,n=new ot){super(),this.type=\"QuadraticBezierCurve3\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new ot){const n=e,r=this.v0,i=this.v1,o=this.v2;return n.set(Xo(t,r.x,i.x,o.x),Xo(t,r.y,i.y,o.y),Xo(t,r.z,i.z,o.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}Ko.prototype.isQuadraticBezierCurve3=!0;class ta extends zo{constructor(t=[]){super(),this.type=\"SplineCurve\",this.points=t}getPoint(t,e=new Y){const n=e,r=this.points,i=(r.length-1)*t,o=Math.floor(i),a=i-o,s=r[0===o?o:o-1],l=r[o],c=r[o>r.length-2?r.length-1:o+1],h=r[o>r.length-3?r.length-1:o+2];return n.set(qo(a,s.x,l.x,c.x,h.x),qo(a,s.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Y).fromArray(n))}return this}}ta.prototype.isSplineCurve=!0;var ea=Object.freeze({__proto__:null,ArcCurve:Fo,CatmullRomCurve3:Wo,CubicBezierCurve:Zo,CubicBezierCurve3:Jo,EllipseCurve:Bo,LineCurve:$o,LineCurve3:class extends zo{constructor(t=new ot,e=new ot){super(),this.type=\"LineCurve3\",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new ot){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},QuadraticBezierCurve:Qo,QuadraticBezierCurve3:Ko,SplineCurve:ta});const na=function(t,e,n=2){const r=e&&e.length,i=r?e[0]*n:t.length;let o=ra(t,0,i,n,!0);const a=[];if(!o||o.next===o.prev)return a;let s,l,c,h,u,d,p;if(r&&(o=function(t,e,n,r){const i=[];let o,a,s,l,c;for(o=0,a=e.length;o<a;o++)s=e[o]*r,l=o<a-1?e[o+1]*r:t.length,c=ra(t,s,l,r,!1),c===c.next&&(c.steiner=!0),i.push(fa(c));for(i.sort(ha),o=0;o<i.length;o++)ua(i[o],n),n=ia(n,n.next);return n}(t,e,o,n)),t.length>80*n){s=c=t[0],l=h=t[1];for(let e=n;e<i;e+=n)u=t[e],d=t[e+1],u<s&&(s=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-s,h-l),p=0!==p?1/p:0}return oa(o,a,n,s,l,p),a};function ra(t,e,n,r,i){let o,a;if(i===function(t,e,n,r){let i=0;for(let o=e,a=n-r;o<n;o+=r)i+=(t[a]-t[o])*(t[o+1]+t[a+1]),a=o;return i}(t,e,n,r)>0)for(o=e;o<n;o+=r)a=Sa(o,t[o],t[o+1],a);else for(o=n-r;o>=e;o-=r)a=Sa(o,t[o],t[o+1],a);return a&&ya(a,a.next)&&(Ea(a),a=a.next),a}function ia(t,e){if(!t)return t;e||(e=t);let n,r=t;do{if(n=!1,r.steiner||!ya(r,r.next)&&0!==va(r.prev,r,r.next))r=r.next;else{if(Ea(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function oa(t,e,n,r,i,o,a){if(!t)return;!a&&o&&function(t,e,n,r){let i=t;do{null===i.z&&(i.z=pa(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){let e,n,r,i,o,a,s,l,c=1;do{for(n=t,t=null,o=null,a=0;n;){for(a++,r=n,s=0,e=0;e<c&&(s++,r=r.nextZ,r);e++);for(l=c;s>0||l>0&&r;)0!==s&&(0===l||!r||n.z<=r.z)?(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,l--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(a>1)}(i)}(t,r,i,o);let s,l,c=t;for(;t.prev!==t.next;)if(s=t.prev,l=t.next,o?sa(t,r,i,o):aa(t))e.push(s.i/n),e.push(t.i/n),e.push(l.i/n),Ea(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?oa(t=la(ia(t),e,n),e,n,r,i,o,2):2===a&&ca(t,e,n,r,i,o):oa(ia(t),e,n,r,i,o,1);break}}function aa(t){const e=t.prev,n=t,r=t.next;if(va(e,n,r)>=0)return!1;let i=t.next.next;for(;i!==t.prev;){if(ma(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&va(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function sa(t,e,n,r){const i=t.prev,o=t,a=t.next;if(va(i,o,a)>=0)return!1;const s=i.x<o.x?i.x<a.x?i.x:a.x:o.x<a.x?o.x:a.x,l=i.y<o.y?i.y<a.y?i.y:a.y:o.y<a.y?o.y:a.y,c=i.x>o.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,h=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,u=pa(s,l,e,n,r),d=pa(c,h,e,n,r);let p=t.prevZ,f=t.nextZ;for(;p&&p.z>=u&&f&&f.z<=d;){if(p!==t.prev&&p!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,p.x,p.y)&&va(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,f!==t.prev&&f!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&va(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,p.x,p.y)&&va(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;f&&f.z<=d;){if(f!==t.prev&&f!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&va(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function la(t,e,n){let r=t;do{const i=r.prev,o=r.next.next;!ya(i,o)&&xa(i,r,r.next,o)&&wa(i,o)&&wa(o,i)&&(e.push(i.i/n),e.push(r.i/n),e.push(o.i/n),Ea(r),Ea(r.next),r=t=o),r=r.next}while(r!==t);return ia(r)}function ca(t,e,n,r,i,o){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&ga(a,t)){let s=Ma(a,t);return a=ia(a,a.next),s=ia(s,s.next),oa(a,e,n,r,i,o),void oa(s,e,n,r,i,o)}t=t.next}a=a.next}while(a!==t)}function ha(t,e){return t.x-e.x}function ua(t,e){if(e=function(t,e){let n=e;const r=t.x,i=t.y;let o,a=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){const t=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>a){if(a=t,t===r){if(i===n.y)return n;if(i===n.next.y)return n.next}o=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!o)return null;if(r===a)return o;const s=o,l=o.x,c=o.y;let h,u=1/0;n=o;do{r>=n.x&&n.x>=l&&r!==n.x&&ma(i<c?r:a,i,l,c,i<c?a:r,i,n.x,n.y)&&(h=Math.abs(i-n.y)/(r-n.x),wa(n,t)&&(h<u||h===u&&(n.x>o.x||n.x===o.x&&da(o,n)))&&(o=n,u=h)),n=n.next}while(n!==s);return o}(t,e)){const n=Ma(e,t);ia(e,e.next),ia(n,n.next)}}function da(t,e){return va(t.prev,t,e.prev)<0&&va(e.next,t,t.next)<0}function pa(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function fa(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function ma(t,e,n,r,i,o,a,s){return(i-a)*(e-s)-(t-a)*(o-s)>=0&&(t-a)*(r-s)-(n-a)*(e-s)>=0&&(n-a)*(o-s)-(i-a)*(r-s)>=0}function ga(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&xa(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(wa(t,e)&&wa(e,t)&&function(t,e){let n=t,r=!1;const i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(va(t.prev,t,e.prev)||va(t,e.prev,e))||ya(t,e)&&va(t.prev,t,t.next)>0&&va(e.prev,e,e.next)>0)}function va(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function ya(t,e){return t.x===e.x&&t.y===e.y}function xa(t,e,n,r){const i=ba(va(t,e,n)),o=ba(va(t,e,r)),a=ba(va(n,r,t)),s=ba(va(n,r,e));return i!==o&&a!==s||(!(0!==i||!_a(t,n,e))||(!(0!==o||!_a(t,r,e))||(!(0!==a||!_a(n,t,r))||!(0!==s||!_a(n,e,r)))))}function _a(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function ba(t){return t>0?1:t<0?-1:0}function wa(t,e){return va(t.prev,t,t.next)<0?va(t,e,t.next)>=0&&va(t,t.prev,e)>=0:va(t,e,t.prev)<0||va(t,t.next,e)<0}function Ma(t,e){const n=new Ta(t.i,t.x,t.y),r=new Ta(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Sa(t,e,n,r){const i=new Ta(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ea(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ta(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Aa{static area(t){const e=t.length;let n=0;for(let r=e-1,i=0;i<e;r=i++)n+=t[r].x*t[i].y-t[i].x*t[r].y;return.5*n}static isClockWise(t){return Aa.area(t)<0}static triangulateShape(t,e){const n=[],r=[],i=[];La(t),Ca(n,t);let o=t.length;e.forEach(La);for(let t=0;t<e.length;t++)r.push(o),o+=e[t].length,Ca(n,e[t]);const a=na(n,r);for(let t=0;t<a.length;t+=3)i.push(a.slice(t,t+3));return i}}function La(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function Ca(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class Pa extends Ge{constructor(t,e){super(),this.type=\"ExtrudeGeometry\",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,r=[],i=[];for(let e=0,n=t.length;e<n;e++){o(t[e])}function o(t){const o=[],a=void 0!==e.curveSegments?e.curveSegments:12,s=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:6,u=void 0!==e.bevelSize?e.bevelSize:h-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:Ra;void 0!==e.amount&&(console.warn(\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\"),l=e.amount);let g,v,y,x,_,b=!1;f&&(g=f.getSpacedPoints(s),b=!0,c=!1,v=f.computeFrenetFrames(s,!1),y=new ot,x=new ot,_=new ot),c||(p=0,h=0,u=0,d=0);const w=t.extractPoints(a);let M=w.shape;const S=w.holes;if(!Aa.isClockWise(M)){M=M.reverse();for(let t=0,e=S.length;t<e;t++){const e=S[t];Aa.isClockWise(e)&&(S[t]=e.reverse())}}const E=Aa.triangulateShape(M,S),T=M;for(let t=0,e=S.length;t<e;t++){const e=S[t];M=M.concat(e)}function A(t,e,n){return e||console.error(\"THREE.ExtrudeGeometry: vec does not exist\"),e.clone().multiplyScalar(n).add(t)}const L=M.length,C=E.length;function P(t,e,n){let r,i,o;const a=t.x-e.x,s=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=a*a+s*s,u=a*c-s*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-s/u,f=e.y+a/u,m=((n.x-c/d-p)*c-(n.y+l/d-f)*l)/(a*c-s*l);r=p+a*m-t.x,i=f+s*m-t.y;const g=r*r+i*i;if(g<=2)return new Y(r,i);o=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(s)===Math.sign(c)&&(t=!0),t?(r=-s,i=a,o=Math.sqrt(h)):(r=a,i=s,o=Math.sqrt(h/2))}return new Y(r/o,i/o)}const R=[];for(let t=0,e=T.length,n=e-1,r=t+1;t<e;t++,n++,r++)n===e&&(n=0),r===e&&(r=0),R[t]=P(T[t],T[n],T[r]);const D=[];let I,N=R.concat();for(let t=0,e=S.length;t<e;t++){const e=S[t];I=[];for(let t=0,n=e.length,r=n-1,i=t+1;t<n;t++,r++,i++)r===n&&(r=0),i===n&&(i=0),I[t]=P(e[t],e[r],e[i]);D.push(I),N=N.concat(I)}for(let t=0;t<p;t++){const e=t/p,n=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=T.length;t<e;t++){const e=A(T[t],R[t],r);z(e.x,e.y,-n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,i=e.length;t<i;t++){const i=A(e[t],I[t],r);z(i.x,i.y,-n)}}}const O=u+d;for(let t=0;t<L;t++){const e=c?A(M[t],N[t],O):M[t];b?(x.copy(v.normals[0]).multiplyScalar(e.x),y.copy(v.binormals[0]).multiplyScalar(e.y),_.copy(g[0]).add(x).add(y),z(_.x,_.y,_.z)):z(e.x,e.y,0)}for(let t=1;t<=s;t++)for(let e=0;e<L;e++){const n=c?A(M[e],N[e],O):M[e];b?(x.copy(v.normals[t]).multiplyScalar(n.x),y.copy(v.binormals[t]).multiplyScalar(n.y),_.copy(g[t]).add(x).add(y),z(_.x,_.y,_.z)):z(n.x,n.y,l/s*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=T.length;t<e;t++){const e=A(T[t],R[t],r);z(e.x,e.y,l+n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,i=e.length;t<i;t++){const i=A(e[t],I[t],r);b?z(i.x,i.y+g[s-1].y,g[s-1].x+n):z(i.x,i.y,l+n)}}}function k(t,e){let n=t.length;for(;--n>=0;){const r=n;let i=n-1;i<0&&(i=t.length-1);for(let t=0,n=s+2*p;t<n;t++){const n=L*t,o=L*(t+1);F(e+r+n,e+i+n,e+i+o,e+r+o)}}}function z(t,e,n){o.push(t),o.push(e),o.push(n)}function B(t,e,i){U(t),U(e),U(i);const o=r.length/3,a=m.generateTopUV(n,r,o-3,o-2,o-1);H(a[0]),H(a[1]),H(a[2])}function F(t,e,i,o){U(t),U(e),U(o),U(e),U(i),U(o);const a=r.length/3,s=m.generateSideWallUV(n,r,a-6,a-3,a-2,a-1);H(s[0]),H(s[1]),H(s[3]),H(s[1]),H(s[2]),H(s[3])}function U(t){r.push(o[3*t+0]),r.push(o[3*t+1]),r.push(o[3*t+2])}function H(t){i.push(t.x),i.push(t.y)}!function(){const t=r.length/3;if(c){let t=0,e=L*t;for(let t=0;t<C;t++){const n=E[t];B(n[2]+e,n[1]+e,n[0]+e)}t=s+2*p,e=L*t;for(let t=0;t<C;t++){const n=E[t];B(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<C;t++){const e=E[t];B(e[2],e[1],e[0])}for(let t=0;t<C;t++){const e=E[t];B(e[0]+L*s,e[1]+L*s,e[2]+L*s)}}n.addGroup(t,r.length/3-t,0)}(),function(){const t=r.length/3;let e=0;k(T,e),e+=T.length;for(let t=0,n=S.length;t<n;t++){const n=S[t];k(n,e),e+=n.length}n.addGroup(t,r.length/3-t,1)}()}this.setAttribute(\"position\",new Ne(r,3)),this.setAttribute(\"uv\",new Ne(i,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,r=t.length;e<r;e++){const r=t[e];n.shapes.push(r.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let r=0,i=t.shapes.length;r<i;r++){const i=e[t.shapes[r]];n.push(i)}const r=t.options.extrudePath;return void 0!==r&&(t.options.extrudePath=(new ea[r.type]).fromJSON(r)),new Pa(n,t.options)}}const Ra={generateTopUV:function(t,e,n,r,i){const o=e[3*n],a=e[3*n+1],s=e[3*r],l=e[3*r+1],c=e[3*i],h=e[3*i+1];return[new Y(o,a),new Y(s,l),new Y(c,h)]},generateSideWallUV:function(t,e,n,r,i,o){const a=e[3*n],s=e[3*n+1],l=e[3*n+2],c=e[3*r],h=e[3*r+1],u=e[3*r+2],d=e[3*i],p=e[3*i+1],f=e[3*i+2],m=e[3*o],g=e[3*o+1],v=e[3*o+2];return Math.abs(s-h)<Math.abs(a-c)?[new Y(a,1-l),new Y(c,1-u),new Y(d,1-f),new Y(m,1-v)]:[new Y(s,1-l),new Y(h,1-u),new Y(p,1-f),new Y(g,1-v)]}};class Da extends Ge{constructor(t,e=12){super(),this.type=\"ShapeGeometry\",this.parameters={shapes:t,curveSegments:e};const n=[],r=[],i=[],o=[];let a=0,s=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(a,s,e),a+=s,s=0;function l(t){const a=r.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===Aa.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===Aa.isClockWise(e)&&(h[t]=e.reverse())}const u=Aa.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];r.push(e.x,e.y,0),i.push(0,0,1),o.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],r=e[0]+a,i=e[1]+a,o=e[2]+a;n.push(r,i,o),s+=3}}this.setIndex(n),this.setAttribute(\"position\",new Ne(r,3)),this.setAttribute(\"normal\",new Ne(i,3)),this.setAttribute(\"uv\",new Ne(o,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,r=t.length;n<r;n++){const r=t[n];e.shapes.push(r.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let r=0,i=t.shapes.length;r<i;r++){const i=e[t.shapes[r]];n.push(i)}return new Da(n,t.curveSegments)}}class Ia extends Ge{constructor(t=1,e=8,n=6,r=0,i=2*Math.PI,o=0,a=Math.PI){super(),this.type=\"SphereGeometry\",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:r,phiLength:i,thetaStart:o,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const s=Math.min(o+a,Math.PI);let l=0;const c=[],h=new ot,u=new ot,d=[],p=[],f=[],m=[];for(let d=0;d<=n;d++){const g=[],v=d/n;let y=0;0==d&&0==o?y=.5/e:d==n&&s==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const s=n/e;h.x=-t*Math.cos(r+s*i)*Math.sin(o+v*a),h.y=t*Math.cos(o+v*a),h.z=t*Math.sin(r+s*i)*Math.sin(o+v*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),f.push(u.x,u.y,u.z),m.push(s+y,1-v),g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let r=0;r<e;r++){const e=c[t][r+1],i=c[t][r],a=c[t+1][r],l=c[t+1][r+1];(0!==t||o>0)&&d.push(e,i,l),(t!==n-1||s<Math.PI)&&d.push(i,a,l)}this.setIndex(d),this.setAttribute(\"position\",new Ne(p,3)),this.setAttribute(\"normal\",new Ne(f,3)),this.setAttribute(\"uv\",new Ne(m,2))}static fromJSON(t){return new Ia(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class Na extends Ge{constructor(t,e=64,n=1,r=8,i=!1){super(),this.type=\"TubeGeometry\",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:r,closed:i};const o=t.computeFrenetFrames(e,i);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;const a=new ot,s=new ot,l=new Y;let c=new ot;const h=[],u=[],d=[],p=[];function f(i){c=t.getPointAt(i/e,c);const l=o.normals[i],d=o.binormals[i];for(let t=0;t<=r;t++){const e=t/r*Math.PI*2,i=Math.sin(e),o=-Math.cos(e);s.x=o*l.x+i*d.x,s.y=o*l.y+i*d.y,s.z=o*l.z+i*d.z,s.normalize(),u.push(s.x,s.y,s.z),a.x=c.x+n*s.x,a.y=c.y+n*s.y,a.z=c.z+n*s.z,h.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)f(t);f(!1===i?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=r;n++)l.x=t/e,l.y=n/r,d.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=r;e++){const n=(r+1)*(t-1)+(e-1),i=(r+1)*t+(e-1),o=(r+1)*t+e,a=(r+1)*(t-1)+e;p.push(n,i,a),p.push(i,o,a)}}()}(),this.setIndex(p),this.setAttribute(\"position\",new Ne(h,3)),this.setAttribute(\"normal\",new Ne(u,3)),this.setAttribute(\"uv\",new Ne(d,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new Na((new ea[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}(class extends _e{constructor(t){super(),this.type=\"ShadowMaterial\",this.color=new Ae(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}).prototype.isShadowMaterial=!0;(class extends fn{constructor(t){super(t),this.type=\"RawShaderMaterial\"}}).prototype.isRawShaderMaterial=!0;class Oa extends _e{constructor(t){super(),this.defines={STANDARD:\"\"},this.type=\"MeshStandardMaterial\",this.color=new Ae(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.vertexTangents=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this.vertexTangents=t.vertexTangents,this}}Oa.prototype.isMeshStandardMaterial=!0;(class extends Oa{constructor(t){super(),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.type=\"MeshPhysicalMaterial\",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Y(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,\"ior\",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=j(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new Ae(1,1,1),this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,t.sheen?this.sheen=(this.sheen||new Ae).copy(t.sheen):this.sheen=null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this}}).prototype.isMeshPhysicalMaterial=!0;(class extends _e{constructor(t){super(),this.type=\"MeshPhongMaterial\",this.color=new Ae(16777215),this.specular=new Ae(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}).prototype.isMeshPhongMaterial=!0;(class extends _e{constructor(t){super(),this.defines={TOON:\"\"},this.type=\"MeshToonMaterial\",this.color=new Ae(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}).prototype.isMeshToonMaterial=!0;(class extends _e{constructor(t){super(),this.type=\"MeshNormalMaterial\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}).prototype.isMeshNormalMaterial=!0;class ka extends _e{constructor(t){super(),this.type=\"MeshLambertMaterial\",this.color=new Ae(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}ka.prototype.isMeshLambertMaterial=!0;(class extends _e{constructor(t){super(),this.defines={MATCAP:\"\"},this.type=\"MeshMatcapMaterial\",this.color=new Ae(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:\"\"},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}).prototype.isMeshMatcapMaterial=!0;(class extends xo{constructor(t){super(),this.type=\"LineDashedMaterial\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}).prototype.isLineDashedMaterial=!0;const za={arraySlice:function(t,e,n){return za.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:\"number\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const r=t.length,i=new t.constructor(r);for(let o=0,a=0;a!==r;++o){const r=n[o]*e;for(let n=0;n!==e;++n)i[a++]=t[r+n]}return i},flattenJSON:function(t,e,n,r){let i=1,o=t[0];for(;void 0!==o&&void 0===o[r];)o=t[i++];if(void 0===o)return;let a=o[r];if(void 0!==a)if(Array.isArray(a))do{a=o[r],void 0!==a&&(e.push(o.time),n.push.apply(n,a)),o=t[i++]}while(void 0!==o);else if(void 0!==a.toArray)do{a=o[r],void 0!==a&&(e.push(o.time),a.toArray(n,n.length)),o=t[i++]}while(void 0!==o);else do{a=o[r],void 0!==a&&(e.push(o.time),n.push(a)),o=t[i++]}while(void 0!==o)},subclip:function(t,e,n,r,i=30){const o=t.clone();o.name=e;const a=[];for(let t=0;t<o.tracks.length;++t){const e=o.tracks[t],s=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const o=e.times[t]*i;if(!(o<n||o>=r)){l.push(e.times[t]);for(let n=0;n<s;++n)c.push(e.values[t*s+n])}}0!==l.length&&(e.times=za.convertArray(l,e.times.constructor),e.values=za.convertArray(c,e.values.constructor),a.push(e))}o.tracks=a;let s=1/0;for(let t=0;t<o.tracks.length;++t)s>o.tracks[t].times[0]&&(s=o.tracks[t].times[0]);for(let t=0;t<o.tracks.length;++t)o.tracks[t].shift(-1*s);return o.resetDuration(),o},makeClipAdditive:function(t,e=0,n=t,r=30){r<=0&&(r=30);const i=n.tracks.length,o=e/r;for(let e=0;e<i;++e){const r=n.tracks[e],i=r.ValueTypeName;if(\"bool\"===i||\"string\"===i)continue;const a=t.tracks.find((function(t){return t.name===r.name&&t.ValueTypeName===i}));if(void 0===a)continue;let s=0;const l=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(s=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=r.times.length-1;let d;if(o<=r.times[0]){const t=s,e=l-s;d=za.arraySlice(r.values,t,e)}else if(o>=r.times[u]){const t=u*l+s,e=t+l-s;d=za.arraySlice(r.values,t,e)}else{const t=r.createInterpolant(),e=s,n=l-s;t.evaluate(o),d=za.arraySlice(t.resultBuffer,e,n)}if(\"quaternion\"===i){(new it).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(\"quaternion\"===i)it.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}return t.blendMode=2501,t}};class Ba{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],i=e[n-1];t:{e:{let o;n:{r:if(!(t<r)){for(let o=n+2;;){if(void 0===r){if(t<i)break r;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,i)}if(n===o)break;if(i=r,r=e[++n],t<r)break e}o=e.length;break n}if(t>=i)break t;{const a=e[1];t<a&&(n=2,i=a);for(let o=n-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,r);if(n===o)break;if(r=i,i=e[--n-1],t>=i)break e}o=n,n=0}}for(;n<o;){const r=n+o>>>1;t<e[r]?o=r:n=r+1}if(r=e[n],i=e[n-1],void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,r);if(void 0===r)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,i,t)}this._cachedIndex=n,this.intervalChanged_(n,i,r)}return this.interpolate_(n,i,t,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=t*r;for(let t=0;t!==r;++t)e[t]=n[i+t];return e}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}Ba.prototype.beforeStart_=Ba.prototype.copySampleValue_,Ba.prototype.afterEnd_=Ba.prototype.copySampleValue_;class Fa extends Ba{constructor(t,e,n,r){super(t,e,n,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:P,endingEnd:P}}intervalChanged_(t,e,n){const r=this.parameterPositions;let i=t-2,o=t+1,a=r[i],s=r[o];if(void 0===a)switch(this.getSettings_().endingStart){case R:i=t,a=2*e-n;break;case D:i=r.length-2,a=e+r[i]-r[i+1];break;default:i=t,a=n}if(void 0===s)switch(this.getSettings_().endingEnd){case R:o=t,s=2*n-e;break;case D:o=1,s=n+r[1]-r[0];break;default:o=t-1,s=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(s-n),this._offsetPrev=i*c,this._offsetNext=o*c}interpolate_(t,e,n,r){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,l=s-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(r-e),f=p*p,m=f*p,g=-u*m+2*u*f-u*p,v=(1+u)*m+(-1.5-2*u)*f+(-.5+u)*p+1,y=(-1-d)*m+(1.5+d)*f+.5*p,x=d*m-d*f;for(let t=0;t!==a;++t)i[t]=g*o[c+t]+v*o[l+t]+y*o[s+t]+x*o[h+t];return i}}class Ua extends Ba{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,l=s-a,c=(n-e)/(r-e),h=1-c;for(let t=0;t!==a;++t)i[t]=o[l+t]*h+o[s+t]*c;return i}}class Ha extends Ba{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t){return this.copySampleValue_(t-1)}}class Va{constructor(t,e,n,r){if(void 0===t)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(void 0===e||0===e.length)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t,this.times=za.convertArray(e,this.TimeBufferType),this.values=za.convertArray(n,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:za.convertArray(t.times,Array),values:za.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new Ha(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new Ua(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new Fa(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case A:e=this.InterpolantFactoryMethodDiscrete;break;case L:e=this.InterpolantFactoryMethodLinear;break;case C:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\"THREE.KeyframeTrack:\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return A;case this.InterpolantFactoryMethodLinear:return L;case this.InterpolantFactoryMethodSmooth:return C}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,r=e.length;n!==r;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,r=e.length;n!==r;++n)e[n]*=t}return this}trim(t,e){const n=this.times,r=n.length;let i=0,o=r-1;for(;i!==r&&n[i]<t;)++i;for(;-1!==o&&n[o]>e;)--o;if(++o,0!==i||o!==r){i>=o&&(o=Math.max(o,1),i=o-1);const t=this.getValueSize();this.times=za.arraySlice(n,i,o),this.values=za.arraySlice(this.values,i*t,o*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this),t=!1);const n=this.times,r=this.values,i=n.length;0===i&&(console.error(\"THREE.KeyframeTrack: Track is empty.\",this),t=!1);let o=null;for(let e=0;e!==i;e++){const r=n[e];if(\"number\"==typeof r&&isNaN(r)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,e,r),t=!1;break}if(null!==o&&o>r){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,e,r,o),t=!1;break}o=r}if(void 0!==r&&za.isTypedArray(r))for(let e=0,n=r.length;e!==n;++e){const n=r[e];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,e,n),t=!1;break}}return t}optimize(){const t=za.arraySlice(this.times),e=za.arraySlice(this.values),n=this.getValueSize(),r=this.getInterpolation()===C,i=t.length-1;let o=1;for(let a=1;a<i;++a){let i=!1;const s=t[a];if(s!==t[a+1]&&(1!==a||s!==t[0]))if(r)i=!0;else{const t=a*n,r=t-n,o=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[r+a]||n!==e[o+a]){i=!0;break}}}if(i){if(a!==o){t[o]=t[a];const r=a*n,i=o*n;for(let t=0;t!==n;++t)e[i+t]=e[r+t]}++o}}if(i>0){t[o]=t[i];for(let t=i*n,r=o*n,a=0;a!==n;++a)e[r+a]=e[t+a];++o}return o!==t.length?(this.times=za.arraySlice(t,0,o),this.values=za.arraySlice(e,0,o*n)):(this.times=t,this.values=e),this}clone(){const t=za.arraySlice(this.times,0),e=za.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Va.prototype.TimeBufferType=Float32Array,Va.prototype.ValueBufferType=Float32Array,Va.prototype.DefaultInterpolation=L;class Ga extends Va{}Ga.prototype.ValueTypeName=\"bool\",Ga.prototype.ValueBufferType=Array,Ga.prototype.DefaultInterpolation=A,Ga.prototype.InterpolantFactoryMethodLinear=void 0,Ga.prototype.InterpolantFactoryMethodSmooth=void 0;class ja extends Va{}ja.prototype.ValueTypeName=\"color\";class Wa extends Va{}Wa.prototype.ValueTypeName=\"number\";class qa extends Ba{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=(n-e)/(r-e);let l=t*a;for(let t=l+a;l!==t;l+=4)it.slerpFlat(i,0,o,l-a,o,l,s);return i}}class Xa extends Va{InterpolantFactoryMethodLinear(t){return new qa(this.times,this.values,this.getValueSize(),t)}}Xa.prototype.ValueTypeName=\"quaternion\",Xa.prototype.DefaultInterpolation=L,Xa.prototype.InterpolantFactoryMethodSmooth=void 0;class Ya extends Va{}Ya.prototype.ValueTypeName=\"string\",Ya.prototype.ValueBufferType=Array,Ya.prototype.DefaultInterpolation=A,Ya.prototype.InterpolantFactoryMethodLinear=void 0,Ya.prototype.InterpolantFactoryMethodSmooth=void 0;class Za extends Va{}Za.prototype.ValueTypeName=\"vector\";class Ja{constructor(t,e=-1,n,r=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=G(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let t=0,i=n.length;t!==i;++t)e.push($a(n[t]).scale(r));const i=new this(t.name,t.duration,e,t.blendMode);return i.uuid=t.uuid,i}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,r=n.length;t!==r;++t)e.push(Va.toJSON(n[t]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const i=e.length,o=[];for(let t=0;t<i;t++){let a=[],s=[];a.push((t+i-1)%i,t,(t+1)%i),s.push(0,1,0);const l=za.getKeyframeOrder(a);a=za.sortedArray(a,1,l),s=za.sortedArray(s,1,l),r||0!==a[0]||(a.push(i),s.push(s[0])),o.push(new Wa(\".morphTargetInfluences[\"+e[t].name+\"]\",a,s).scale(1/n))}return new this(t,-1,o)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const r={},i=/^([\\w-]*?)([\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],o=n.name.match(i);if(o&&o.length>1){const t=o[1];let e=r[t];e||(r[t]=e=[]),e.push(n)}}const o=[];for(const t in r)o.push(this.CreateFromMorphTargetSequence(t,r[t],e,n));return o}static parseAnimation(t,e){if(!t)return console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\"),null;const n=function(t,e,n,r,i){if(0!==n.length){const o=[],a=[];za.flattenJSON(n,o,a,r),0!==o.length&&i.push(new t(e,o,a))}},r=[],i=t.name||\"default\",o=t.fps||30,a=t.blendMode;let s=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const i=l[t].keys;if(i&&0!==i.length)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let n=0;n<i[e].morphTargets.length;n++)t[i[e].morphTargets[n]]=-1;for(const n in t){const t=[],o=[];for(let r=0;r!==i[e].morphTargets.length;++r){const r=i[e];t.push(r.time),o.push(r.morphTarget===n?1:0)}r.push(new Wa(\".morphTargetInfluence[\"+n+\"]\",t,o))}s=t.length*(o||1)}else{const o=\".bones[\"+e[t].name+\"]\";n(Za,o+\".position\",i,\"pos\",r),n(Xa,o+\".quaternion\",i,\"rot\",r),n(Za,o+\".scale\",i,\"scl\",r)}}if(0===r.length)return null;return new this(i,s,r,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function $a(t){if(void 0===t.type)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const e=function(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return Wa;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return Za;case\"color\":return ja;case\"quaternion\":return Xa;case\"bool\":case\"boolean\":return Ga;case\"string\":return Ya}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+t)}(t.type);if(void 0===t.times){const e=[],n=[];za.flattenJSON(t.keys,e,n,\"value\"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Qa={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};const Ka=new class{constructor(t,e,n){const r=this;let i,o=!1,a=0,s=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){s++,!1===o&&void 0!==r.onStart&&r.onStart(t,a,s),o=!0},this.itemEnd=function(t){a++,void 0!==r.onProgress&&r.onProgress(t,a,s),a===s&&(o=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(t){void 0!==r.onError&&r.onError(t)},this.resolveURL=function(t){return i?i(t):t},this.setURLModifier=function(t){return i=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],r=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return r}return null}}};class ts{constructor(t){this.manager=void 0!==t?t:Ka,this.crossOrigin=\"anonymous\",this.withCredentials=!1,this.path=\"\",this.resourcePath=\"\",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(r,i){n.load(t,r,e,i)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const es={};class ns extends ts{constructor(t){super(t)}load(t,e,n,r){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,o=Qa.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0),o;if(void 0!==es[t])return void es[t].push({onLoad:e,onProgress:n,onError:r});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let s;if(a){const n=a[1],o=!!a[2];let s=a[3];s=decodeURIComponent(s),o&&(s=atob(s));try{let r;const o=(this.responseType||\"\").toLowerCase();switch(o){case\"arraybuffer\":case\"blob\":const t=new Uint8Array(s.length);for(let e=0;e<s.length;e++)t[e]=s.charCodeAt(e);r=\"blob\"===o?new Blob([t.buffer],{type:n}):t.buffer;break;case\"document\":const e=new DOMParser;r=e.parseFromString(s,n);break;case\"json\":r=JSON.parse(s);break;default:r=s}setTimeout((function(){e&&e(r),i.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){r&&r(e),i.manager.itemError(t),i.manager.itemEnd(t)}),0)}}else{es[t]=[],es[t].push({onLoad:e,onProgress:n,onError:r}),s=new XMLHttpRequest,s.open(\"GET\",t,!0),s.addEventListener(\"load\",(function(e){const n=this.response,r=es[t];if(delete es[t],200===this.status||0===this.status){0===this.status&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\"),Qa.add(t,n);for(let t=0,e=r.length;t<e;t++){const e=r[t];e.onLoad&&e.onLoad(n)}i.manager.itemEnd(t)}else{for(let t=0,n=r.length;t<n;t++){const n=r[t];n.onError&&n.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}}),!1),s.addEventListener(\"progress\",(function(e){const n=es[t];for(let t=0,r=n.length;t<r;t++){const r=n[t];r.onProgress&&r.onProgress(e)}}),!1),s.addEventListener(\"error\",(function(e){const n=es[t];delete es[t];for(let t=0,r=n.length;t<r;t++){const r=n[t];r.onError&&r.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}),!1),s.addEventListener(\"abort\",(function(e){const n=es[t];delete es[t];for(let t=0,r=n.length;t<r;t++){const r=n[t];r.onError&&r.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(s.responseType=this.responseType),void 0!==this.withCredentials&&(s.withCredentials=this.withCredentials),s.overrideMimeType&&s.overrideMimeType(void 0!==this.mimeType?this.mimeType:\"text/plain\");for(const t in this.requestHeader)s.setRequestHeader(t,this.requestHeader[t]);s.send(null)}return i.manager.itemStart(t),s}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class rs extends ts{constructor(t){super(t)}load(t,e,n,r){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,o=Qa.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0),o;const a=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"img\");function s(){a.removeEventListener(\"load\",s,!1),a.removeEventListener(\"error\",l,!1),Qa.add(t,this),e&&e(this),i.manager.itemEnd(t)}function l(e){a.removeEventListener(\"load\",s,!1),a.removeEventListener(\"error\",l,!1),r&&r(e),i.manager.itemError(t),i.manager.itemEnd(t)}return a.addEventListener(\"load\",s,!1),a.addEventListener(\"error\",l,!1),\"data:\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),i.manager.itemStart(t),a.src=t,a}}class is extends ts{constructor(t){super(t)}load(t,e,n,r){const i=new xn,o=new rs(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);let a=0;function s(n){o.load(t[n],(function(t){i.images[n]=t,a++,6===a&&(i.needsUpdate=!0,e&&e(i))}),void 0,r)}for(let e=0;e<t.length;++e)s(e);return i}}class os extends ts{constructor(t){super(t)}load(t,e,n,r){const i=new K,o=new rs(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,(function(n){i.image=n;const r=t.search(/\\.jpe?g($|\\?)/i)>0||0===t.search(/^data\\:image\\/jpeg/);i.format=r?M:S,i.needsUpdate=!0,void 0!==e&&e(i)}),n,r),i}}class as extends zo{constructor(){super(),this.type=\"CurvePath\",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new $o(e,t))}getPoint(t){const e=t*this.getLength(),n=this.getCurveLengths();let r=0;for(;r<n.length;){if(n[r]>=e){const t=n[r]-e,i=this.curves[r],o=i.getLength(),a=0===o?0:1-t/o;return i.getPointAt(a)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n<r;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let r=0,i=this.curves;r<i.length;r++){const o=i[r],a=o&&o.isEllipseCurve?2*t:o&&(o.isLineCurve||o.isLineCurve3)?1:o&&o.isSplineCurve?t*o.points.length:t,s=o.getPoints(a);for(let t=0;t<s.length;t++){const r=s[t];n&&n.equals(r)||(e.push(r),n=r)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new ea[n.type]).fromJSON(n))}return this}}class ss extends as{constructor(t){super(),this.type=\"Path\",this.currentPoint=new Y,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new $o(this.currentPoint.clone(),new Y(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,r){const i=new Qo(this.currentPoint.clone(),new Y(t,e),new Y(n,r));return this.curves.push(i),this.currentPoint.set(n,r),this}bezierCurveTo(t,e,n,r,i,o){const a=new Zo(this.currentPoint.clone(),new Y(t,e),new Y(n,r),new Y(i,o));return this.curves.push(a),this.currentPoint.set(i,o),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new ta(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,r,i,o){const a=this.currentPoint.x,s=this.currentPoint.y;return this.absarc(t+a,e+s,n,r,i,o),this}absarc(t,e,n,r,i,o){return this.absellipse(t,e,n,n,r,i,o),this}ellipse(t,e,n,r,i,o,a,s){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,r,i,o,a,s),this}absellipse(t,e,n,r,i,o,a,s){const l=new Bo(t,e,n,r,i,o,a,s);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class ls extends ss{constructor(t){super(t),this.uuid=G(),this.type=\"Shape\",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n<r;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new ss).fromJSON(n))}return this}}class cs extends se{constructor(t,e=1){super(),this.type=\"Light\",this.color=new Ae(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}cs.prototype.isLight=!0;(class extends cs{constructor(t,e,n){super(t,n),this.type=\"HemisphereLight\",this.position.copy(se.DefaultUp),this.updateMatrix(),this.groundColor=new Ae(e)}copy(t){return cs.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}).prototype.isHemisphereLight=!0;const hs=new kt,us=new ot,ds=new ot;class ps{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new Y(512,512),this.map=null,this.mapPass=null,this.matrix=new kt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new An,this._frameExtents=new Y(1,1),this._viewportCount=1,this._viewports=[new et(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;us.setFromMatrixPosition(t.matrixWorld),e.position.copy(us),ds.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(ds),e.updateMatrixWorld(),hs.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(hs),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class fs extends ps{constructor(){super(new gn(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*V*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,i=t.distance||e.far;n===e.fov&&r===e.aspect&&i===e.far||(e.fov=n,e.aspect=r,e.far=i,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}fs.prototype.isSpotLightShadow=!0;(class extends cs{constructor(t,e,n=0,r=Math.PI/3,i=0,o=1){super(t,e),this.type=\"SpotLight\",this.position.copy(se.DefaultUp),this.updateMatrix(),this.target=new se,this.distance=n,this.angle=r,this.penumbra=i,this.decay=o,this.shadow=new fs}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}).prototype.isSpotLight=!0;const ms=new kt,gs=new ot,vs=new ot;class ys extends ps{constructor(){super(new gn(90,1,.5,500)),this._frameExtents=new Y(4,2),this._viewportCount=6,this._viewports=[new et(2,1,1,1),new et(0,1,1,1),new et(3,1,1,1),new et(1,1,1,1),new et(3,0,1,1),new et(1,0,1,1)],this._cubeDirections=[new ot(1,0,0),new ot(-1,0,0),new ot(0,0,1),new ot(0,0,-1),new ot(0,1,0),new ot(0,-1,0)],this._cubeUps=[new ot(0,1,0),new ot(0,1,0),new ot(0,1,0),new ot(0,1,0),new ot(0,0,1),new ot(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,i=t.distance||n.far;i!==n.far&&(n.far=i,n.updateProjectionMatrix()),gs.setFromMatrixPosition(t.matrixWorld),n.position.copy(gs),vs.copy(n.position),vs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(vs),n.updateMatrixWorld(),r.makeTranslation(-gs.x,-gs.y,-gs.z),ms.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ms)}}ys.prototype.isPointLightShadow=!0;(class extends cs{constructor(t,e,n=0,r=1){super(t,e),this.type=\"PointLight\",this.distance=n,this.decay=r,this.shadow=new ys}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}).prototype.isPointLight=!0;class xs extends mn{constructor(t=-1,e=1,n=1,r=-1,i=.1,o=2e3){super(),this.type=\"OrthographicCamera\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=r,this.near=i,this.far=o,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,r,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let i=n-t,o=n+t,a=r+e,s=r-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=t*this.view.offsetX,o=i+t*this.view.width,a-=e*this.view.offsetY,s=a-e*this.view.height}this.projectionMatrix.makeOrthographic(i,o,a,s,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}xs.prototype.isOrthographicCamera=!0;class _s extends ps{constructor(){super(new xs(-5,5,5,-5,.5,500))}}_s.prototype.isDirectionalLightShadow=!0;class bs extends cs{constructor(t,e){super(t,e),this.type=\"DirectionalLight\",this.position.copy(se.DefaultUp),this.updateMatrix(),this.target=new se,this.shadow=new _s}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}bs.prototype.isDirectionalLight=!0;class ws extends cs{constructor(t,e){super(t,e),this.type=\"AmbientLight\"}}ws.prototype.isAmbientLight=!0;(class extends cs{constructor(t,e,n=10,r=10){super(t,e),this.type=\"RectAreaLight\",this.width=n,this.height=r}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}).prototype.isRectAreaLight=!0;class Ms{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new ot)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,r=t.y,i=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.282095),e.addScaledVector(o[1],.488603*r),e.addScaledVector(o[2],.488603*i),e.addScaledVector(o[3],.488603*n),e.addScaledVector(o[4],n*r*1.092548),e.addScaledVector(o[5],r*i*1.092548),e.addScaledVector(o[6],.315392*(3*i*i-1)),e.addScaledVector(o[7],n*i*1.092548),e.addScaledVector(o[8],.546274*(n*n-r*r)),e}getIrradianceAt(t,e){const n=t.x,r=t.y,i=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.886227),e.addScaledVector(o[1],1.023328*r),e.addScaledVector(o[2],1.023328*i),e.addScaledVector(o[3],1.023328*n),e.addScaledVector(o[4],.858086*n*r),e.addScaledVector(o[5],.858086*r*i),e.addScaledVector(o[6],.743125*i*i-.247708),e.addScaledVector(o[7],.858086*n*i),e.addScaledVector(o[8],.429043*(n*n-r*r)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].fromArray(t,e+3*r);return this}toArray(t=[],e=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].toArray(t,e+3*r);return t}static getBasisAt(t,e){const n=t.x,r=t.y,i=t.z;e[0]=.282095,e[1]=.488603*r,e[2]=.488603*i,e[3]=.488603*n,e[4]=1.092548*n*r,e[5]=1.092548*r*i,e[6]=.315392*(3*i*i-1),e[7]=1.092548*n*i,e[8]=.546274*(n*n-r*r)}}Ms.prototype.isSphericalHarmonics3=!0;class Ss extends cs{constructor(t=new Ms,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}Ss.prototype.isLightProbe=!0;(class extends Ge{constructor(){super(),this.type=\"InstancedBufferGeometry\",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}).prototype.isInstancedBufferGeometry=!0;(class extends Re{constructor(t,e,n,r=1){\"number\"==typeof n&&(r=n,n=!1,console.error(\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\")),super(t,e,n),this.meshPerAttribute=r}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}).prototype.isInstancedBufferAttribute=!0;let Es;(class extends ts{constructor(t){super(t),\"undefined\"==typeof createImageBitmap&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\"),\"undefined\"==typeof fetch&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\"),this.options={premultiplyAlpha:\"none\"}}setOptions(t){return this.options=t,this}load(t,e,n,r){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,o=Qa.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0),o;const a={};a.credentials=\"anonymous\"===this.crossOrigin?\"same-origin\":\"include\",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(i.options,{colorSpaceConversion:\"none\"}))})).then((function(n){Qa.add(t,n),e&&e(n),i.manager.itemEnd(t)})).catch((function(e){r&&r(e),i.manager.itemError(t),i.manager.itemEnd(t)})),i.manager.itemStart(t)}}).prototype.isImageBitmapLoader=!0;const Ts=function(){return void 0===Es&&(Es=new(window.AudioContext||window.webkitAudioContext)),Es};class As extends ts{constructor(t){super(t)}load(t,e,n,r){const i=this,o=new ns(this.manager);o.setResponseType(\"arraybuffer\"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,(function(n){try{const t=n.slice(0);Ts().decodeAudioData(t,(function(t){e(t)}))}catch(e){r?r(e):console.error(e),i.manager.itemError(t)}}),n,r)}}(class extends Ss{constructor(t,e,n=1){super(void 0,n);const r=(new Ae).set(t),i=(new Ae).set(e),o=new ot(r.r,r.g,r.b),a=new ot(i.r,i.g,i.b),s=Math.sqrt(Math.PI),l=s*Math.sqrt(.75);this.sh.coefficients[0].copy(o).add(a).multiplyScalar(s),this.sh.coefficients[1].copy(o).sub(a).multiplyScalar(l)}}).prototype.isHemisphereLightProbe=!0;(class extends Ss{constructor(t,e=1){super(void 0,e);const n=(new Ae).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}).prototype.isAmbientLightProbe=!0;class Ls{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Cs(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Cs();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Cs(){return(\"undefined\"==typeof performance?Date:performance).now()}class Ps{constructor(t,e,n){let r,i,o;switch(this.binding=t,this.valueSize=n,e){case\"quaternion\":r=this._slerp,i=this._slerpAdditive,o=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case\"string\":case\"bool\":r=this._select,i=this._select,o=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:r=this._lerp,i=this._lerpAdditive,o=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=r,this._mixBufferRegionAdditive=i,this._setIdentity=o,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,r=this.valueSize,i=t*r+r;let o=this.cumulativeWeight;if(0===o){for(let t=0;t!==r;++t)n[i+t]=n[t];o=e}else{o+=e;const t=e/o;this._mixBufferRegion(n,i,0,t,r)}this.cumulativeWeight=o}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,r=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,r,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,r=t*e+e,i=this.cumulativeWeight,o=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,i<1){const t=e*this._origIndex;this._mixBufferRegion(n,r,t,1-i,e)}o>0&&this._mixBufferRegionAdditive(n,r,this._addIndex*e,1,e);for(let t=e,i=e+e;t!==i;++t)if(n[t]!==n[t+e]){a.setValue(n,r);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,r=n*this._origIndex;t.getValue(e,r);for(let t=n,i=r;t!==i;++t)e[t]=e[r+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,r,i){if(r>=.5)for(let r=0;r!==i;++r)t[e+r]=t[n+r]}_slerp(t,e,n,r){it.slerpFlat(t,e,t,e,t,n,r)}_slerpAdditive(t,e,n,r,i){const o=this._workIndex*i;it.multiplyQuaternionsFlat(t,o,t,e,t,n),it.slerpFlat(t,e,t,e,t,o,r)}_lerp(t,e,n,r,i){const o=1-r;for(let a=0;a!==i;++a){const i=e+a;t[i]=t[i]*o+t[n+a]*r}}_lerpAdditive(t,e,n,r,i){for(let o=0;o!==i;++o){const i=e+o;t[i]=t[i]+t[n+o]*r}}}const Rs=\"\\\\[\\\\]\\\\.:\\\\/\",Ds=new RegExp(\"[\\\\[\\\\]\\\\.:\\\\/]\",\"g\"),Is=\"[^\\\\[\\\\]\\\\.:\\\\/]\",Ns=\"[^\"+Rs.replace(\"\\\\.\",\"\")+\"]\",Os=/((?:WC+[\\/:])*)/.source.replace(\"WC\",Is),ks=/(WCOD+)?/.source.replace(\"WCOD\",Ns),zs=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",Is),Bs=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",Is),Fs=new RegExp(\"^\"+Os+ks+zs+Bs+\"$\"),Us=[\"material\",\"materials\",\"bones\"];class Hs{constructor(t,e,n){this.path=e,this.parsedPath=n||Hs.parseTrackName(e),this.node=Hs.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Hs.Composite(t,e,n):new Hs(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,\"_\").replace(Ds,\"\")}static parseTrackName(t){const e=Fs.exec(t);if(!e)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(void 0!==r&&-1!==r){const t=n.nodeName.substring(r+1);-1!==Us.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return n}static findNode(t,e){if(!e||\"\"===e||\".\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let r=0;r<t.length;r++){const i=t[r];if(i.name===e||i.uuid===e)return i;const o=n(i.children);if(o)return o}return null},r=n(t.children);if(r)return r}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.node[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)t[e++]=n[r]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,r=e.propertyName;let i=e.propertyIndex;if(t||(t=Hs.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\"THREE.PropertyBinding: Trying to update node for track: \"+this.path+\" but it wasn't found.\");if(n){let r=e.objectIndex;switch(n){case\"materials\":if(!t.material)return void console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);if(!t.material.materials)return void console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);t=t.material.materials;break;case\"bones\":if(!t.skeleton)return void console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===r){r=e;break}break;default:if(void 0===t[n])return void console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);t=t[n]}if(void 0!==r){if(void 0===t[r])return void console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,t);t=t[r]}}const o=t[r];if(void 0===o){const n=e.nodeName;return void console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+r+\" but it wasn't found.\",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let s=this.BindingType.Direct;if(void 0!==i){if(\"morphTargetInfluences\"===r){if(!t.geometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);if(!t.geometry.isBufferGeometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\",this);if(!t.geometry.morphAttributes)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);void 0!==t.morphTargetDictionary[i]&&(i=t.morphTargetDictionary[i])}s=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=i}else void 0!==o.fromArray&&void 0!==o.toArray?(s=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(s=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=r;this.getValue=this.GetterByBindingType[s],this.setValue=this.SetterByBindingTypeAndVersioning[s][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Hs.Composite=class{constructor(t,e,n){const r=n||Hs.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];void 0!==r&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=n.length;r!==i;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},Hs.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Hs.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},Hs.prototype.GetterByBindingType=[Hs.prototype._getValue_direct,Hs.prototype._getValue_array,Hs.prototype._getValue_arrayElement,Hs.prototype._getValue_toArray],Hs.prototype.SetterByBindingTypeAndVersioning=[[Hs.prototype._setValue_direct,Hs.prototype._setValue_direct_setNeedsUpdate,Hs.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Hs.prototype._setValue_array,Hs.prototype._setValue_array_setNeedsUpdate,Hs.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Hs.prototype._setValue_arrayElement,Hs.prototype._setValue_arrayElement_setNeedsUpdate,Hs.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Hs.prototype._setValue_fromArray,Hs.prototype._setValue_fromArray_setNeedsUpdate,Hs.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class Vs{constructor(t,e,n=null,r=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=r;const i=e.tracks,o=i.length,a=new Array(o),s={endingStart:P,endingEnd:P};for(let t=0;t!==o;++t){const e=i[t].createInterpolant(null);a[t]=e,e.settings=s}this._interpolantSettings=s,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,r=t._clip.duration,i=r/n,o=n/r;t.warp(1,i,e),this.warp(o,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const r=this._mixer,i=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const s=a.parameterPositions,l=a.sampleValues;return s[0]=i,s[1]=i+n,l[0]=t/o,l[1]=e/o,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,r){if(!this.enabled)return void this._updateWeight(t);const i=this._startTime;if(null!==i){const r=(t-i)*n;if(r<0||0===n)return;this._startTime=null,e=n*r}e*=this._updateTimeScale(t);const o=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case 2501:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(o),e[n].accumulateAdditive(a);break;case I:default:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(o),e[n].accumulate(r,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const r=n.evaluate(t)[0];e*=r,t>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let r=this.time+t,i=this._loopCount;const o=2202===n;if(0===t)return-1===i?r:o&&1==(1&i)?e-r:r;if(2200===n){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(r>=e)r=e;else{if(!(r<0)){this.time=r;break t}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{if(-1===i&&(t>=0?(i=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),r>=e||r<0){const n=Math.floor(r/e);r-=e*n,i+=Math.abs(n);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=t>0?e:0,this.time=r,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=r;if(o&&1==(1&i))return e-r}return r}_setEndings(t,e,n){const r=this._interpolantSettings;n?(r.endingStart=R,r.endingEnd=R):(r.endingStart=t?this.zeroSlopeAtStart?R:P:D,r.endingEnd=e?this.zeroSlopeAtEnd?R:P:D)}_scheduleFading(t,e,n){const r=this._mixer,i=r.time;let o=this._weightInterpolant;null===o&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,s=o.sampleValues;return a[0]=i,s[0]=e,a[1]=i+t,s[1]=n,this}}(class extends F{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,r=t._clip.tracks,i=r.length,o=t._propertyBindings,a=t._interpolants,s=n.uuid,l=this._bindingsByRootAndName;let c=l[s];void 0===c&&(c={},l[s]=c);for(let t=0;t!==i;++t){const i=r[t],l=i.name;let h=c[l];if(void 0!==h)o[t]=h;else{if(h=o[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,s,l));continue}const r=e&&e._propertyBindings[t].binding.parsedPath;h=new Ps(Hs.create(n,l,r),i.ValueTypeName,i.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,s,l),o[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,r=this._actionsByClip[n];this._bindAction(t,r&&r.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const r=this._actions,i=this._actionsByClip;let o=i[e];if(void 0===o)o={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,i[e]=o;else{const e=o.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=r.length,r.push(t),o.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],r=t._cacheIndex;n._cacheIndex=r,e[r]=n,e.pop(),t._cacheIndex=null;const i=t._clip.uuid,o=this._actionsByClip,a=o[i],s=a.knownActions,l=s[s.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,s[c]=l,s.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===s.length&&delete o[i],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,r=this._nActiveActions++,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,r=--this._nActiveActions,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_addInactiveBinding(t,e,n){const r=this._bindingsByRootAndName,i=this._bindings;let o=r[e];void 0===o&&(o={},r[e]=o),o[n]=t,t._cacheIndex=i.length,i.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,r=n.rootNode.uuid,i=n.path,o=this._bindingsByRootAndName,a=o[r],s=e[e.length-1],l=t._cacheIndex;s._cacheIndex=l,e[l]=s,e.pop(),delete a[i],0===Object.keys(a).length&&delete o[r]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,r=this._nActiveBindings++,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,r=--this._nActiveBindings,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new Ua(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,r=--this._nActiveControlInterpolants,i=e[r];t.__cacheIndex=r,e[r]=t,i.__cacheIndex=n,e[n]=i}clipAction(t,e,n){const r=e||this._root,i=r.uuid;let o=\"string\"==typeof t?Ja.findByName(r,t):t;const a=null!==o?o.uuid:t,s=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==o?o.blendMode:I),void 0!==s){const t=s.actionByRoot[i];if(void 0!==t&&t.blendMode===n)return t;l=s.knownActions[0],null===o&&(o=l._clip)}if(null===o)return null;const c=new Vs(this,o,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,i),c}existingAction(t,e){const n=e||this._root,r=n.uuid,i=\"string\"==typeof t?Ja.findByName(n,t):t,o=i?i.uuid:t,a=this._actionsByClip[o];return void 0!==a&&a.actionByRoot[r]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,r=this.time+=t,i=Math.sign(t),o=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(r,t,i,o)}const a=this._bindings,s=this._nActiveBindings;for(let t=0;t!==s;++t)a[t].apply(o);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,r=this._actionsByClip,i=r[n];if(void 0!==i){const t=i.knownActions;for(let n=0,r=t.length;n!==r;++n){const r=t[n];this._deactivateAction(r);const i=r._cacheIndex,o=e[e.length-1];r._cacheIndex=null,r._byClipCacheIndex=null,o._cacheIndex=i,e[i]=o,e.pop(),this._removeInactiveBindingsForAction(r)}delete r[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const r=n[t].actionByRoot[e];void 0!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}const r=this._bindingsByRootAndName[e];if(void 0!==r)for(const t in r){const e=r[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}).prototype._controlInterpolantsResultBuffer=new Float32Array(1);(class extends ji{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}).prototype.isInstancedInterleavedBuffer=!0;class Gs{constructor(t,e,n=0,r=1/0){this.ray=new Ot(t,e),this.near=n,this.far=r,this.camera=null,this.layers=new Xt,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error(\"THREE.Raycaster: Unsupported camera type: \"+e.type)}intersectObject(t,e=!1,n=[]){return Ws(t,this,n,e),n.sort(js),n}intersectObjects(t,e=!1,n=[]){for(let r=0,i=t.length;r<i;r++)Ws(t[r],this,n,e);return n.sort(js),n}}function js(t,e){return t.distance-e.distance}function Ws(t,e,n,r){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===r){const r=t.children;for(let t=0,i=r.length;t<i;t++)Ws(r[t],e,n,!0)}}class qs{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(j(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}(class extends se{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}).prototype.isImmediateRenderObject=!0;const Xs=new ot,Ys=new kt,Zs=new kt;function Js(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,Js(t.children[n]));return e}const $s=new Float32Array(1);new Int32Array($s.buffer);const Qs=new Le({side:1,depthWrite:!1,depthTest:!1});new ln(new hn,Qs),zo.create=function(t,e){return console.log(\"THREE.Curve.create() has been deprecated\"),t.prototype=Object.create(zo.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},ss.prototype.fromPoints=function(t){return console.warn(\"THREE.Path: .fromPoints() has been renamed to .setFromPoints().\"),this.setFromPoints(t)},class extends Lo{constructor(t=10,e=10,n=4473924,r=8947848){n=new Ae(n),r=new Ae(r);const i=e/2,o=t/e,a=t/2,s=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=o){s.push(-a,0,h,a,0,h),s.push(h,0,-a,h,0,a);const e=t===i?n:r;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new Ge;c.setAttribute(\"position\",new Ne(s,3)),c.setAttribute(\"color\",new Ne(l,3));super(c,new xo({vertexColors:!0,toneMapped:!1})),this.type=\"GridHelper\"}}.prototype.setColors=function(){console.error(\"THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.\")},class extends Lo{constructor(t){const e=Js(t),n=new Ge,r=[],i=[],o=new Ae(0,0,1),a=new Ae(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(r.push(0,0,0),r.push(0,0,0),i.push(o.r,o.g,o.b),i.push(a.r,a.g,a.b))}n.setAttribute(\"position\",new Ne(r,3)),n.setAttribute(\"color\",new Ne(i,3));super(n,new xo({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type=\"SkeletonHelper\",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,r=n.getAttribute(\"position\");Zs.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const i=e[t];i.parent&&i.parent.isBone&&(Ys.multiplyMatrices(Zs,i.matrixWorld),Xs.setFromMatrixPosition(Ys),r.setXYZ(n,Xs.x,Xs.y,Xs.z),Ys.multiplyMatrices(Zs,i.parent.matrixWorld),Xs.setFromMatrixPosition(Ys),r.setXYZ(n+1,Xs.x,Xs.y,Xs.z),n+=2)}n.getAttribute(\"position\").needsUpdate=!0,super.updateMatrixWorld(t)}}.prototype.update=function(){console.error(\"THREE.SkeletonHelper: update() no longer needs to be called.\")},ts.prototype.extractUrlBase=function(t){return console.warn(\"THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.\"),class{static decodeText(t){if(\"undefined\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\"\";for(let n=0,r=t.length;n<r;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\"/\");return-1===e?\"./\":t.substr(0,e+1)}}.extractUrlBase(t)},ts.Handlers={add:function(){console.error(\"THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.\")},get:function(){console.error(\"THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.\")}},lt.prototype.center=function(t){return console.warn(\"THREE.Box3: .center() has been renamed to .getCenter().\"),this.getCenter(t)},lt.prototype.empty=function(){return console.warn(\"THREE.Box3: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},lt.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},lt.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},lt.prototype.size=function(t){return console.warn(\"THREE.Box3: .size() has been renamed to .getSize().\"),this.getSize(t)},At.prototype.empty=function(){return console.warn(\"THREE.Sphere: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},An.prototype.setFromMatrix=function(t){return console.warn(\"THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().\"),this.setFromProjectionMatrix(t)},Z.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},Z.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},Z.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix3: .multiplyVector3Array() has been removed.\")},Z.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},Z.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix3: .applyToVector3Array() has been removed.\")},Z.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},kt.prototype.extractPosition=function(t){return console.warn(\"THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().\"),this.copyPosition(t)},kt.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},kt.prototype.getPosition=function(){return console.warn(\"THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.\"),(new ot).setFromMatrixColumn(this,3)},kt.prototype.setRotationFromQuaternion=function(t){return console.warn(\"THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().\"),this.makeRotationFromQuaternion(t)},kt.prototype.multiplyToArray=function(){console.warn(\"THREE.Matrix4: .multiplyToArray() has been removed.\")},kt.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.multiplyVector4=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix4: .multiplyVector3Array() has been removed.\")},kt.prototype.rotateAxis=function(t){console.warn(\"THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.\"),t.transformDirection(this)},kt.prototype.crossVector=function(t){return console.warn(\"THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.translate=function(){console.error(\"THREE.Matrix4: .translate() has been removed.\")},kt.prototype.rotateX=function(){console.error(\"THREE.Matrix4: .rotateX() has been removed.\")},kt.prototype.rotateY=function(){console.error(\"THREE.Matrix4: .rotateY() has been removed.\")},kt.prototype.rotateZ=function(){console.error(\"THREE.Matrix4: .rotateZ() has been removed.\")},kt.prototype.rotateByAxis=function(){console.error(\"THREE.Matrix4: .rotateByAxis() has been removed.\")},kt.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix4: .applyToVector3Array() has been removed.\")},kt.prototype.makeFrustum=function(t,e,n,r,i,o){return console.warn(\"THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.\"),this.makePerspective(t,e,r,n,i,o)},kt.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},Sn.prototype.isIntersectionLine=function(t){return console.warn(\"THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().\"),this.intersectsLine(t)},it.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.\"),t.applyQuaternion(this)},it.prototype.inverse=function(){return console.warn(\"THREE.Quaternion: .inverse() has been renamed to invert().\"),this.invert()},Ot.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},Ot.prototype.isIntersectionPlane=function(t){return console.warn(\"THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().\"),this.intersectsPlane(t)},Ot.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},ye.prototype.area=function(){return console.warn(\"THREE.Triangle: .area() has been renamed to .getArea().\"),this.getArea()},ye.prototype.barycoordFromPoint=function(t,e){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),this.getBarycoord(t,e)},ye.prototype.midpoint=function(t){return console.warn(\"THREE.Triangle: .midpoint() has been renamed to .getMidpoint().\"),this.getMidpoint(t)},ye.prototypenormal=function(t){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),this.getNormal(t)},ye.prototype.plane=function(t){return console.warn(\"THREE.Triangle: .plane() has been renamed to .getPlane().\"),this.getPlane(t)},ye.barycoordFromPoint=function(t,e,n,r,i){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),ye.getBarycoord(t,e,n,r,i)},ye.normal=function(t,e,n,r){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),ye.getNormal(t,e,n,r)},ls.prototype.extractAllPoints=function(t){return console.warn(\"THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.\"),this.extractPoints(t)},ls.prototype.extrude=function(t){return console.warn(\"THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.\"),new Pa(this,t)},ls.prototype.makeGeometry=function(t){return console.warn(\"THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.\"),new Da(this,t)},Y.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},Y.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},Y.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},ot.prototype.setEulerFromRotationMatrix=function(){console.error(\"THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.\")},ot.prototype.setEulerFromQuaternion=function(){console.error(\"THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.\")},ot.prototype.getPositionFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().\"),this.setFromMatrixPosition(t)},ot.prototype.getScaleFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().\"),this.setFromMatrixScale(t)},ot.prototype.getColumnFromMatrix=function(t,e){return console.warn(\"THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().\"),this.setFromMatrixColumn(e,t)},ot.prototype.applyProjection=function(t){return console.warn(\"THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.\"),this.applyMatrix4(t)},ot.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},ot.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},ot.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},et.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},et.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},se.prototype.getChildByName=function(t){return console.warn(\"THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().\"),this.getObjectByName(t)},se.prototype.renderDepth=function(){console.warn(\"THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.\")},se.prototype.translate=function(t,e){return console.warn(\"THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.\"),this.translateOnAxis(e,t)},se.prototype.getWorldRotation=function(){console.error(\"THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.\")},se.prototype.applyMatrix=function(t){return console.warn(\"THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(se.prototype,{eulerOrder:{get:function(){return console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order},set:function(t){console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order=t}},useQuaternion:{get:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")},set:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")}}}),ln.prototype.setDrawMode=function(){console.error(\"THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")},Object.defineProperties(ln.prototype,{drawMode:{get:function(){return console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.\"),0},set:function(){console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")}}}),fo.prototype.initBones=function(){console.error(\"THREE.SkinnedMesh: initBones() has been removed.\")},gn.prototype.setLens=function(t,e){console.warn(\"THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.\"),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(cs.prototype,{onlyShadow:{set:function(){console.warn(\"THREE.Light: .onlyShadow has been removed.\")}},shadowCameraFov:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFov is now .shadow.camera.fov.\"),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn(\"THREE.Light: .shadowCameraLeft is now .shadow.camera.left.\"),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn(\"THREE.Light: .shadowCameraRight is now .shadow.camera.right.\"),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn(\"THREE.Light: .shadowCameraTop is now .shadow.camera.top.\"),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn(\"THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.\"),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn(\"THREE.Light: .shadowCameraNear is now .shadow.camera.near.\"),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFar is now .shadow.camera.far.\"),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn(\"THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.\")}},shadowBias:{set:function(t){console.warn(\"THREE.Light: .shadowBias is now .shadow.bias.\"),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn(\"THREE.Light: .shadowDarkness has been removed.\")}},shadowMapWidth:{set:function(t){console.warn(\"THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.\"),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn(\"THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.\"),this.shadow.mapSize.height=t}}}),Object.defineProperties(Re.prototype,{length:{get:function(){return console.warn(\"THREE.BufferAttribute: .length has been deprecated. Use .count instead.\"),this.array.length}},dynamic:{get:function(){return console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.usage===z},set:function(){console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.setUsage(z)}}}),Re.prototype.setDynamic=function(t){return console.warn(\"THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?z:k),this},Re.prototype.copyIndicesArray=function(){console.error(\"THREE.BufferAttribute: .copyIndicesArray() has been removed.\")},Re.prototype.setArray=function(){console.error(\"THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},Ge.prototype.addIndex=function(t){console.warn(\"THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().\"),this.setIndex(t)},Ge.prototype.addAttribute=function(t,e){return console.warn(\"THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().\"),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?\"index\"===t?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),this.setIndex(e),this):this.setAttribute(t,e):(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),this.setAttribute(t,new Re(arguments[1],arguments[2])))},Ge.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn(\"THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.\"),console.warn(\"THREE.BufferGeometry: .addDrawCall() is now .addGroup().\"),this.addGroup(t,e)},Ge.prototype.clearDrawCalls=function(){console.warn(\"THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().\"),this.clearGroups()},Ge.prototype.computeOffsets=function(){console.warn(\"THREE.BufferGeometry: .computeOffsets() has been removed.\")},Ge.prototype.removeAttribute=function(t){return console.warn(\"THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().\"),this.deleteAttribute(t)},Ge.prototype.applyMatrix=function(t){return console.warn(\"THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(Ge.prototype,{drawcalls:{get:function(){return console.error(\"THREE.BufferGeometry: .drawcalls has been renamed to .groups.\"),this.groups}},offsets:{get:function(){return console.warn(\"THREE.BufferGeometry: .offsets has been renamed to .groups.\"),this.groups}}}),ji.prototype.setDynamic=function(t){return console.warn(\"THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?z:k),this},ji.prototype.setArray=function(){console.error(\"THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},Pa.prototype.getArrays=function(){console.error(\"THREE.ExtrudeGeometry: .getArrays() has been removed.\")},Pa.prototype.addShapeList=function(){console.error(\"THREE.ExtrudeGeometry: .addShapeList() has been removed.\")},Pa.prototype.addShape=function(){console.error(\"THREE.ExtrudeGeometry: .addShape() has been removed.\")},Gi.prototype.dispose=function(){console.error(\"THREE.Scene: .dispose() has been removed.\")},Object.defineProperties(_e.prototype,{wrapAround:{get:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")},set:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")}},overdraw:{get:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")},set:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")}},wrapRGB:{get:function(){return console.warn(\"THREE.Material: .wrapRGB has been removed.\"),new Ae}},shading:{get:function(){console.error(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\")},set:function(t){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask},set:function(t){console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask=t}}}),Object.defineProperties(fn.prototype,{derivatives:{get:function(){return console.warn(\"THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives},set:function(t){console.warn(\"THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives=t}}}),Vi.prototype.clearTarget=function(t,e,n,r){console.warn(\"THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.\"),this.setRenderTarget(t),this.clear(e,n,r)},Vi.prototype.animate=function(t){console.warn(\"THREE.WebGLRenderer: .animate() is now .setAnimationLoop().\"),this.setAnimationLoop(t)},Vi.prototype.getCurrentRenderTarget=function(){return console.warn(\"THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().\"),this.getRenderTarget()},Vi.prototype.getMaxAnisotropy=function(){return console.warn(\"THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().\"),this.capabilities.getMaxAnisotropy()},Vi.prototype.getPrecision=function(){return console.warn(\"THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.\"),this.capabilities.precision},Vi.prototype.resetGLState=function(){return console.warn(\"THREE.WebGLRenderer: .resetGLState() is now .state.reset().\"),this.state.reset()},Vi.prototype.supportsFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).\"),this.extensions.get(\"OES_texture_float\")},Vi.prototype.supportsHalfFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).\"),this.extensions.get(\"OES_texture_half_float\")},Vi.prototype.supportsStandardDerivatives=function(){return console.warn(\"THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).\"),this.extensions.get(\"OES_standard_derivatives\")},Vi.prototype.supportsCompressedTextureS3TC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_s3tc\")},Vi.prototype.supportsCompressedTexturePVRTC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_pvrtc\")},Vi.prototype.supportsBlendMinMax=function(){return console.warn(\"THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).\"),this.extensions.get(\"EXT_blend_minmax\")},Vi.prototype.supportsVertexTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.\"),this.capabilities.vertexTextures},Vi.prototype.supportsInstancedArrays=function(){return console.warn(\"THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).\"),this.extensions.get(\"ANGLE_instanced_arrays\")},Vi.prototype.enableScissorTest=function(t){console.warn(\"THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().\"),this.setScissorTest(t)},Vi.prototype.initMaterial=function(){console.warn(\"THREE.WebGLRenderer: .initMaterial() has been removed.\")},Vi.prototype.addPrePlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPrePlugin() has been removed.\")},Vi.prototype.addPostPlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPostPlugin() has been removed.\")},Vi.prototype.updateShadowMap=function(){console.warn(\"THREE.WebGLRenderer: .updateShadowMap() has been removed.\")},Vi.prototype.setFaceCulling=function(){console.warn(\"THREE.WebGLRenderer: .setFaceCulling() has been removed.\")},Vi.prototype.allocTextureUnit=function(){console.warn(\"THREE.WebGLRenderer: .allocTextureUnit() has been removed.\")},Vi.prototype.setTexture=function(){console.warn(\"THREE.WebGLRenderer: .setTexture() has been removed.\")},Vi.prototype.setTexture2D=function(){console.warn(\"THREE.WebGLRenderer: .setTexture2D() has been removed.\")},Vi.prototype.setTextureCube=function(){console.warn(\"THREE.WebGLRenderer: .setTextureCube() has been removed.\")},Vi.prototype.getActiveMipMapLevel=function(){return console.warn(\"THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().\"),this.getActiveMipmapLevel()},Object.defineProperties(Vi.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.\"),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.\"),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")}},context:{get:function(){return console.warn(\"THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.\"),this.getContext()}},vr:{get:function(){return console.warn(\"THREE.WebGLRenderer: .vr has been renamed to .xr\"),this.xr}},gammaInput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\"),!1},set:function(){console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\")}},gammaOutput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),!1},set:function(t){console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),this.outputEncoding=!0===t?3001:N}},toneMappingWhitePoint:{get:function(){return console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\"),1},set:function(){console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\")}}}),Object.defineProperties(Di.prototype,{cullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")}},renderReverseSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")}},renderSingleSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")}}}),Object.defineProperties(nt.prototype,{wrapS:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy=t}},offset:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset=t}},repeat:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat=t}},format:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format=t}},type:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps=t}}}),class extends se{constructor(t){super(),this.type=\"Audio\",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=\"empty\",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"audioNode\",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaNode\",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaStreamNode\",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=\"buffer\",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn(\"THREE.Audio: Audio is already playing.\");if(!1===this.hasPlaybackControl)return void console.warn(\"THREE.Audio: this Audio has no playback control.\");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn(\"THREE.Audio: this Audio has no playback control.\"),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}.prototype.load=function(t){console.warn(\"THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.\");const e=this;return(new As).load(t,(function(t){e.setBuffer(t)})),this},yn.prototype.updateCubeMap=function(t,e){return console.warn(\"THREE.CubeCamera: .updateCubeMap() is now .update().\"),this.update(t,e)},yn.prototype.clear=function(t,e,n,r){return console.warn(\"THREE.CubeCamera: .clear() is now .renderTarget.clear().\"),this.renderTarget.clear(t,e,n,r)},$.crossOrigin=void 0,$.loadTexture=function(t,e,n,r){console.warn(\"THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.\");const i=new os;i.setCrossOrigin(this.crossOrigin);const o=i.load(t,n,void 0,r);return e&&(o.mapping=e),o},$.loadTextureCube=function(t,e,n,r){console.warn(\"THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.\");const i=new is;i.setCrossOrigin(this.crossOrigin);const o=i.load(t,n,void 0,r);return e&&(o.mapping=e),o},$.loadCompressedTexture=function(){console.error(\"THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.\")},$.loadCompressedTextureCube=function(){console.error(\"THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.\")},\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:\"130\"}})),\"undefined\"!=typeof window&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=\"130\");const Ks=new Sn,tl=new Gs,el=new Y,nl=new ot,rl=new ot,il=new ot,ol=new kt;class al extends F{constructor(t,e,n){super(),n.style.touchAction=\"none\";let r=null,i=null;const o=[],a=this;function s(){n.addEventListener(\"pointermove\",c),n.addEventListener(\"pointerdown\",h),n.addEventListener(\"pointerup\",u),n.addEventListener(\"pointerleave\",u)}function l(){n.removeEventListener(\"pointermove\",c),n.removeEventListener(\"pointerdown\",h),n.removeEventListener(\"pointerup\",u),n.removeEventListener(\"pointerleave\",u),n.style.cursor=\"\"}function c(s){if(!1!==a.enabled){if(d(s),tl.setFromCamera(el,e),r)return tl.ray.intersectPlane(Ks,rl)&&r.position.copy(rl.sub(nl).applyMatrix4(ol)),void a.dispatchEvent({type:\"drag\",object:r});if(\"mouse\"===s.pointerType||\"pen\"===s.pointerType)if(o.length=0,tl.setFromCamera(el,e),tl.intersectObjects(t,!0,o),o.length>0){const t=o[0].object;Ks.setFromNormalAndCoplanarPoint(e.getWorldDirection(Ks.normal),il.setFromMatrixPosition(t.matrixWorld)),i!==t&&null!==i&&(a.dispatchEvent({type:\"hoveroff\",object:i}),n.style.cursor=\"auto\",i=null),i!==t&&(a.dispatchEvent({type:\"hoveron\",object:t}),n.style.cursor=\"pointer\",i=t)}else null!==i&&(a.dispatchEvent({type:\"hoveroff\",object:i}),n.style.cursor=\"auto\",i=null)}}function h(i){!1!==a.enabled&&(d(i),o.length=0,tl.setFromCamera(el,e),tl.intersectObjects(t,!0,o),o.length>0&&(r=!0===a.transformGroup?t[0]:o[0].object,Ks.setFromNormalAndCoplanarPoint(e.getWorldDirection(Ks.normal),il.setFromMatrixPosition(r.matrixWorld)),tl.ray.intersectPlane(Ks,rl)&&(ol.copy(r.parent.matrixWorld).invert(),nl.copy(rl).sub(il.setFromMatrixPosition(r.matrixWorld))),n.style.cursor=\"move\",a.dispatchEvent({type:\"dragstart\",object:r})))}function u(){!1!==a.enabled&&(r&&(a.dispatchEvent({type:\"dragend\",object:r}),r=null),n.style.cursor=i?\"pointer\":\"auto\")}function d(t){const e=n.getBoundingClientRect();el.x=(t.clientX-e.left)/e.width*2-1,el.y=-(t.clientY-e.top)/e.height*2+1}s(),this.enabled=!0,this.transformGroup=!1,this.activate=s,this.deactivate=l,this.dispose=function(){l()},this.getObjects=function(){return t}}}function sl(t,e,n){var r,i=1;function o(){var o,a,s=r.length,l=0,c=0,h=0;for(o=0;o<s;++o)l+=(a=r[o]).x||0,c+=a.y||0,h+=a.z||0;for(l=(l/s-t)*i,c=(c/s-e)*i,h=(h/s-n)*i,o=0;o<s;++o)a=r[o],l&&(a.x-=l),c&&(a.y-=c),h&&(a.z-=h)}return null==t&&(t=0),null==e&&(e=0),null==n&&(n=0),o.initialize=function(t){r=t},o.x=function(e){return arguments.length?(t=+e,o):t},o.y=function(t){return arguments.length?(e=+t,o):e},o.z=function(t){return arguments.length?(n=+t,o):n},o.strength=function(t){return arguments.length?(i=+t,o):i},o}function ll(t,e,n){if(isNaN(e))return t;var r,i,o,a,s,l,c=t._root,h={data:n},u=t._x0,d=t._x1;if(!c)return t._root=h,t;for(;c.length;)if((a=e>=(i=(u+d)/2))?u=i:d=i,r=c,!(c=c[s=+a]))return r[s]=h,t;if(e===(o=+t._x.call(null,c.data)))return h.next=c,r?r[s]=h:t._root=h,t;do{r=r?r[s]=new Array(2):t._root=new Array(2),(a=e>=(i=(u+d)/2))?u=i:d=i}while((s=+a)==(l=+(o>=i)));return r[l]=c,r[s]=h,t}function cl(t,e,n){this.node=t,this.x0=e,this.x1=n}function hl(t){return t[0]}function ul(t,e){var n=new dl(null==e?hl:e,NaN,NaN);return null==t?n:n.addAll(t)}function dl(t,e,n){this._x=t,this._x0=e,this._x1=n,this._root=void 0}function pl(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var fl=ul.prototype=dl.prototype;function ml(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o,a,s,l,c,h,u,d,p=t._root,f={data:r},m=t._x0,g=t._y0,v=t._x1,y=t._y1;if(!p)return t._root=f,t;for(;p.length;)if((c=e>=(o=(m+v)/2))?m=o:v=o,(h=n>=(a=(g+y)/2))?g=a:y=a,i=p,!(p=p[u=h<<1|c]))return i[u]=f,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&n===l)return f.next=p,i?i[u]=f:t._root=f,t;do{i=i?i[u]=new Array(4):t._root=new Array(4),(c=e>=(o=(m+v)/2))?m=o:v=o,(h=n>=(a=(g+y)/2))?g=a:y=a}while((u=h<<1|c)==(d=(l>=a)<<1|s>=o));return i[d]=p,i[u]=f,t}function gl(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function vl(t){return t[0]}function yl(t){return t[1]}function xl(t,e,n){var r=new _l(null==e?vl:e,null==n?yl:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function _l(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function bl(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}fl.copy=function(){var t,e,n=new dl(this._x,this._x0,this._x1),r=this._root;if(!r)return n;if(!r.length)return n._root=pl(r),n;for(t=[{source:r,target:n._root=new Array(2)}];r=t.pop();)for(var i=0;i<2;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(2)}):r.target[i]=pl(e));return n},fl.add=function(t){var e=+this._x.call(null,t);return ll(this.cover(e),e,t)},fl.addAll=function(t){var e,n,r=t.length,i=new Array(r),o=1/0,a=-1/0;for(e=0;e<r;++e)isNaN(n=+this._x.call(null,t[e]))||(i[e]=n,n<o&&(o=n),n>a&&(a=n));if(o>a)return this;for(this.cover(o).cover(a),e=0;e<r;++e)ll(this,i[e],t[e]);return this},fl.cover=function(t){if(isNaN(t=+t))return this;var e=this._x0,n=this._x1;if(isNaN(e))n=(e=Math.floor(t))+1;else{for(var r,i,o=n-e||1,a=this._root;e>t||t>=n;)switch(i=+(t<e),(r=new Array(2))[i]=a,a=r,o*=2,i){case 0:n=e+o;break;case 1:e=n-o}this._root&&this._root.length&&(this._root=a)}return this._x0=e,this._x1=n,this},fl.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},fl.extent=function(t){return arguments.length?this.cover(+t[0][0]).cover(+t[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]},fl.find=function(t,e){var n,r,i,o,a,s=this._x0,l=this._x1,c=[],h=this._root;for(h&&c.push(new cl(h,s,l)),null==e?e=1/0:(s=t-e,l=t+e);o=c.pop();)if(!(!(h=o.node)||(r=o.x0)>l||(i=o.x1)<s))if(h.length){var u=(r+i)/2;c.push(new cl(h[1],u,i),new cl(h[0],r,u)),(a=+(t>=u))&&(o=c[c.length-1],c[c.length-1]=c[c.length-1-a],c[c.length-1-a]=o)}else{var d=Math.abs(t-+this._x.call(null,h.data));d<e&&(e=d,s=t-d,l=t+d,n=h.data)}return n},fl.remove=function(t){if(isNaN(o=+this._x.call(null,t)))return this;var e,n,r,i,o,a,s,l,c,h=this._root,u=this._x0,d=this._x1;if(!h)return this;if(h.length)for(;;){if((s=o>=(a=(u+d)/2))?u=a:d=a,e=h,!(h=h[l=+s]))return this;if(!h.length)break;e[l+1&1]&&(n=e,c=l)}for(;h.data!==t;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):e?(i?e[l]=i:delete e[l],(h=e[0]||e[1])&&h===(e[1]||e[0])&&!h.length&&(n?n[c]=h:this._root=h),this):(this._root=i,this)},fl.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},fl.root=function(){return this._root},fl.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},fl.visit=function(t){var e,n,r,i,o=[],a=this._root;for(a&&o.push(new cl(a,this._x0,this._x1));e=o.pop();)if(!t(a=e.node,r=e.x0,i=e.x1)&&a.length){var s=(r+i)/2;(n=a[1])&&o.push(new cl(n,s,i)),(n=a[0])&&o.push(new cl(n,r,s))}return this},fl.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new cl(this._root,this._x0,this._x1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.x1,l=(a+s)/2;(o=i[0])&&n.push(new cl(o,a,l)),(o=i[1])&&n.push(new cl(o,l,s))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.x1);return this},fl.x=function(t){return arguments.length?(this._x=t,this):this._x};var wl=xl.prototype=_l.prototype;function Ml(t,e,n,r,i){if(isNaN(e)||isNaN(n)||isNaN(r))return t;var o,a,s,l,c,h,u,d,p,f,m,g,v=t._root,y={data:i},x=t._x0,_=t._y0,b=t._z0,w=t._x1,M=t._y1,S=t._z1;if(!v)return t._root=y,t;for(;v.length;)if((d=e>=(a=(x+w)/2))?x=a:w=a,(p=n>=(s=(_+M)/2))?_=s:M=s,(f=r>=(l=(b+S)/2))?b=l:S=l,o=v,!(v=v[m=f<<2|p<<1|d]))return o[m]=y,t;if(c=+t._x.call(null,v.data),h=+t._y.call(null,v.data),u=+t._z.call(null,v.data),e===c&&n===h&&r===u)return y.next=v,o?o[m]=y:t._root=y,t;do{o=o?o[m]=new Array(8):t._root=new Array(8),(d=e>=(a=(x+w)/2))?x=a:w=a,(p=n>=(s=(_+M)/2))?_=s:M=s,(f=r>=(l=(b+S)/2))?b=l:S=l}while((m=f<<2|p<<1|d)==(g=(u>=l)<<2|(h>=s)<<1|c>=a));return o[g]=v,o[m]=y,t}function Sl(t,e,n,r,i,o,a){this.node=t,this.x0=e,this.y0=n,this.z0=r,this.x1=i,this.y1=o,this.z1=a}function El(t){return t[0]}function Tl(t){return t[1]}function Al(t){return t[2]}function Ll(t,e,n,r){var i=new Cl(null==e?El:e,null==n?Tl:n,null==r?Al:r,NaN,NaN,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function Cl(t,e,n,r,i,o,a,s,l){this._x=t,this._y=e,this._z=n,this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=l,this._root=void 0}function Pl(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}wl.copy=function(){var t,e,n=new _l(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=bl(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=bl(e));return n},wl.add=function(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return ml(this.cover(e,n),e,n,t)},wl.addAll=function(t){var e,n,r,i,o=t.length,a=new Array(o),s=new Array(o),l=1/0,c=1/0,h=-1/0,u=-1/0;for(n=0;n<o;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||(a[n]=r,s[n]=i,r<l&&(l=r),r>h&&(h=r),i<c&&(c=i),i>u&&(u=i));if(l>h||c>u)return this;for(this.cover(l,c).cover(h,u),n=0;n<o;++n)ml(this,a[n],s[n],t[n]);return this},wl.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a,s,l=i-n||1,c=this._root;n>t||t>=i||r>e||e>=o;)switch(s=(e<r)<<1|t<n,(a=new Array(4))[s]=c,c=a,l*=2,s){case 0:i=n+l,o=r+l;break;case 1:n=i-l,o=r+l;break;case 2:i=n+l,r=o-l;break;case 3:n=i-l,r=o-l}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this},wl.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},wl.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},wl.find=function(t,e,n){var r,i,o,a,s,l,c,h=this._x0,u=this._y0,d=this._x1,p=this._y1,f=[],m=this._root;for(m&&f.push(new gl(m,h,u,d,p)),null==n?n=1/0:(h=t-n,u=e-n,d=t+n,p=e+n,n*=n);l=f.pop();)if(!(!(m=l.node)||(i=l.x0)>d||(o=l.y0)>p||(a=l.x1)<h||(s=l.y1)<u))if(m.length){var g=(i+a)/2,v=(o+s)/2;f.push(new gl(m[3],g,v,a,s),new gl(m[2],i,v,g,s),new gl(m[1],g,o,a,v),new gl(m[0],i,o,g,v)),(c=(e>=v)<<1|t>=g)&&(l=f[f.length-1],f[f.length-1]=f[f.length-1-c],f[f.length-1-c]=l)}else{var y=t-+this._x.call(null,m.data),x=e-+this._y.call(null,m.data),_=y*y+x*x;if(_<n){var b=Math.sqrt(n=_);h=t-b,u=e-b,d=t+b,p=e+b,r=m.data}}return r},wl.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,r,i,o,a,s,l,c,h,u,d,p=this._root,f=this._x0,m=this._y0,g=this._x1,v=this._y1;if(!p)return this;if(p.length)for(;;){if((c=o>=(s=(f+g)/2))?f=s:g=s,(h=a>=(l=(m+v)/2))?m=l:v=l,e=p,!(p=p[u=h<<1|c]))return this;if(!p.length)break;(e[u+1&3]||e[u+2&3]||e[u+3&3])&&(n=e,d=u)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):e?(i?e[u]=i:delete e[u],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=i,this)},wl.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},wl.root=function(){return this._root},wl.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},wl.visit=function(t){var e,n,r,i,o,a,s=[],l=this._root;for(l&&s.push(new gl(l,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(l=e.node,r=e.x0,i=e.y0,o=e.x1,a=e.y1)&&l.length){var c=(r+o)/2,h=(i+a)/2;(n=l[3])&&s.push(new gl(n,c,h,o,a)),(n=l[2])&&s.push(new gl(n,r,h,c,a)),(n=l[1])&&s.push(new gl(n,c,i,o,h)),(n=l[0])&&s.push(new gl(n,r,i,c,h))}return this},wl.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new gl(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.y0,l=e.x1,c=e.y1,h=(a+l)/2,u=(s+c)/2;(o=i[0])&&n.push(new gl(o,a,s,h,u)),(o=i[1])&&n.push(new gl(o,h,s,l,u)),(o=i[2])&&n.push(new gl(o,a,u,h,c)),(o=i[3])&&n.push(new gl(o,h,u,l,c))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},wl.x=function(t){return arguments.length?(this._x=t,this):this._x},wl.y=function(t){return arguments.length?(this._y=t,this):this._y};var Rl=Ll.prototype=Cl.prototype;function Dl(t){return function(){return t}}function Il(t){return 1e-6*(t()-.5)}function Nl(t){return t.index}function Ol(t,e){var n=t.get(e);if(!n)throw new Error(\"node not found: \"+e);return n}function kl(t){var e,n,r,i,o,a,s,l=Nl,c=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},h=Dl(30),u=1;function d(r){for(var o=0,l=t.length;o<u;++o)for(var c,h,d,p,f,m=0,g=0,v=0,y=0;m<l;++m)h=(c=t[m]).source,g=(d=c.target).x+d.vx-h.x-h.vx||Il(s),i>1&&(v=d.y+d.vy-h.y-h.vy||Il(s)),i>2&&(y=d.z+d.vz-h.z-h.vz||Il(s)),g*=p=((p=Math.sqrt(g*g+v*v+y*y))-n[m])/p*r*e[m],v*=p,y*=p,d.vx-=g*(f=a[m]),i>1&&(d.vy-=v*f),i>2&&(d.vz-=y*f),h.vx+=g*(f=1-f),i>1&&(h.vy+=v*f),i>2&&(h.vz+=y*f)}function p(){if(r){var i,s,c=r.length,h=t.length,u=new Map(r.map(((t,e)=>[l(t,e,r),t])));for(i=0,o=new Array(c);i<h;++i)(s=t[i]).index=i,\"object\"!=typeof s.source&&(s.source=Ol(u,s.source)),\"object\"!=typeof s.target&&(s.target=Ol(u,s.target)),o[s.source.index]=(o[s.source.index]||0)+1,o[s.target.index]=(o[s.target.index]||0)+1;for(i=0,a=new Array(h);i<h;++i)s=t[i],a[i]=o[s.source.index]/(o[s.source.index]+o[s.target.index]);e=new Array(h),f(),n=new Array(h),m()}}function f(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+c(t[n],n,t)}function m(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+h(t[e],e,t)}return null==t&&(t=[]),d.initialize=function(t,...e){r=t,s=e.find((t=>\"function\"==typeof t))||Math.random,i=e.find((t=>[1,2,3].includes(t)))||2,p()},d.links=function(e){return arguments.length?(t=e,p(),d):t},d.id=function(t){return arguments.length?(l=t,d):l},d.iterations=function(t){return arguments.length?(u=+t,d):u},d.strength=function(t){return arguments.length?(c=\"function\"==typeof t?t:Dl(+t),f(),d):c},d.distance=function(t){return arguments.length?(h=\"function\"==typeof t?t:Dl(+t),m(),d):h},d}Rl.copy=function(){var t,e,n=new Cl(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),r=this._root;if(!r)return n;if(!r.length)return n._root=Pl(r),n;for(t=[{source:r,target:n._root=new Array(8)}];r=t.pop();)for(var i=0;i<8;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(8)}):r.target[i]=Pl(e));return n},Rl.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t),r=+this._z.call(null,t);return Ml(this.cover(e,n,r),e,n,r,t)},Rl.addAll=function(t){var e,n,r,i,o,a=t.length,s=new Array(a),l=new Array(a),c=new Array(a),h=1/0,u=1/0,d=1/0,p=-1/0,f=-1/0,m=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||isNaN(o=+this._z.call(null,e))||(s[n]=r,l[n]=i,c[n]=o,r<h&&(h=r),r>p&&(p=r),i<u&&(u=i),i>f&&(f=i),o<d&&(d=o),o>m&&(m=o));if(h>p||u>f||d>m)return this;for(this.cover(h,u,d).cover(p,f,m),n=0;n<a;++n)Ml(this,s[n],l[n],c[n],t[n]);return this},Rl.cover=function(t,e,n){if(isNaN(t=+t)||isNaN(e=+e)||isNaN(n=+n))return this;var r=this._x0,i=this._y0,o=this._z0,a=this._x1,s=this._y1,l=this._z1;if(isNaN(r))a=(r=Math.floor(t))+1,s=(i=Math.floor(e))+1,l=(o=Math.floor(n))+1;else{for(var c,h,u=a-r||1,d=this._root;r>t||t>=a||i>e||e>=s||o>n||n>=l;)switch(h=(n<o)<<2|(e<i)<<1|t<r,(c=new Array(8))[h]=d,d=c,u*=2,h){case 0:a=r+u,s=i+u,l=o+u;break;case 1:r=a-u,s=i+u,l=o+u;break;case 2:a=r+u,i=s-u,l=o+u;break;case 3:r=a-u,i=s-u,l=o+u;break;case 4:a=r+u,s=i+u,o=l-u;break;case 5:r=a-u,s=i+u,o=l-u;break;case 6:a=r+u,i=s-u,o=l-u;break;case 7:r=a-u,i=s-u,o=l-u}this._root&&this._root.length&&(this._root=d)}return this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=l,this},Rl.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},Rl.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1],+t[0][2]).cover(+t[1][0],+t[1][1],+t[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]},Rl.find=function(t,e,n,r){var i,o,a,s,l,c,h,u,d,p=this._x0,f=this._y0,m=this._z0,g=this._x1,v=this._y1,y=this._z1,x=[],_=this._root;for(_&&x.push(new Sl(_,p,f,m,g,v,y)),null==r?r=1/0:(p=t-r,f=e-r,m=n-r,g=t+r,v=e+r,y=n+r,r*=r);u=x.pop();)if(!(!(_=u.node)||(o=u.x0)>g||(a=u.y0)>v||(s=u.z0)>y||(l=u.x1)<p||(c=u.y1)<f||(h=u.z1)<m))if(_.length){var b=(o+l)/2,w=(a+c)/2,M=(s+h)/2;x.push(new Sl(_[7],b,w,M,l,c,h),new Sl(_[6],o,w,M,b,c,h),new Sl(_[5],b,a,M,l,w,h),new Sl(_[4],o,a,M,b,w,h),new Sl(_[3],b,w,s,l,c,M),new Sl(_[2],o,w,s,b,c,M),new Sl(_[1],b,a,s,l,w,M),new Sl(_[0],o,a,s,b,w,M)),(d=(n>=M)<<2|(e>=w)<<1|t>=b)&&(u=x[x.length-1],x[x.length-1]=x[x.length-1-d],x[x.length-1-d]=u)}else{var S=t-+this._x.call(null,_.data),E=e-+this._y.call(null,_.data),T=n-+this._z.call(null,_.data),A=S*S+E*E+T*T;if(A<r){var L=Math.sqrt(r=A);p=t-L,f=e-L,m=n-L,g=t+L,v=e+L,y=n+L,i=_.data}}return i},Rl.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t))||isNaN(s=+this._z.call(null,t)))return this;var e,n,r,i,o,a,s,l,c,h,u,d,p,f,m,g=this._root,v=this._x0,y=this._y0,x=this._z0,_=this._x1,b=this._y1,w=this._z1;if(!g)return this;if(g.length)for(;;){if((u=o>=(l=(v+_)/2))?v=l:_=l,(d=a>=(c=(y+b)/2))?y=c:b=c,(p=s>=(h=(x+w)/2))?x=h:w=h,e=g,!(g=g[f=p<<2|d<<1|u]))return this;if(!g.length)break;(e[f+1&7]||e[f+2&7]||e[f+3&7]||e[f+4&7]||e[f+5&7]||e[f+6&7]||e[f+7&7])&&(n=e,m=f)}for(;g.data!==t;)if(r=g,!(g=g.next))return this;return(i=g.next)&&delete g.next,r?(i?r.next=i:delete r.next,this):e?(i?e[f]=i:delete e[f],(g=e[0]||e[1]||e[2]||e[3]||e[4]||e[5]||e[6]||e[7])&&g===(e[7]||e[6]||e[5]||e[4]||e[3]||e[2]||e[1]||e[0])&&!g.length&&(n?n[m]=g:this._root=g),this):(this._root=i,this)},Rl.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},Rl.root=function(){return this._root},Rl.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},Rl.visit=function(t){var e,n,r,i,o,a,s,l,c=[],h=this._root;for(h&&c.push(new Sl(h,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=c.pop();)if(!t(h=e.node,r=e.x0,i=e.y0,o=e.z0,a=e.x1,s=e.y1,l=e.z1)&&h.length){var u=(r+a)/2,d=(i+s)/2,p=(o+l)/2;(n=h[7])&&c.push(new Sl(n,u,d,p,a,s,l)),(n=h[6])&&c.push(new Sl(n,r,d,p,u,s,l)),(n=h[5])&&c.push(new Sl(n,u,i,p,a,d,l)),(n=h[4])&&c.push(new Sl(n,r,i,p,u,d,l)),(n=h[3])&&c.push(new Sl(n,u,d,o,a,s,p)),(n=h[2])&&c.push(new Sl(n,r,d,o,u,s,p)),(n=h[1])&&c.push(new Sl(n,u,i,o,a,d,p)),(n=h[0])&&c.push(new Sl(n,r,i,o,u,d,p))}return this},Rl.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new Sl(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.y0,l=e.z0,c=e.x1,h=e.y1,u=e.z1,d=(a+c)/2,p=(s+h)/2,f=(l+u)/2;(o=i[0])&&n.push(new Sl(o,a,s,l,d,p,f)),(o=i[1])&&n.push(new Sl(o,d,s,l,c,p,f)),(o=i[2])&&n.push(new Sl(o,a,p,l,d,h,f)),(o=i[3])&&n.push(new Sl(o,d,p,l,c,h,f)),(o=i[4])&&n.push(new Sl(o,a,s,f,d,p,u)),(o=i[5])&&n.push(new Sl(o,d,s,f,c,p,u)),(o=i[6])&&n.push(new Sl(o,a,p,f,d,h,u)),(o=i[7])&&n.push(new Sl(o,d,p,f,c,h,u))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.z0,e.x1,e.y1,e.z1);return this},Rl.x=function(t){return arguments.length?(this._x=t,this):this._x},Rl.y=function(t){return arguments.length?(this._y=t,this):this._y},Rl.z=function(t){return arguments.length?(this._z=t,this):this._z};var zl={value:()=>{}};function Bl(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+\"\")||t in r||/[\\s.]/.test(t))throw new Error(\"illegal type: \"+t);r[t]=[]}return new Fl(r)}function Fl(t){this._=t}function Ul(t,e){return t.trim().split(/^|\\s+/).map((function(t){var n=\"\",r=t.indexOf(\".\");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);return{type:t,name:n}}))}function Hl(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function Vl(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=zl,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}Fl.prototype=Bl.prototype={constructor:Fl,on:function(t,e){var n,r=this._,i=Ul(t+\"\",r),o=-1,a=i.length;if(!(arguments.length<2)){if(null!=e&&\"function\"!=typeof e)throw new Error(\"invalid callback: \"+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=Vl(r[n],t.name,e);else if(null==e)for(n in r)r[n]=Vl(r[n],t.name,null);return this}for(;++o<a;)if((n=(t=i[o]).type)&&(n=Hl(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Fl(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(o=0,n=(r=this._[t]).length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var Gl,jl,Wl=0,ql=0,Xl=0,Yl=0,Zl=0,Jl=0,$l=\"object\"==typeof performance&&performance.now?performance:Date,Ql=\"object\"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Kl(){return Zl||(Ql(tc),Zl=$l.now()+Jl)}function tc(){Zl=0}function ec(){this._call=this._time=this._next=null}function nc(t,e,n){var r=new ec;return r.restart(t,e,n),r}function rc(){Zl=(Yl=$l.now())+Jl,Wl=ql=0;try{!function(){Kl(),++Wl;for(var t,e=Gl;e;)(t=Zl-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Wl}()}finally{Wl=0,function(){var t,e,n=Gl,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Gl=e);jl=t,oc(r)}(),Zl=0}}function ic(){var t=$l.now(),e=t-Yl;e>1e3&&(Jl-=e,Yl=t)}function oc(t){Wl||(ql&&(ql=clearTimeout(ql)),t-Zl>24?(t<1/0&&(ql=setTimeout(rc,t-$l.now()-Jl)),Xl&&(Xl=clearInterval(Xl))):(Xl||(Yl=$l.now(),Xl=setInterval(ic,1e3)),Wl=1,Ql(rc)))}ec.prototype=nc.prototype={constructor:ec,restart:function(t,e,n){if(\"function\"!=typeof t)throw new TypeError(\"callback is not a function\");n=(null==n?Kl():+n)+(null==e?0:+e),this._next||jl===this||(jl?jl._next=this:Gl=this,jl=this),this._call=t,this._time=n,oc()},stop:function(){this._call&&(this._call=null,this._time=1/0,oc())}};const ac=4294967296;function sc(t){return t.x}function lc(t){return t.y}function cc(t){return t.z}var hc=Math.PI*(3-Math.sqrt(5)),uc=20*Math.PI/(9+Math.sqrt(221));function dc(t,e){e=e||2;var n,r=Math.min(3,Math.max(1,Math.round(e))),i=1,o=.001,a=1-Math.pow(o,1/300),s=0,l=.6,c=new Map,h=nc(p),u=Bl(\"tick\",\"end\"),d=function(){let t=1;return()=>(t=(1664525*t+1013904223)%ac)/ac}();function p(){f(),u.call(\"tick\",n),i<o&&(h.stop(),u.call(\"end\",n))}function f(e){var o,h,u=t.length;void 0===e&&(e=1);for(var d=0;d<e;++d)for(i+=(s-i)*a,c.forEach((function(t){t(i)})),o=0;o<u;++o)null==(h=t[o]).fx?h.x+=h.vx*=l:(h.x=h.fx,h.vx=0),r>1&&(null==h.fy?h.y+=h.vy*=l:(h.y=h.fy,h.vy=0)),r>2&&(null==h.fz?h.z+=h.vz*=l:(h.z=h.fz,h.vz=0));return n}function m(){for(var e,n=0,i=t.length;n<i;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),null!=e.fz&&(e.z=e.fz),isNaN(e.x)||r>1&&isNaN(e.y)||r>2&&isNaN(e.z)){var o=10*(r>2?Math.cbrt(.5+n):r>1?Math.sqrt(.5+n):n),a=n*hc,s=n*uc;1===r?e.x=o:2===r?(e.x=o*Math.cos(a),e.y=o*Math.sin(a)):(e.x=o*Math.sin(a)*Math.cos(s),e.y=o*Math.cos(a),e.z=o*Math.sin(a)*Math.sin(s))}(isNaN(e.vx)||r>1&&isNaN(e.vy)||r>2&&isNaN(e.vz))&&(e.vx=0,r>1&&(e.vy=0),r>2&&(e.vz=0))}}function g(e){return e.initialize&&e.initialize(t,d,r),e}return null==t&&(t=[]),m(),n={tick:f,restart:function(){return h.restart(p),n},stop:function(){return h.stop(),n},numDimensions:function(t){return arguments.length?(r=Math.min(3,Math.max(1,Math.round(t))),c.forEach(g),n):r},nodes:function(e){return arguments.length?(t=e,m(),c.forEach(g),n):t},alpha:function(t){return arguments.length?(i=+t,n):i},alphaMin:function(t){return arguments.length?(o=+t,n):o},alphaDecay:function(t){return arguments.length?(a=+t,n):+a},alphaTarget:function(t){return arguments.length?(s=+t,n):s},velocityDecay:function(t){return arguments.length?(l=1-t,n):1-l},randomSource:function(t){return arguments.length?(d=t,c.forEach(g),n):d},force:function(t,e){return arguments.length>1?(null==e?c.delete(t):c.set(t,g(e)),n):c.get(t)},find:function(){var e,n,i,o,a,s,l=Array.prototype.slice.call(arguments),c=l.shift()||0,h=(r>1?l.shift():null)||0,u=(r>2?l.shift():null)||0,d=l.shift()||1/0,p=0,f=t.length;for(d*=d,p=0;p<f;++p)(o=(e=c-(a=t[p]).x)*e+(n=h-(a.y||0))*n+(i=u-(a.z||0))*i)<d&&(s=a,d=o);return s},on:function(t,e){return arguments.length>1?(u.on(t,e),n):u.on(t)}}}function pc(){var t,e,n,r,i,o,a=Dl(-30),s=1,l=1/0,c=.81;function h(r){var o,a=t.length,s=(1===e?ul(t,sc):2===e?xl(t,sc,lc):3===e?Ll(t,sc,lc,cc):null).visitAfter(d);for(i=r,o=0;o<a;++o)n=t[o],s.visit(p)}function u(){if(t){var e,n,r=t.length;for(o=new Array(r),e=0;e<r;++e)n=t[e],o[n.index]=+a(n,e,t)}}function d(t){var n,r,i,a,s,l,c=0,h=0,u=t.length;if(u){for(i=a=s=l=0;l<u;++l)(n=t[l])&&(r=Math.abs(n.value))&&(c+=n.value,h+=r,i+=r*(n.x||0),a+=r*(n.y||0),s+=r*(n.z||0));c*=Math.sqrt(4/u),t.x=i/h,e>1&&(t.y=a/h),e>2&&(t.z=s/h)}else{(n=t).x=n.data.x,e>1&&(n.y=n.data.y),e>2&&(n.z=n.data.z);do{c+=o[n.data.index]}while(n=n.next)}t.value=c}function p(t,a,h,u,d){if(!t.value)return!0;var p=[h,u,d][e-1],f=t.x-n.x,m=e>1?t.y-n.y:0,g=e>2?t.z-n.z:0,v=p-a,y=f*f+m*m+g*g;if(v*v/c<y)return y<l&&(0===f&&(y+=(f=Il(r))*f),e>1&&0===m&&(y+=(m=Il(r))*m),e>2&&0===g&&(y+=(g=Il(r))*g),y<s&&(y=Math.sqrt(s*y)),n.vx+=f*t.value*i/y,e>1&&(n.vy+=m*t.value*i/y),e>2&&(n.vz+=g*t.value*i/y)),!0;if(!(t.length||y>=l)){(t.data!==n||t.next)&&(0===f&&(y+=(f=Il(r))*f),e>1&&0===m&&(y+=(m=Il(r))*m),e>2&&0===g&&(y+=(g=Il(r))*g),y<s&&(y=Math.sqrt(s*y)));do{t.data!==n&&(v=o[t.data.index]*i/y,n.vx+=f*v,e>1&&(n.vy+=m*v),e>2&&(n.vz+=g*v))}while(t=t.next)}}return h.initialize=function(n,...i){t=n,r=i.find((t=>\"function\"==typeof t))||Math.random,e=i.find((t=>[1,2,3].includes(t)))||2,u()},h.strength=function(t){return arguments.length?(a=\"function\"==typeof t?t:Dl(+t),u(),h):a},h.distanceMin=function(t){return arguments.length?(s=t*t,h):Math.sqrt(s)},h.distanceMax=function(t){return arguments.length?(l=t*t,h):Math.sqrt(l)},h.theta=function(t){return arguments.length?(c=t*t,h):Math.sqrt(c)},h}var fc=function(t){!function(t){if(!t)throw new Error(\"Eventify cannot use falsy object as events subject\");for(var e=[\"on\",\"fire\",\"off\"],n=0;n<e.length;++n)if(t.hasOwnProperty(e[n]))throw new Error(\"Subject cannot be eventified, since it already has property '\"+e[n]+\"'\")}(t);var e=function(t){var e=Object.create(null);return{on:function(n,r,i){if(\"function\"!=typeof r)throw new Error(\"callback is expected to be a function\");var o=e[n];return o||(o=e[n]=[]),o.push({callback:r,ctx:i}),t},off:function(n,r){if(void 0===n)return e=Object.create(null),t;if(e[n])if(\"function\"!=typeof r)delete e[n];else for(var i=e[n],o=0;o<i.length;++o)i[o].callback===r&&i.splice(o,1);return t},fire:function(n){var r,i=e[n];if(!i)return t;arguments.length>1&&(r=Array.prototype.splice.call(arguments,1));for(var o=0;o<i.length;++o){var a=i[o];a.callback.apply(a.ctx,r)}return t}}}(t);return t.on=e.on,t.off=e.off,t.fire=e.fire,t};var mc=function(t){\"uniqueLinkId\"in(t=t||{})&&(console.warn(\"ngraph.graph: Starting from version 0.14 `uniqueLinkId` is deprecated.\\nUse `multigraph` option instead\\n\",\"\\n\",\"Note: there is also change in default behavior: From now on each graph\\nis considered to be not a multigraph by default (each edge is unique).\"),t.multigraph=t.uniqueLinkId);void 0===t.multigraph&&(t.multigraph=!1);if(\"function\"!=typeof Map)throw new Error(\"ngraph.graph requires `Map` to be defined. Please polyfill it before using ngraph\");var e=new Map,n=[],r={},i=0,o=t.multigraph?function(t,e,n){var i=bc(t,e),o=r.hasOwnProperty(i);if(o||_(t,e)){o||(r[i]=0);var a=\"@\"+ ++r[i];i=bc(t+a,e+a)}return new _c(t,e,n,i)}:function(t,e,n){var r=bc(t,e);return new _c(t,e,n,r)},a=[],s=b,l=b,c=b,h=b,u={addNode:f,addLink:function(t,e,r){c();var i=m(t)||f(t),a=m(e)||f(e),l=o(t,e,r);n.push(l),xc(i,l),t!==e&&xc(a,l);return s(l,\"add\"),h(),l},removeLink:x,removeNode:g,getNode:m,getNodeCount:v,getLinkCount:y,getLinksCount:y,getNodesCount:v,getLinks:function(t){var e=m(t);return e?e.links:null},forEachNode:S,forEachLinkedNode:function(t,n,r){var i=m(t);if(i&&i.links&&\"function\"==typeof n)return r?function(t,n,r){for(var i=0;i<t.length;++i){var o=t[i];if(o.fromId===n&&r(e.get(o.toId),o))return!0}}(i.links,t,n):function(t,n,r){for(var i=0;i<t.length;++i){var o=t[i],a=o.fromId===n?o.toId:o.fromId;if(r(e.get(a),o))return!0}}(i.links,t,n)},forEachLink:function(t){var e,r;if(\"function\"==typeof t)for(e=0,r=n.length;e<r;++e)t(n[e])},beginUpdate:c,endUpdate:h,clear:function(){c(),S((function(t){g(t.id)})),h()},hasLink:_,hasNode:m,getLink:_};return gc(u),function(){var t=u.on;function e(){return u.beginUpdate=c=w,u.endUpdate=h=M,s=d,l=p,u.on=t,t.apply(u,arguments)}u.on=e}(),u;function d(t,e){a.push({link:t,changeType:e})}function p(t,e){a.push({node:t,changeType:e})}function f(t,n){if(void 0===t)throw new Error(\"Invalid node identifier\");c();var r=m(t);return r?(r.data=n,l(r,\"update\")):(r=new yc(t,n),l(r,\"add\")),e.set(t,r),h(),r}function m(t){return e.get(t)}function g(t){var n=m(t);if(!n)return!1;c();var r=n.links;if(r){n.links=null;for(var i=0;i<r.length;++i)x(r[i])}return e.delete(t),l(n,\"remove\"),h(),!0}function v(){return e.size}function y(){return n.length}function x(t){if(!t)return!1;var e=vc(t,n);if(e<0)return!1;c(),n.splice(e,1);var r=m(t.fromId),i=m(t.toId);return r&&(e=vc(t,r.links))>=0&&r.links.splice(e,1),i&&(e=vc(t,i.links))>=0&&i.links.splice(e,1),s(t,\"remove\"),h(),!0}function _(t,e){var n,r=m(t);if(!r||!r.links)return null;for(n=0;n<r.links.length;++n){var i=r.links[n];if(i.fromId===t&&i.toId===e)return i}return null}function b(){}function w(){i+=1}function M(){0===(i-=1)&&a.length>0&&(u.fire(\"changed\",a),a.length=0)}function S(t){if(\"function\"!=typeof t)throw new Error(\"Function is expected to iterate over graph nodes. You passed \"+t);for(var n=e.values(),r=n.next();!r.done;){if(t(r.value))return!0;r=n.next()}}},gc=fc;function vc(t,e){if(!e)return-1;if(e.indexOf)return e.indexOf(t);var n,r=e.length;for(n=0;n<r;n+=1)if(e[n]===t)return n;return-1}function yc(t,e){this.id=t,this.links=null,this.data=e}function xc(t,e){t.links?t.links.push(e):t.links=[e]}function _c(t,e,n,r){this.fromId=t,this.toId=e,this.data=n,this.id=r}function bc(t,e){return t.toString()+\"👉 \"+e.toString()}var wc={exports:{}},Mc={exports:{}},Sc=function(t){return 0===t?\"x\":1===t?\"y\":2===t?\"z\":\"c\"+(t+1)};const Ec=Sc;var Tc=function(t){return function(e,n){let r=n&&n.indent||0,i=n&&void 0!==n.join?n.join:\"\\n\",o=Array(r+1).join(\" \"),a=[];for(let n=0;n<t;++n){let t=Ec(n),r=0===n?\"\":o;a.push(r+e.replace(/{var}/g,t))}return a.join(i)}};const Ac=Tc;function Lc(t,e){return`\\n${Pc(t,e)}\\n${Cc(t)}\\nreturn {Body: Body, Vector: Vector};\\n`}function Cc(t){let e=Ac(t),n=e(\"{var}\",{join:\", \"});return`\\nfunction Body(${n}) {\\n  this.isPinned = false;\\n  this.pos = new Vector(${n});\\n  this.force = new Vector();\\n  this.velocity = new Vector();\\n  this.mass = 1;\\n\\n  this.springCount = 0;\\n  this.springLength = 0;\\n}\\n\\nBody.prototype.reset = function() {\\n  this.force.reset();\\n  this.springCount = 0;\\n  this.springLength = 0;\\n}\\n\\nBody.prototype.setPosition = function (${n}) {\\n  ${e(\"this.pos.{var} = {var} || 0;\",{indent:2})}\\n};`}function Pc(t,e){let n=Ac(t),r=\"\";return e&&(r=`${n(\"\\n   var v{var};\\nObject.defineProperty(this, '{var}', {\\n  set: function(v) { \\n    if (!Number.isFinite(v)) throw new Error('Cannot set non-numbers to {var}');\\n    v{var} = v; \\n  },\\n  get: function() { return v{var}; }\\n});\")}`),`function Vector(${n(\"{var}\",{join:\", \"})}) {\\n  ${r}\\n    if (typeof arguments[0] === 'object') {\\n      // could be another vector\\n      let v = arguments[0];\\n      ${n('if (!Number.isFinite(v.{var})) throw new Error(\"Expected value is not a finite number at Vector constructor ({var})\");',{indent:4})}\\n      ${n(\"this.{var} = v.{var};\",{indent:4})}\\n    } else {\\n      ${n('this.{var} = typeof {var} === \"number\" ? {var} : 0;',{indent:4})}\\n    }\\n  }\\n  \\n  Vector.prototype.reset = function () {\\n    ${n(\"this.{var} = \",{join:\"\"})}0;\\n  };`}Mc.exports=function(t,e){let n=Lc(t,e),{Body:r}=new Function(n)();return r},Mc.exports.generateCreateBodyFunctionBody=Lc,Mc.exports.getVectorCode=Pc,Mc.exports.getBodyCode=Cc;var Rc={exports:{}};const Dc=Tc,Ic=Sc;function Nc(t){let e=Dc(t),n=Math.pow(2,t);return`\\n${Fc()}\\n${Bc(t)}\\n${Oc(t)}\\n${zc(t)}\\n${kc(t)}\\n\\nfunction createQuadTree(options, random) {\\n  options = options || {};\\n  options.gravity = typeof options.gravity === 'number' ? options.gravity : -1;\\n  options.theta = typeof options.theta === 'number' ? options.theta : 0.8;\\n\\n  var gravity = options.gravity;\\n  var updateQueue = [];\\n  var insertStack = new InsertStack();\\n  var theta = options.theta;\\n\\n  var nodesCache = [];\\n  var currentInCache = 0;\\n  var root = newNode();\\n\\n  return {\\n    insertBodies: insertBodies,\\n\\n    /**\\n     * Gets root node if it is present\\n     */\\n    getRoot: function() {\\n      return root;\\n    },\\n\\n    updateBodyForce: update,\\n\\n    options: function(newOptions) {\\n      if (newOptions) {\\n        if (typeof newOptions.gravity === 'number') {\\n          gravity = newOptions.gravity;\\n        }\\n        if (typeof newOptions.theta === 'number') {\\n          theta = newOptions.theta;\\n        }\\n\\n        return this;\\n      }\\n\\n      return {\\n        gravity: gravity,\\n        theta: theta\\n      };\\n    }\\n  };\\n\\n  function newNode() {\\n    // To avoid pressure on GC we reuse nodes.\\n    var node = nodesCache[currentInCache];\\n    if (node) {\\n${function(t){let e=[];for(let r=0;r<n;++r)e.push(`${t}quad${r} = null;`);return e.join(\"\\n\")}(\"      node.\")}\\n      node.body = null;\\n      node.mass = ${e(\"node.mass_{var} = \",{join:\"\"})}0;\\n      ${e(\"node.min_{var} = node.max_{var} = \",{join:\"\"})}0;\\n    } else {\\n      node = new QuadNode();\\n      nodesCache[currentInCache] = node;\\n    }\\n\\n    ++currentInCache;\\n    return node;\\n  }\\n\\n  function update(sourceBody) {\\n    var queue = updateQueue;\\n    var v;\\n    ${e(\"var d{var};\",{indent:4})}\\n    var r; \\n    ${e(\"var f{var} = 0;\",{indent:4})}\\n    var queueLength = 1;\\n    var shiftIdx = 0;\\n    var pushIdx = 1;\\n\\n    queue[0] = root;\\n\\n    while (queueLength) {\\n      var node = queue[shiftIdx];\\n      var body = node.body;\\n\\n      queueLength -= 1;\\n      shiftIdx += 1;\\n      var differentBody = (body !== sourceBody);\\n      if (body && differentBody) {\\n        // If the current node is a leaf node (and it is not source body),\\n        // calculate the force exerted by the current node on body, and add this\\n        // amount to body's net force.\\n        ${e(\"d{var} = body.pos.{var} - sourceBody.pos.{var};\",{indent:8})}\\n        r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n\\n        if (r === 0) {\\n          // Poor man's protection against zero distance.\\n          ${e(\"d{var} = (random.nextDouble() - 0.5) / 50;\",{indent:10})}\\n          r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n        }\\n\\n        // This is standard gravitation force calculation but we divide\\n        // by r^3 to save two operations when normalizing force vector.\\n        v = gravity * body.mass * sourceBody.mass / (r * r * r);\\n        ${e(\"f{var} += v * d{var};\",{indent:8})}\\n      } else if (differentBody) {\\n        // Otherwise, calculate the ratio s / r,  where s is the width of the region\\n        // represented by the internal node, and r is the distance between the body\\n        // and the node's center-of-mass\\n        ${e(\"d{var} = node.mass_{var} / node.mass - sourceBody.pos.{var};\",{indent:8})}\\n        r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n\\n        if (r === 0) {\\n          // Sorry about code duplication. I don't want to create many functions\\n          // right away. Just want to see performance first.\\n          ${e(\"d{var} = (random.nextDouble() - 0.5) / 50;\",{indent:10})}\\n          r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n        }\\n        // If s / r < θ, treat this internal node as a single body, and calculate the\\n        // force it exerts on sourceBody, and add this amount to sourceBody's net force.\\n        if ((node.max_${Ic(0)} - node.min_${Ic(0)}) / r < theta) {\\n          // in the if statement above we consider node's width only\\n          // because the region was made into square during tree creation.\\n          // Thus there is no difference between using width or height.\\n          v = gravity * node.mass * sourceBody.mass / (r * r * r);\\n          ${e(\"f{var} += v * d{var};\",{indent:10})}\\n        } else {\\n          // Otherwise, run the procedure recursively on each of the current node's children.\\n\\n          // I intentionally unfolded this loop, to save several CPU cycles.\\n${function(){let t=Array(11).join(\" \"),e=[];for(let r=0;r<n;++r)e.push(t+`if (node.quad${r}) {`),e.push(t+`  queue[pushIdx] = node.quad${r};`),e.push(t+\"  queueLength += 1;\"),e.push(t+\"  pushIdx += 1;\"),e.push(t+\"}\");return e.join(\"\\n\")}()}\\n        }\\n      }\\n    }\\n\\n    ${e(\"sourceBody.force.{var} += f{var};\",{indent:4})}\\n  }\\n\\n  function insertBodies(bodies) {\\n    ${e(\"var {var}min = Number.MAX_VALUE;\",{indent:4})}\\n    ${e(\"var {var}max = Number.MIN_VALUE;\",{indent:4})}\\n    var i = bodies.length;\\n\\n    // To reduce quad tree depth we are looking for exact bounding box of all particles.\\n    while (i--) {\\n      var pos = bodies[i].pos;\\n      ${e(\"if (pos.{var} < {var}min) {var}min = pos.{var};\",{indent:6})}\\n      ${e(\"if (pos.{var} > {var}max) {var}max = pos.{var};\",{indent:6})}\\n    }\\n\\n    // Makes the bounds square.\\n    var maxSideLength = -Infinity;\\n    ${e(\"if ({var}max - {var}min > maxSideLength) maxSideLength = {var}max - {var}min ;\",{indent:4})}\\n\\n    currentInCache = 0;\\n    root = newNode();\\n    ${e(\"root.min_{var} = {var}min;\",{indent:4})}\\n    ${e(\"root.max_{var} = {var}min + maxSideLength;\",{indent:4})}\\n\\n    i = bodies.length - 1;\\n    if (i >= 0) {\\n      root.body = bodies[i];\\n    }\\n    while (i--) {\\n      insert(bodies[i], root);\\n    }\\n  }\\n\\n  function insert(newBody) {\\n    insertStack.reset();\\n    insertStack.push(root, newBody);\\n\\n    while (!insertStack.isEmpty()) {\\n      var stackItem = insertStack.pop();\\n      var node = stackItem.node;\\n      var body = stackItem.body;\\n\\n      if (!node.body) {\\n        // This is internal node. Update the total mass of the node and center-of-mass.\\n        ${e(\"var {var} = body.pos.{var};\",{indent:8})}\\n        node.mass += body.mass;\\n        ${e(\"node.mass_{var} += body.mass * {var};\",{indent:8})}\\n\\n        // Recursively insert the body in the appropriate quadrant.\\n        // But first find the appropriate quadrant.\\n        var quadIdx = 0; // Assume we are in the 0's quad.\\n        ${e(\"var min_{var} = node.min_{var};\",{indent:8})}\\n        ${e(\"var max_{var} = (min_{var} + node.max_{var}) / 2;\",{indent:8})}\\n\\n${function(e){let n=[],r=Array(e+1).join(\" \");for(let e=0;e<t;++e)n.push(r+`if (${Ic(e)} > max_${Ic(e)}) {`),n.push(r+`  quadIdx = quadIdx + ${Math.pow(2,e)};`),n.push(r+`  min_${Ic(e)} = max_${Ic(e)};`),n.push(r+`  max_${Ic(e)} = node.max_${Ic(e)};`),n.push(r+\"}\");return n.join(\"\\n\")}(8)}\\n\\n        var child = getChild(node, quadIdx);\\n\\n        if (!child) {\\n          // The node is internal but this quadrant is not taken. Add\\n          // subnode to it.\\n          child = newNode();\\n          ${e(\"child.min_{var} = min_{var};\",{indent:10})}\\n          ${e(\"child.max_{var} = max_{var};\",{indent:10})}\\n          child.body = body;\\n\\n          setChild(node, quadIdx, child);\\n        } else {\\n          // continue searching in this quadrant.\\n          insertStack.push(child, body);\\n        }\\n      } else {\\n        // We are trying to add to the leaf node.\\n        // We have to convert current leaf into internal node\\n        // and continue adding two nodes.\\n        var oldBody = node.body;\\n        node.body = null; // internal nodes do not cary bodies\\n\\n        if (isSamePosition(oldBody.pos, body.pos)) {\\n          // Prevent infinite subdivision by bumping one node\\n          // anywhere in this quadrant\\n          var retriesCount = 3;\\n          do {\\n            var offset = random.nextDouble();\\n            ${e(\"var d{var} = (node.max_{var} - node.min_{var}) * offset;\",{indent:12})}\\n\\n            ${e(\"oldBody.pos.{var} = node.min_{var} + d{var};\",{indent:12})}\\n            retriesCount -= 1;\\n            // Make sure we don't bump it out of the box. If we do, next iteration should fix it\\n          } while (retriesCount > 0 && isSamePosition(oldBody.pos, body.pos));\\n\\n          if (retriesCount === 0 && isSamePosition(oldBody.pos, body.pos)) {\\n            // This is very bad, we ran out of precision.\\n            // if we do not return from the method we'll get into\\n            // infinite loop here. So we sacrifice correctness of layout, and keep the app running\\n            // Next layout iteration should get larger bounding box in the first step and fix this\\n            return;\\n          }\\n        }\\n        // Next iteration should subdivide node further.\\n        insertStack.push(node, oldBody);\\n        insertStack.push(node, body);\\n      }\\n    }\\n  }\\n}\\nreturn createQuadTree;\\n\\n`}function Oc(t){let e=Dc(t);return`\\n  function isSamePosition(point1, point2) {\\n    ${e(\"var d{var} = Math.abs(point1.{var} - point2.{var});\",{indent:2})}\\n  \\n    return ${e(\"d{var} < 1e-8\",{join:\" && \"})};\\n  }  \\n`}function kc(t){var e=Math.pow(2,t);return`\\nfunction setChild(node, idx, child) {\\n  ${function(){let t=[];for(let n=0;n<e;++n){let e=0===n?\"  \":\"  else \";t.push(`${e}if (idx === ${n}) node.quad${n} = child;`)}return t.join(\"\\n\")}()}\\n}`}function zc(t){return`function getChild(node, idx) {\\n${function(){let e=[],n=Math.pow(2,t);for(let t=0;t<n;++t)e.push(`  if (idx === ${t}) return node.quad${t};`);return e.join(\"\\n\")}()}\\n  return null;\\n}`}function Bc(t){let e=Dc(t),n=Math.pow(2,t);return`\\nfunction QuadNode() {\\n  // body stored inside this node. In quad tree only leaf nodes (by construction)\\n  // contain bodies:\\n  this.body = null;\\n\\n  // Child nodes are stored in quads. Each quad is presented by number:\\n  // 0 | 1\\n  // -----\\n  // 2 | 3\\n${function(t){let e=[];for(let r=0;r<n;++r)e.push(`${t}quad${r} = null;`);return e.join(\"\\n\")}(\"  this.\")}\\n\\n  // Total mass of current node\\n  this.mass = 0;\\n\\n  // Center of mass coordinates\\n  ${e(\"this.mass_{var} = 0;\",{indent:2})}\\n\\n  // bounding box coordinates\\n  ${e(\"this.min_{var} = 0;\",{indent:2})}\\n  ${e(\"this.max_{var} = 0;\",{indent:2})}\\n}\\n`}function Fc(){return\"\\n/**\\n * Our implementation of QuadTree is non-recursive to avoid GC hit\\n * This data structure represent stack of elements\\n * which we are trying to insert into quad tree.\\n */\\nfunction InsertStack () {\\n    this.stack = [];\\n    this.popIdx = 0;\\n}\\n\\nInsertStack.prototype = {\\n    isEmpty: function() {\\n        return this.popIdx === 0;\\n    },\\n    push: function (node, body) {\\n        var item = this.stack[this.popIdx];\\n        if (!item) {\\n            // we are trying to avoid memory pressure: create new element\\n            // only when absolutely necessary\\n            this.stack[this.popIdx] = new InsertStackElement(node, body);\\n        } else {\\n            item.node = node;\\n            item.body = body;\\n        }\\n        ++this.popIdx;\\n    },\\n    pop: function () {\\n        if (this.popIdx > 0) {\\n            return this.stack[--this.popIdx];\\n        }\\n    },\\n    reset: function () {\\n        this.popIdx = 0;\\n    }\\n};\\n\\nfunction InsertStackElement(node, body) {\\n    this.node = node; // QuadTree node\\n    this.body = body; // physical body which needs to be inserted to node\\n}\\n\"}Rc.exports=function(t){let e=Nc(t);return new Function(e)()},Rc.exports.generateQuadTreeFunctionBody=Nc,Rc.exports.getInsertStackCode=Fc,Rc.exports.getQuadNodeCode=Bc,Rc.exports.isSamePosition=Oc,Rc.exports.getChildBodyCode=zc,Rc.exports.setChildBodyCode=kc;var Uc={exports:{}};Uc.exports=function(t){let e=Vc(t);return new Function(\"bodies\",\"settings\",\"random\",e)},Uc.exports.generateFunctionBody=Vc;const Hc=Tc;function Vc(t){let e=Hc(t);return`\\n  var boundingBox = {\\n    ${e(\"min_{var}: 0, max_{var}: 0,\",{indent:4})}\\n  };\\n\\n  return {\\n    box: boundingBox,\\n\\n    update: updateBoundingBox,\\n\\n    reset: resetBoundingBox,\\n\\n    getBestNewPosition: function (neighbors) {\\n      var ${e(\"base_{var} = 0\",{join:\", \"})};\\n\\n      if (neighbors.length) {\\n        for (var i = 0; i < neighbors.length; ++i) {\\n          let neighborPos = neighbors[i].pos;\\n          ${e(\"base_{var} += neighborPos.{var};\",{indent:10})}\\n        }\\n\\n        ${e(\"base_{var} /= neighbors.length;\",{indent:8})}\\n      } else {\\n        ${e(\"base_{var} = (boundingBox.min_{var} + boundingBox.max_{var}) / 2;\",{indent:8})}\\n      }\\n\\n      var springLength = settings.springLength;\\n      return {\\n        ${e(\"{var}: base_{var} + (random.nextDouble() - 0.5) * springLength,\",{indent:8})}\\n      };\\n    }\\n  };\\n\\n  function updateBoundingBox() {\\n    var i = bodies.length;\\n    if (i === 0) return; // No bodies - no borders.\\n\\n    ${e(\"var max_{var} = -Infinity;\",{indent:4})}\\n    ${e(\"var min_{var} = Infinity;\",{indent:4})}\\n\\n    while(i--) {\\n      // this is O(n), it could be done faster with quadtree, if we check the root node bounds\\n      var bodyPos = bodies[i].pos;\\n      ${e(\"if (bodyPos.{var} < min_{var}) min_{var} = bodyPos.{var};\",{indent:6})}\\n      ${e(\"if (bodyPos.{var} > max_{var}) max_{var} = bodyPos.{var};\",{indent:6})}\\n    }\\n\\n    ${e(\"boundingBox.min_{var} = min_{var};\",{indent:4})}\\n    ${e(\"boundingBox.max_{var} = max_{var};\",{indent:4})}\\n  }\\n\\n  function resetBoundingBox() {\\n    ${e(\"boundingBox.min_{var} = boundingBox.max_{var} = 0;\",{indent:4})}\\n  }\\n`}var Gc={exports:{}};const jc=Tc;function Wc(t){return`\\n  if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number');\\n\\n  return {\\n    update: function(body) {\\n      ${jc(t)(\"body.force.{var} -= options.dragCoefficient * body.velocity.{var};\",{indent:6})}\\n    }\\n  };\\n`}Gc.exports=function(t){let e=Wc(t);return new Function(\"options\",e)},Gc.exports.generateCreateDragForceFunctionBody=Wc;var qc={exports:{}};const Xc=Tc;function Yc(t){let e=Xc(t);return`\\n  if (!Number.isFinite(options.springCoefficient)) throw new Error('Spring coefficient is not a number');\\n  if (!Number.isFinite(options.springLength)) throw new Error('Spring length is not a number');\\n\\n  return {\\n    /**\\n     * Updates forces acting on a spring\\n     */\\n    update: function (spring) {\\n      var body1 = spring.from;\\n      var body2 = spring.to;\\n      var length = spring.length < 0 ? options.springLength : spring.length;\\n      ${e(\"var d{var} = body2.pos.{var} - body1.pos.{var};\",{indent:6})}\\n      var r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n\\n      if (r === 0) {\\n        ${e(\"d{var} = (random.nextDouble() - 0.5) / 50;\",{indent:8})}\\n        r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n      }\\n\\n      var d = r - length;\\n      var coefficient = ((spring.coefficient > 0) ? spring.coefficient : options.springCoefficient) * d / r;\\n\\n      ${e(\"body1.force.{var} += coefficient * d{var}\",{indent:6})};\\n      body1.springCount += 1;\\n      body1.springLength += r;\\n\\n      ${e(\"body2.force.{var} -= coefficient * d{var}\",{indent:6})};\\n      body2.springCount += 1;\\n      body2.springLength += r;\\n    }\\n  };\\n`}qc.exports=function(t){let e=Yc(t);return new Function(\"options\",\"random\",e)},qc.exports.generateCreateSpringForceFunctionBody=Yc;var Zc={exports:{}};const Jc=Tc;function $c(t){let e=Jc(t);return`\\n  var length = bodies.length;\\n  if (length === 0) return 0;\\n\\n  ${e(\"var d{var} = 0, t{var} = 0;\",{indent:2})}\\n\\n  for (var i = 0; i < length; ++i) {\\n    var body = bodies[i];\\n    if (body.isPinned) continue;\\n\\n    if (adaptiveTimeStepWeight && body.springCount) {\\n      timeStep = (adaptiveTimeStepWeight * body.springLength/body.springCount);\\n    }\\n\\n    var coeff = timeStep / body.mass;\\n\\n    ${e(\"body.velocity.{var} += coeff * body.force.{var};\",{indent:4})}\\n    ${e(\"var v{var} = body.velocity.{var};\",{indent:4})}\\n    var v = Math.sqrt(${e(\"v{var} * v{var}\",{join:\" + \"})});\\n\\n    if (v > 1) {\\n      // We normalize it so that we move within timeStep range. \\n      // for the case when v <= 1 - we let velocity to fade out.\\n      ${e(\"body.velocity.{var} = v{var} / v;\",{indent:6})}\\n    }\\n\\n    ${e(\"d{var} = timeStep * body.velocity.{var};\",{indent:4})}\\n\\n    ${e(\"body.pos.{var} += d{var};\",{indent:4})}\\n\\n    ${e(\"t{var} += Math.abs(d{var});\",{indent:4})}\\n  }\\n\\n  return (${e(\"t{var} * t{var}\",{join:\" + \"})})/length;\\n`}Zc.exports=function(t){let e=$c(t);return new Function(\"bodies\",\"timeStep\",\"adaptiveTimeStepWeight\",e)},Zc.exports.generateIntegratorFunctionBody=$c;var Qc=function(t,e,n,r){this.from=t,this.to=e,this.length=n,this.coefficient=r};var Kc=function t(e,n){var r;e||(e={});if(n)for(r in n)if(n.hasOwnProperty(r)){var i=e.hasOwnProperty(r),o=typeof n[r];!i||typeof e[r]!==o?e[r]=n[r]:\"object\"===o&&(e[r]=t(e[r],n[r]))}return e};var th={exports:{}};function eh(t){return new nh(\"number\"==typeof t?t:+new Date)}function nh(t){this.seed=t}function rh(t){return Math.sqrt(2*Math.PI/t)*Math.pow(1/Math.E*(t+1/(12*t-1/(10*t))),t)}function ih(){var t=this.seed;return t=4294967295&(3042594569^(t=(t=4294967295&((t=(t=4294967295&(3345072700^(t=t+2127912214+(t<<12)&4294967295)^t>>>19))+374761393+(t<<5)&4294967295)+3550635116^t<<9))+4251993797+(t<<3)&4294967295)^t>>>16),this.seed=t,(268435455&t)/268435456}th.exports=eh,th.exports.random=eh,th.exports.randomIterator=function(t,e){var n=e||eh();if(\"function\"!=typeof n.next)throw new Error(\"customRandom does not match expected API: next() function is missing\");return{forEach:function(e){var r,i,o;for(r=t.length-1;r>0;--r)i=n.next(r+1),o=t[i],t[i]=t[r],t[r]=o,e(o);t.length&&e(t[0])},shuffle:function(){var e,r,i;for(e=t.length-1;e>0;--e)r=n.next(e+1),i=t[r],t[r]=t[e],t[e]=i;return t}}},nh.prototype.next=function(t){return Math.floor(this.nextDouble()*t)},nh.prototype.nextDouble=ih,nh.prototype.uniform=ih,nh.prototype.gaussian=function(){var t,e,n;do{e=2*this.nextDouble()-1,n=2*this.nextDouble()-1,t=e*e+n*n}while(t>=1||0===t);return e*Math.sqrt(-2*Math.log(t)/t)},nh.prototype.levy=function(){var t=1.5,e=Math.pow(rh(2.5)*Math.sin(Math.PI*t/2)/(rh(1.25)*t*Math.pow(2,.25)),1/t);return this.gaussian()*e/Math.pow(Math.abs(this.gaussian()),1/t)};var oh=function(t){var e=Qc,n=Kc,r=fc;if(t){if(void 0!==t.springCoeff)throw new Error(\"springCoeff was renamed to springCoefficient\");if(void 0!==t.dragCoeff)throw new Error(\"dragCoeff was renamed to dragCoefficient\")}t=n(t,{springLength:10,springCoefficient:.8,gravity:-12,theta:.8,dragCoefficient:.9,timeStep:.5,adaptiveTimeStepWeight:0,dimensions:2,debug:!1});var i=dh[t.dimensions];if(!i){var o=t.dimensions;i={Body:ah(o,t.debug),createQuadTree:sh(o),createBounds:lh(o),createDragForce:ch(o),createSpringForce:hh(o),integrate:uh(o)},dh[o]=i}var a=i.Body,s=i.createQuadTree,l=i.createBounds,c=i.createDragForce,h=i.createSpringForce,u=i.integrate,d=th.exports.random(42),p=[],f=[],m=s(t,d),g=l(p,t,d),v=h(t,d),y=c(t),x=[],_=new Map,b=0;S(\"nbody\",(function(){if(0===p.length)return;m.insertBodies(p);var t=p.length;for(;t--;){var e=p[t];e.isPinned||(e.reset(),m.updateBodyForce(e),y.update(e))}})),S(\"spring\",(function(){var t=f.length;for(;t--;)v.update(f[t])}));var w={bodies:p,quadTree:m,springs:f,settings:t,addForce:S,removeForce:function(t){var e=x.indexOf(_.get(t));if(e<0)return;x.splice(e,1),_.delete(t)},getForces:function(){return _},step:function(){for(var e=0;e<x.length;++e)x[e](b);var n=u(p,t.timeStep,t.adaptiveTimeStepWeight);return b+=1,n},addBody:function(t){if(!t)throw new Error(\"Body is required\");return p.push(t),t},addBodyAt:function(t){if(!t)throw new Error(\"Body position is required\");var e=(t=>new a(t))(t);return p.push(e),e},removeBody:function(t){if(t){var e=p.indexOf(t);if(!(e<0))return p.splice(e,1),0===p.length&&g.reset(),!0}},addSpring:function(t,n,r,i){if(!t||!n)throw new Error(\"Cannot add null spring to force simulator\");\"number\"!=typeof r&&(r=-1);var o=new e(t,n,r,i>=0?i:-1);return f.push(o),o},getTotalMovement:function(){return 0},removeSpring:function(t){if(t){var e=f.indexOf(t);return e>-1?(f.splice(e,1),!0):void 0}},getBestNewBodyPosition:function(t){return g.getBestNewPosition(t)},getBBox:M,getBoundingBox:M,invalidateBBox:function(){console.warn(\"invalidateBBox() is deprecated, bounds always recomputed on `getBBox()` call\")},gravity:function(e){return void 0!==e?(t.gravity=e,m.options({gravity:e}),this):t.gravity},theta:function(e){return void 0!==e?(t.theta=e,m.options({theta:e}),this):t.theta},random:d};return function(t,e){for(var n in t)ph(t,e,n)}(t,w),r(w),w;function M(){return g.update(),g.box}function S(t,e){if(_.has(t))throw new Error(\"Force \"+t+\" is already added\");_.set(t,e),x.push(e)}},ah=Mc.exports,sh=Rc.exports,lh=Uc.exports,ch=Gc.exports,hh=qc.exports,uh=Zc.exports,dh={};function ph(t,e,n){if(t.hasOwnProperty(n)&&\"function\"!=typeof e[n]){var r=Number.isFinite(t[n]);e[n]=r?function(r){if(void 0!==r){if(!Number.isFinite(r))throw new Error(\"Value of \"+n+\" should be a valid number.\");return t[n]=r,e}return t[n]}:function(r){return void 0!==r?(t[n]=r,e):t[n]}}}wc.exports=function(t,e){if(!t)throw new Error(\"Graph structure cannot be undefined\");var n=(e&&e.createSimulator||oh)(e);if(Array.isArray(e))throw new Error(\"Physics settings is expected to be an object\");var r=function(e){var n=t.getLinks(e);return n?1+n.length/3:1};e&&\"function\"==typeof e.nodeMass&&(r=e.nodeMass);var i=new Map,o={},a=0,s=n.settings.springTransform||mh;a=0,t.forEachNode((function(t){p(t.id),a+=1})),t.forEachLink(m),t.on(\"changed\",d);var l=!1,c={step:function(){if(0===a)return h(!0),!0;var t=n.step();c.lastMove=t,c.fire(\"step\");var e=t/a<=.01;return h(e),e},getNodePosition:function(t){return y(t).pos},setNodePosition:function(t){var e=y(t);e.setPosition.apply(e,Array.prototype.slice.call(arguments,1))},getLinkPosition:function(t){var e=o[t];if(e)return{from:e.from.pos,to:e.to.pos}},getGraphRect:function(){return n.getBBox()},forEachBody:u,pinNode:function(t,e){y(t.id).isPinned=!!e},isNodePinned:function(t){return y(t.id).isPinned},dispose:function(){t.off(\"changed\",d),c.fire(\"disposed\")},getBody:function(t){return i.get(t)},getSpring:function(e,n){var r;if(void 0===n)r=\"object\"!=typeof e?e:e.id;else{var i=t.hasLink(e,n);if(!i)return;r=i.id}return o[r]},getForceVectorLength:function(){var t=0,e=0;return u((function(n){t+=Math.abs(n.force.x),e+=Math.abs(n.force.y)})),Math.sqrt(t*t+e*e)},simulator:n,graph:t,lastMove:0};return fh(c),c;function h(t){var e;l!==t&&(l=t,e=t,c.fire(\"stable\",e))}function u(t){i.forEach(t)}function d(e){for(var n=0;n<e.length;++n){var r=e[n];\"add\"===r.changeType?(r.node&&p(r.node.id),r.link&&m(r.link)):\"remove\"===r.changeType&&(r.node&&f(r.node),r.link&&g(r.link))}a=t.getNodesCount()}function p(e){var r=i.get(e);if(!r){var o=t.getNode(e);if(!o)throw new Error(\"initBody() was called with unknown node id\");var a=o.position;if(!a){var s=function(t){var e=[];if(!t.links)return e;for(var n=Math.min(t.links.length,2),r=0;r<n;++r){var o=t.links[r],a=o.fromId!==t.id?i.get(o.fromId):i.get(o.toId);a&&a.pos&&e.push(a)}return e}(o);a=n.getBestNewBodyPosition(s)}(r=n.addBodyAt(a)).id=e,i.set(e,r),v(e),function(t){return t&&(t.isPinned||t.data&&t.data.isPinned)}(o)&&(r.isPinned=!0)}}function f(t){var e=t.id,r=i.get(e);r&&(i.delete(e),n.removeBody(r))}function m(t){v(t.fromId),v(t.toId);var e=i.get(t.fromId),r=i.get(t.toId),a=n.addSpring(e,r,t.length);s(t,a),o[t.id]=a}function g(e){var r=o[e.id];if(r){var i=t.getNode(e.fromId),a=t.getNode(e.toId);i&&v(i.id),a&&v(a.id),delete o[e.id],n.removeSpring(r)}}function v(t){var e=i.get(t);if(e.mass=r(t),Number.isNaN(e.mass))throw new Error(\"Node mass should be a number\")}function y(t){var e=i.get(t);return e||(p(t),e=i.get(t)),e}},wc.exports.simulator=oh;var fh=fc;function mh(){}var gh=wc.exports;function vh(t,e,n){var r,i,o,a,s;function l(){var c=Date.now()-a;c<e&&c>=0?r=setTimeout(l,e-c):(r=null,n||(s=t.apply(o,i),o=i=null))}null==e&&(e=100);var c=function(){o=this,i=arguments,a=Date.now();var c=n&&!r;return r||(r=setTimeout(l,e)),c&&(s=t.apply(o,i),o=i=null),s};return c.clear=function(){r&&(clearTimeout(r),r=null)},c.flush=function(){r&&(s=t.apply(o,i),o=i=null,clearTimeout(r),r=null)},c}vh.debounce=vh;var yh=vh;function xh(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&(\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||function(t,e){if(!t)return;if(\"string\"==typeof t)return _h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _h(t,e)}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function _h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var bh=function t(e,n){var r=n.default,i=void 0===r?null:r,o=n.triggerUpdate,a=void 0===o||o,s=n.onChange,l=void 0===s?function(t,e){}:s;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.name=e,this.defaultVal=i,this.triggerUpdate=a,this.onChange=l};function wh(t){var e=t.stateInit,n=void 0===e?function(){return{}}:e,r=t.props,i=void 0===r?{}:r,o=t.methods,a=void 0===o?{}:o,s=t.aliases,l=void 0===s?{}:s,c=t.init,h=void 0===c?function(){}:c,u=t.update,d=void 0===u?function(){}:u,p=Object.keys(i).map((function(t){return new bh(t,i[t])}));return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=Object.assign({},n instanceof Function?n(t):n,{initialised:!1}),r={};function i(e){return o(e,t),s(),i}var o=function(t,n){h.call(i,t,e,n),e.initialised=!0},s=yh((function(){e.initialised&&(d.call(i,e,r),r={})}),1);return p.forEach((function(t){i[t.name]=function(t){var n=t.name,o=t.triggerUpdate,a=void 0!==o&&o,l=t.onChange,c=void 0===l?function(t,e){}:l,h=t.defaultVal,u=void 0===h?null:h;return function(t){var o=e[n];if(!arguments.length)return o;var l=void 0===t?u:t;return e[n]=l,c.call(i,l,e,o),!r.hasOwnProperty(n)&&(r[n]=o),a&&s(),i}}(t)})),Object.keys(a).forEach((function(t){i[t]=function(){for(var n,r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];return(n=a[t]).call.apply(n,[i,e].concat(o))}})),Object.entries(l).forEach((function(t){var e=xh(t,2),n=e[0],r=e[1];return i[n]=i[r]})),i.resetProps=function(){return p.forEach((function(t){i[t.name](t.defaultVal)})),i},i.resetProps(),e._rerender=s,i}}var Mh=function(t){return t instanceof Function?t:\"string\"==typeof t?function(e){return e[t]}:function(e){return t}};class Sh extends Map{constructor(t,e=Th){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[e,n]of t)this.set(e,n)}get(t){return super.get(Eh(this,t))}has(t){return super.has(Eh(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},n){const r=e(n);t.has(r)&&(n=t.get(n),t.delete(r));return n}(this,t))}}function Eh({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Th(t){return null!==t&&\"object\"==typeof t?t.valueOf():t}function Ah(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n<i||void 0===n&&i>=i)&&(n=i)}return n}function Lh(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function Ch(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function Ph(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&(\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||Dh(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Rh(t){return function(t){if(Array.isArray(t))return Ih(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||Dh(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Dh(t,e){if(t){if(\"string\"==typeof t)return Ih(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ih(t,e):void 0}}function Ih(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Nh(t){var e=function(t,e){if(\"object\"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:String(e)}var Oh=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=(e instanceof Array?e.length?e:[void 0]:[e]).map((function(t){return{keyAccessor:t,isProp:!(t instanceof Function)}})),o=t.reduce((function(t,e){var r=t,o=e;return i.forEach((function(t,e){var a,s=t.keyAccessor;if(t.isProp){var l=o,c=l[s],h=Ch(l,[s].map(Nh));a=c,o=h}else a=s(o,e);e+1<i.length?(r.hasOwnProperty(a)||(r[a]={}),r=r[a]):n?(r.hasOwnProperty(a)||(r[a]=[]),r[a].push(o)):r[a]=o})),t}),{});n instanceof Function&&function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;r===i.length?Object.keys(e).forEach((function(t){return e[t]=n(e[t])})):Object.values(e).forEach((function(e){return t(e,r+1)}))}(o);var a=o;return r&&(a=[],function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];n.length===i.length?a.push({keys:n,vals:e}):Object.entries(e).forEach((function(e){var r=Ph(e,2),i=r[0],o=r[1];return t(o,[].concat(Rh(n),[i]))}))}(o),e instanceof Array&&0===e.length&&1===a.length&&(a[0].keys=[])),a};function kh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function zh(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Bh(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function Fh(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&(\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||Hh(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Uh(t){return function(t){if(Array.isArray(t))return Vh(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||Hh(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Hh(t,e){if(t){if(\"string\"==typeof t)return Vh(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Vh(t,e):void 0}}function Vh(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Gh(t,e,n){var r=n.objBindAttr,i=void 0===r?\"__obj\":r,o=n.dataBindAttr,a=void 0===o?\"__data\":o,s=n.idAccessor,l=n.purge,c=void 0!==l&&l,h=function(t){return t.hasOwnProperty(a)},u=e.filter((function(t){return!h(t)})),d=e.filter(h).map((function(t){return t[a]})),p=c?{enter:t,exit:d,update:[]}:function(t,e,n){var r={enter:[],update:[],exit:[]};if(n){var i=Oh(t,n,!1),o=Oh(e,n,!1),a=Object.assign({},i,o);Object.entries(a).forEach((function(t){var e=Fh(t,2),n=e[0],a=e[1],s=i.hasOwnProperty(n)?o.hasOwnProperty(n)?\"update\":\"exit\":\"enter\";r[s].push(\"update\"===s?[i[n],o[n]]:a)}))}else{var s=new Set(t),l=new Set(e);new Set([].concat(Uh(s),Uh(l))).forEach((function(t){var e=s.has(t)?l.has(t)?\"update\":\"exit\":\"enter\";r[e].push(\"update\"===e?[t,t]:t)}))}return r}(d,t,s);return p.update=p.update.map((function(t){var e=Fh(t,2),n=e[0],r=e[1];return n!==r&&(r[i]=n[i],r[i][a]=r),r})),p.exit=p.exit.concat(u.map((function(t){return zh({},i,t)}))),p}function jh(t,e,n,r,i){var o=i.createObj,a=void 0===o?function(t){return{}}:o,s=i.updateObj,l=void 0===s?function(t,e){}:s,c=i.exitObj,h=void 0===c?function(t){}:c,u=i.objBindAttr,d=void 0===u?\"__obj\":u,p=i.dataBindAttr,f=void 0===p?\"__data\":p,m=Bh(i,[\"createObj\",\"updateObj\",\"exitObj\",\"objBindAttr\",\"dataBindAttr\"]),g=Gh(t,e,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?kh(Object(n),!0).forEach((function(e){zh(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):kh(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({objBindAttr:d,dataBindAttr:f},m)),v=g.enter,y=g.update;g.exit.forEach((function(t){var e=t[d];delete t[d],h(e),r(e)}));var x=function(t){var e=[];return t.forEach((function(t){var n=a(t);n&&(n[f]=t,t[d]=n,e.push(n))})),e}(v);!function(t){t.forEach((function(t){var e=t[d];e&&(e[f]=t,l(e,t))}))}([].concat(Uh(v),Uh(y))),x.forEach(n)}function Wh(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}const qh=Symbol(\"implicit\");var Xh=function(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]=\"#\"+t.slice(6*r,6*++r);return n}(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\"),Yh={exports:{}};!function(t){!function(e){var n=/^\\s+/,r=/\\s+$/,i=0,o=e.round,a=e.min,s=e.max,l=e.random;function c(t,l){if(l=l||{},(t=t||\"\")instanceof c)return t;if(!(this instanceof c))return new c(t,l);var h=function(t){var i={r:0,g:0,b:0},o=1,l=null,c=null,h=null,u=!1,d=!1;\"string\"==typeof t&&(t=function(t){t=t.replace(n,\"\").replace(r,\"\").toLowerCase();var e,i=!1;if(A[t])t=A[t],i=!0;else if(\"transparent\"==t)return{r:0,g:0,b:0,a:0,format:\"name\"};if(e=U.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=U.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=U.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=U.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=U.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=U.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=U.hex8.exec(t))return{r:D(e[1]),g:D(e[2]),b:D(e[3]),a:k(e[4]),format:i?\"name\":\"hex8\"};if(e=U.hex6.exec(t))return{r:D(e[1]),g:D(e[2]),b:D(e[3]),format:i?\"name\":\"hex\"};if(e=U.hex4.exec(t))return{r:D(e[1]+\"\"+e[1]),g:D(e[2]+\"\"+e[2]),b:D(e[3]+\"\"+e[3]),a:k(e[4]+\"\"+e[4]),format:i?\"name\":\"hex8\"};if(e=U.hex3.exec(t))return{r:D(e[1]+\"\"+e[1]),g:D(e[2]+\"\"+e[2]),b:D(e[3]+\"\"+e[3]),format:i?\"name\":\"hex\"};return!1}(t));\"object\"==typeof t&&(H(t.r)&&H(t.g)&&H(t.b)?(p=t.r,f=t.g,m=t.b,i={r:255*P(p,255),g:255*P(f,255),b:255*P(m,255)},u=!0,d=\"%\"===String(t.r).substr(-1)?\"prgb\":\"rgb\"):H(t.h)&&H(t.s)&&H(t.v)?(l=N(t.s),c=N(t.v),i=function(t,n,r){t=6*P(t,360),n=P(n,100),r=P(r,100);var i=e.floor(t),o=t-i,a=r*(1-n),s=r*(1-o*n),l=r*(1-(1-o)*n),c=i%6;return{r:255*[r,s,a,a,l,r][c],g:255*[l,r,r,s,a,a][c],b:255*[a,a,l,r,r,s][c]}}(t.h,l,c),u=!0,d=\"hsv\"):H(t.h)&&H(t.s)&&H(t.l)&&(l=N(t.s),h=N(t.l),i=function(t,e,n){var r,i,o;function a(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=P(t,360),e=P(e,100),n=P(n,100),0===e)r=i=o=n;else{var s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;r=a(l,s,t+1/3),i=a(l,s,t),o=a(l,s,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,l,h),u=!0,d=\"hsl\"),t.hasOwnProperty(\"a\")&&(o=t.a));var p,f,m;return o=C(o),{ok:u,format:t.format||d,r:a(255,s(i.r,0)),g:a(255,s(i.g,0)),b:a(255,s(i.b,0)),a:o}}(t);this._originalInput=t,this._r=h.r,this._g=h.g,this._b=h.b,this._a=h.a,this._roundA=o(100*this._a)/100,this._format=l.format||h.format,this._gradientType=l.gradientType,this._r<1&&(this._r=o(this._r)),this._g<1&&(this._g=o(this._g)),this._b<1&&(this._b=o(this._b)),this._ok=h.ok,this._tc_id=i++}function h(t,e,n){t=P(t,255),e=P(e,255),n=P(n,255);var r,i,o=s(t,e,n),l=a(t,e,n),c=(o+l)/2;if(o==l)r=i=0;else{var h=o-l;switch(i=c>.5?h/(2-o-l):h/(o+l),o){case t:r=(e-n)/h+(e<n?6:0);break;case e:r=(n-t)/h+2;break;case n:r=(t-e)/h+4}r/=6}return{h:r,s:i,l:c}}function u(t,e,n){t=P(t,255),e=P(e,255),n=P(n,255);var r,i,o=s(t,e,n),l=a(t,e,n),c=o,h=o-l;if(i=0===o?0:h/o,o==l)r=0;else{switch(o){case t:r=(e-n)/h+(e<n?6:0);break;case e:r=(n-t)/h+2;break;case n:r=(t-e)/h+4}r/=6}return{h:r,s:i,v:c}}function d(t,e,n,r){var i=[I(o(t).toString(16)),I(o(e).toString(16)),I(o(n).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(\"\")}function p(t,e,n,r){return[I(O(r)),I(o(t).toString(16)),I(o(e).toString(16)),I(o(n).toString(16))].join(\"\")}function f(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.s-=e/100,n.s=R(n.s),c(n)}function m(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.s+=e/100,n.s=R(n.s),c(n)}function g(t){return c(t).desaturate(100)}function v(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.l+=e/100,n.l=R(n.l),c(n)}function y(t,e){e=0===e?0:e||10;var n=c(t).toRgb();return n.r=s(0,a(255,n.r-o(-e/100*255))),n.g=s(0,a(255,n.g-o(-e/100*255))),n.b=s(0,a(255,n.b-o(-e/100*255))),c(n)}function x(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.l-=e/100,n.l=R(n.l),c(n)}function _(t,e){var n=c(t).toHsl(),r=(n.h+e)%360;return n.h=r<0?360+r:r,c(n)}function b(t){var e=c(t).toHsl();return e.h=(e.h+180)%360,c(e)}function w(t){var e=c(t).toHsl(),n=e.h;return[c(t),c({h:(n+120)%360,s:e.s,l:e.l}),c({h:(n+240)%360,s:e.s,l:e.l})]}function M(t){var e=c(t).toHsl(),n=e.h;return[c(t),c({h:(n+90)%360,s:e.s,l:e.l}),c({h:(n+180)%360,s:e.s,l:e.l}),c({h:(n+270)%360,s:e.s,l:e.l})]}function S(t){var e=c(t).toHsl(),n=e.h;return[c(t),c({h:(n+72)%360,s:e.s,l:e.l}),c({h:(n+216)%360,s:e.s,l:e.l})]}function E(t,e,n){e=e||6,n=n||30;var r=c(t).toHsl(),i=360/n,o=[c(t)];for(r.h=(r.h-(i*e>>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(c(r));return o}function T(t,e){e=e||6;for(var n=c(t).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/e;e--;)a.push(c({h:r,s:i,v:o})),o=(o+s)%1;return a}c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,n,r,i=this.toRgb();return t=i.r/255,n=i.g/255,r=i.b/255,.2126*(t<=.03928?t/12.92:e.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:e.pow((n+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:e.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=o(100*this._a)/100,this},toHsv:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=u(this._r,this._g,this._b),e=o(360*t.h),n=o(100*t.s),r=o(100*t.v);return 1==this._a?\"hsv(\"+e+\", \"+n+\"%, \"+r+\"%)\":\"hsva(\"+e+\", \"+n+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHsl:function(){var t=h(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=h(this._r,this._g,this._b),e=o(360*t.h),n=o(100*t.s),r=o(100*t.l);return 1==this._a?\"hsl(\"+e+\", \"+n+\"%, \"+r+\"%)\":\"hsla(\"+e+\", \"+n+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHex:function(t){return d(this._r,this._g,this._b,t)},toHexString:function(t){return\"#\"+this.toHex(t)},toHex8:function(t){return function(t,e,n,r,i){var a=[I(o(t).toString(16)),I(o(e).toString(16)),I(o(n).toString(16)),I(O(r))];if(i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join(\"\")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return\"#\"+this.toHex8(t)},toRgb:function(){return{r:o(this._r),g:o(this._g),b:o(this._b),a:this._a}},toRgbString:function(){return 1==this._a?\"rgb(\"+o(this._r)+\", \"+o(this._g)+\", \"+o(this._b)+\")\":\"rgba(\"+o(this._r)+\", \"+o(this._g)+\", \"+o(this._b)+\", \"+this._roundA+\")\"},toPercentageRgb:function(){return{r:o(100*P(this._r,255))+\"%\",g:o(100*P(this._g,255))+\"%\",b:o(100*P(this._b,255))+\"%\",a:this._a}},toPercentageRgbString:function(){return 1==this._a?\"rgb(\"+o(100*P(this._r,255))+\"%, \"+o(100*P(this._g,255))+\"%, \"+o(100*P(this._b,255))+\"%)\":\"rgba(\"+o(100*P(this._r,255))+\"%, \"+o(100*P(this._g,255))+\"%, \"+o(100*P(this._b,255))+\"%, \"+this._roundA+\")\"},toName:function(){return 0===this._a?\"transparent\":!(this._a<1)&&(L[d(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e=\"#\"+p(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?\"GradientType = 1, \":\"\";if(t){var i=c(t);n=\"#\"+p(i._r,i._g,i._b,i._a)}return\"progid:DXImageTransform.Microsoft.gradient(\"+r+\"startColorstr=\"+e+\",endColorstr=\"+n+\")\"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||\"hex\"!==t&&\"hex6\"!==t&&\"hex3\"!==t&&\"hex4\"!==t&&\"hex8\"!==t&&\"name\"!==t?(\"rgb\"===t&&(n=this.toRgbString()),\"prgb\"===t&&(n=this.toPercentageRgbString()),\"hex\"!==t&&\"hex6\"!==t||(n=this.toHexString()),\"hex3\"===t&&(n=this.toHexString(!0)),\"hex4\"===t&&(n=this.toHex8String(!0)),\"hex8\"===t&&(n=this.toHex8String()),\"name\"===t&&(n=this.toName()),\"hsl\"===t&&(n=this.toHslString()),\"hsv\"===t&&(n=this.toHsvString()),n||this.toHexString()):\"name\"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(v,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(f,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(g,arguments)},spin:function(){return this._applyModification(_,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(b,arguments)},monochromatic:function(){return this._applyCombination(T,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(M,arguments)}},c.fromRatio=function(t,e){if(\"object\"==typeof t){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=\"a\"===r?t[r]:N(t[r]));t=n}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,n){n=0===n?0:n||50;var r=c(t).toRgb(),i=c(e).toRgb(),o=n/100;return c({r:(i.r-r.r)*o+r.r,g:(i.g-r.g)*o+r.g,b:(i.b-r.b)*o+r.b,a:(i.a-r.a)*o+r.a})},\n",
       "// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n",
       "// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n",
       "c.readability=function(t,n){var r=c(t),i=c(n);return(e.max(r.getLuminance(),i.getLuminance())+.05)/(e.min(r.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,n){var r,i,o=c.readability(t,e);switch(i=!1,(r=function(t){var e,n;e=((t=t||{level:\"AA\",size:\"small\"}).level||\"AA\").toUpperCase(),n=(t.size||\"small\").toLowerCase(),\"AA\"!==e&&\"AAA\"!==e&&(e=\"AA\");\"small\"!==n&&\"large\"!==n&&(n=\"small\");return{level:e,size:n}}(n)).level+r.size){case\"AAsmall\":case\"AAAlarge\":i=o>=4.5;break;case\"AAlarge\":i=o>=3;break;case\"AAAsmall\":i=o>=7}return i},c.mostReadable=function(t,e,n){var r,i,o,a,s=null,l=0;i=(n=n||{}).includeFallbackColors,o=n.level,a=n.size;for(var h=0;h<e.length;h++)(r=c.readability(t,e[h]))>l&&(l=r,s=c(e[h]));return c.isReadable(t,s,{level:o,size:a})||!i?s:(n.includeFallbackColors=!1,c.mostReadable(t,[\"#fff\",\"#000\"],n))};var A=c.names={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"0ff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"00f\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",burntsienna:\"ea7e5d\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"0ff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"f0f\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"663399\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"},L=c.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(A);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function P(t,n){(function(t){return\"string\"==typeof t&&-1!=t.indexOf(\".\")&&1===parseFloat(t)})(t)&&(t=\"100%\");var r=function(t){return\"string\"==typeof t&&-1!=t.indexOf(\"%\")}(t);return t=a(n,s(0,parseFloat(t))),r&&(t=parseInt(t*n,10)/100),e.abs(t-n)<1e-6?1:t%n/parseFloat(n)}function R(t){return a(1,s(0,t))}function D(t){return parseInt(t,16)}function I(t){return 1==t.length?\"0\"+t:\"\"+t}function N(t){return t<=1&&(t=100*t+\"%\"),t}function O(t){return e.round(255*parseFloat(t)).toString(16)}function k(t){return D(t)/255}var z,B,F,U=(B=\"[\\\\s|\\\\(]+(\"+(z=\"(?:[-\\\\+]?\\\\d*\\\\.\\\\d+%?)|(?:[-\\\\+]?\\\\d+%?)\")+\")[,|\\\\s]+(\"+z+\")[,|\\\\s]+(\"+z+\")\\\\s*\\\\)?\",F=\"[\\\\s|\\\\(]+(\"+z+\")[,|\\\\s]+(\"+z+\")[,|\\\\s]+(\"+z+\")[,|\\\\s]+(\"+z+\")\\\\s*\\\\)?\",{CSS_UNIT:new RegExp(z),rgb:new RegExp(\"rgb\"+B),rgba:new RegExp(\"rgba\"+F),hsl:new RegExp(\"hsl\"+B),hsla:new RegExp(\"hsla\"+F),hsv:new RegExp(\"hsv\"+B),hsva:new RegExp(\"hsva\"+F),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function H(t){return!!U.CSS_UNIT.exec(t)}t.exports?t.exports=c:window.tinycolor=c}(Math)}(Yh);var Zh=Yh.exports;function Jh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $h(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Jh(Object(n),!0).forEach((function(e){tu(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Jh(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Qh(t){return(Qh=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function Kh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function tu(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function eu(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&ru(t,e)}function nu(t){return(nu=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function ru(t,e){return(ru=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function iu(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function ou(t,e,n){return(ou=iu()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&ru(i,n.prototype),i}).apply(null,arguments)}function au(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function su(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function lu(t,e){return!e||\"object\"!=typeof e&&\"function\"!=typeof e?su(t):e}function cu(t){var e=iu();return function(){var n,r=nu(t);if(e){var i=nu(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return lu(this,n)}}function hu(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||du(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function uu(t){return function(t){if(Array.isArray(t))return pu(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||du(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function du(t,e){if(t){if(\"string\"==typeof t)return pu(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pu(t,e):void 0}}function pu(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var fu=function t(e){e instanceof Array?e.forEach(t):(e.map&&e.map.dispose(),e.dispose())},mu=function t(e){e.geometry&&e.geometry.dispose(),e.material&&fu(e.material),e.texture&&e.texture.dispose(),e.children&&e.children.forEach(t)},gu=function(t){for(;t.children.length;){var e=t.children[0];t.remove(e),mu(e)}},vu=[\"objFilter\"];function yu(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.objFilter,i=void 0===r?function(){return!0}:r,o=au(n,vu);return jh(t,e.children.filter(i),(function(t){return e.add(t)}),(function(t){e.remove(t),gu(t)}),$h({objBindAttr:\"__threeObj\"},o))}var xu=function(t){return isNaN(t)?parseInt(Zh(t).toHex(),16):t},_u=function(t){return isNaN(t)?Zh(t).getAlpha():1},bu=function t(){var e=new Sh,n=[],r=[],i=qh;function o(t){let o=e.get(t);if(void 0===o){if(i!==qh)return i;e.set(t,o=n.push(t)-1)}return r[o%r.length]}return o.domain=function(t){if(!arguments.length)return n.slice();n=[],e=new Sh;for(const r of t)e.has(r)||e.set(r,n.push(r)-1);return o},o.range=function(t){return arguments.length?(r=Array.from(t),o):r.slice()},o.unknown=function(t){return arguments.length?(i=t,o):i},o.copy=function(){return t(n,r).unknown(i)},Wh.apply(o,arguments),o}(Xh);function wu(t,e,n){e&&\"string\"==typeof n&&t.filter((function(t){return!t[n]})).forEach((function(t){t[n]=bu(e(t))}))}var Mu=window.THREE?window.THREE:{Group:zi,Mesh:ln,MeshLambertMaterial:ka,Color:Ae,BufferGeometry:Ge,BufferAttribute:Re,Matrix4:kt,Vector3:ot,SphereBufferGeometry:Ia,CylinderBufferGeometry:Oo,TubeBufferGeometry:Na,ConeBufferGeometry:ko,Line:Eo,LineBasicMaterial:xo,QuadraticBezierCurve3:Ko,CubicBezierCurve3:Jo,Box3:lt},Su={graph:mc,forcelayout:gh},Eu=(new Mu.BufferGeometry).setAttribute?\"setAttribute\":\"addAttribute\",Tu=(new Mu.BufferGeometry).applyMatrix4?\"applyMatrix4\":\"applyMatrix\";var Au=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(e){eu(i,e);var r=cu(i);function i(){var e;Kh(this,i);for(var o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];return(e=r.call.apply(r,[this].concat(a))).__kapsuleInstance=t().apply(void 0,[].concat(uu(n?[su(e)]:[]),a)),e}return i}(e);return Object.keys(t()).forEach((function(t){return r.prototype[t]=function(){var e,n=(e=this.__kapsuleInstance)[t].apply(e,arguments);return n===this.__kapsuleInstance?this:n}})),r}(wh({props:{jsonUrl:{onChange:function(t,e){var n=this;t&&!e.fetchingJson&&(e.fetchingJson=!0,e.onLoading(),fetch(t).then((function(t){return t.json()})).then((function(t){e.fetchingJson=!1,e.onFinishLoading(t),n.graphData(t)})))},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(t,e){e.engineRunning=!1}},numDimensions:{default:3,onChange:function(t,e){var n=e.d3ForceLayout.force(\"charge\");function r(t,e){t.forEach((function(t){delete t[e],delete t[\"v\".concat(e)]}))}n&&n.strength(t>2?-60:-30),t<3&&r(e.graphData.nodes,\"z\"),t<2&&r(e.graphData.nodes,\"y\")}},dagMode:{onChange:function(t,e){!t&&\"d3\"===e.forceEngine&&(e.graphData.nodes||[]).forEach((function(t){return t.fx=t.fy=t.fz=void 0}))}},dagLevelDistance:{},dagNodeFilter:{default:function(t){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4},nodeId:{default:\"id\"},nodeVal:{default:\"val\"},nodeResolution:{default:8},nodeColor:{default:\"color\"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeVisibility:{default:!0},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},linkSource:{default:\"source\"},linkTarget:{default:\"target\"},linkVisibility:{default:!0},linkColor:{default:\"color\"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{},linkResolution:{default:6},linkCurvature:{default:0,triggerUpdate:!1},linkCurveRotation:{default:0,triggerUpdate:!1},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{triggerUpdate:!1},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},forceEngine:{default:\"d3\"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.alphaDecay(t)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.alphaTarget(t)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.velocityDecay(t)}},ngraphPhysics:{default:{timeStep:20,gravity:-1.2,theta:.8,springLength:30,springCoefficient:8e-4,dragCoefficient:.02}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onLoading:{default:function(){},triggerUpdate:!1},onFinishLoading:{default:function(){},triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1}},methods:{refresh:function(t){return t._flushObjects=!0,t._rerender(),this},d3Force:function(t,e,n){return void 0===n?t.d3ForceLayout.force(e):(t.d3ForceLayout.force(e,n),this)},d3ReheatSimulation:function(t){return t.d3ForceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(t){return t.cntTicks=0,t.startTickTime=new Date,t.engineRunning=!0,this},tickFrame:function(t){var e,n,r,i,o=\"ngraph\"!==t.forceEngine;return t.engineRunning&&function(){++t.cntTicks>t.cooldownTicks||new Date-t.startTickTime>t.cooldownTime||o&&t.d3AlphaMin>0&&t.d3ForceLayout.alpha()<t.d3AlphaMin?(t.engineRunning=!1,t.onEngineStop()):(t.layout[o?\"tick\":\"step\"](),t.onEngineTick());t.graphData.nodes.forEach((function(e){var n=e.__threeObj;if(n){var r=o?e:t.layout.getNodePosition(e[t.nodeId]);n.position.x=r.x,n.position.y=r.y||0,n.position.z=r.z||0}}));var e=Mh(t.linkWidth),n=Mh(t.linkCurvature),r=Mh(t.linkCurveRotation),i=Mh(t.linkThreeObjectExtend);function a(e){var i=o?e:t.layout.getLinkPosition(t.layout.graph.getLink(e.source,e.target).id),a=i[o?\"source\":\"from\"],s=i[o?\"target\":\"to\"];if(a&&s&&a.hasOwnProperty(\"x\")&&s.hasOwnProperty(\"x\")){var l=n(e);if(l){var c,h=new Mu.Vector3(a.x,a.y||0,a.z||0),u=new Mu.Vector3(s.x,s.y||0,s.z||0),d=h.distanceTo(u),p=r(e);if(d>0){var f=s.x-a.x,m=s.y-a.y||0,g=(new Mu.Vector3).subVectors(u,h),v=g.clone().multiplyScalar(l).cross(0!==f||0!==m?new Mu.Vector3(0,0,1):new Mu.Vector3(0,1,0)).applyAxisAngle(g.normalize(),p).add((new Mu.Vector3).addVectors(h,u).divideScalar(2));c=new Mu.QuadraticBezierCurve3(h,v,u)}else{var y=70*l,x=-p,_=x+Math.PI/2;c=new Mu.CubicBezierCurve3(h,new Mu.Vector3(y*Math.cos(_),y*Math.sin(_),0).add(h),new Mu.Vector3(y*Math.cos(x),y*Math.sin(x),0).add(h),u)}e.__curve=c}else e.__curve=null}}t.graphData.links.forEach((function(n){var r=n.__lineObj;if(r){var s=o?n:t.layout.getLinkPosition(t.layout.graph.getLink(n.source,n.target).id),l=s[o?\"source\":\"from\"],c=s[o?\"target\":\"to\"];if(l&&c&&l.hasOwnProperty(\"x\")&&c.hasOwnProperty(\"x\")){a(n);var h=i(n);if(!t.linkPositionUpdate||!t.linkPositionUpdate(h?r.children[1]:r,{start:{x:l.x,y:l.y,z:l.z},end:{x:c.x,y:c.y,z:c.z}},n)||h){var u=30,d=n.__curve,p=r.children.length?r.children[0]:r;if(\"Line\"===p.type){if(d)p.geometry.setFromPoints(d.getPoints(u));else{var f=p.geometry.getAttribute(\"position\");f&&f.array&&6===f.array.length||p.geometry[Eu](\"position\",f=new Mu.BufferAttribute(new Float32Array(6),3)),f.array[0]=l.x,f.array[1]=l.y||0,f.array[2]=l.z||0,f.array[3]=c.x,f.array[4]=c.y||0,f.array[5]=c.z||0,f.needsUpdate=!0}p.geometry.computeBoundingSphere()}else if(\"Mesh\"===p.type)if(d){p.geometry.type.match(/^Tube(Buffer)?Geometry$/)||(p.position.set(0,0,0),p.rotation.set(0,0,0),p.scale.set(1,1,1));var m=Math.ceil(10*e(n))/10/2,g=new Mu.TubeBufferGeometry(d,u,m,t.linkResolution,!1);p.geometry.dispose(),p.geometry=g}else{if(!p.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)){var v=Math.ceil(10*e(n))/10/2,y=new Mu.CylinderBufferGeometry(v,v,1,t.linkResolution,1,!1);y[Tu]((new Mu.Matrix4).makeTranslation(0,.5,0)),y[Tu]((new Mu.Matrix4).makeRotationX(Math.PI/2)),p.geometry.dispose(),p.geometry=y}var x=new Mu.Vector3(l.x,l.y||0,l.z||0),_=new Mu.Vector3(c.x,c.y||0,c.z||0),b=x.distanceTo(_);p.position.x=x.x,p.position.y=x.y,p.position.z=x.z,p.scale.z=b,p.parent.localToWorld(_),p.lookAt(_)}}}}}))}(),e=Mh(t.linkDirectionalArrowRelPos),n=Mh(t.linkDirectionalArrowLength),r=Mh(t.nodeVal),t.graphData.links.forEach((function(i){var a=i.__arrowObj;if(a){var s=o?i:t.layout.getLinkPosition(t.layout.graph.getLink(i.source,i.target).id),l=s[o?\"source\":\"from\"],c=s[o?\"target\":\"to\"];if(l&&c&&l.hasOwnProperty(\"x\")&&c.hasOwnProperty(\"x\")){var h=Math.sqrt(Math.max(0,r(l)||1))*t.nodeRelSize,u=Math.sqrt(Math.max(0,r(c)||1))*t.nodeRelSize,d=n(i),p=e(i),f=i.__curve?function(t){return i.__curve.getPoint(t)}:function(t){var e=function(t,e,n,r){return e[t]+(n[t]-e[t])*r||0};return{x:e(\"x\",l,c,t),y:e(\"y\",l,c,t),z:e(\"z\",l,c,t)}},m=i.__curve?i.__curve.getLength():Math.sqrt([\"x\",\"y\",\"z\"].map((function(t){return Math.pow((c[t]||0)-(l[t]||0),2)})).reduce((function(t,e){return t+e}),0)),g=h+d+(m-h-u-d)*p,v=f(g/m),y=f((g-d)/m);[\"x\",\"y\",\"z\"].forEach((function(t){return a.position[t]=y[t]}));var x=ou(Mu.Vector3,uu([\"x\",\"y\",\"z\"].map((function(t){return v[t]}))));a.parent.localToWorld(x),a.lookAt(x)}}})),i=Mh(t.linkDirectionalParticleSpeed),t.graphData.links.forEach((function(e){var n=e.__photonsObj&&e.__photonsObj.children,r=e.__singleHopPhotonsObj&&e.__singleHopPhotonsObj.children;if(r&&r.length||n&&n.length){var a=o?e:t.layout.getLinkPosition(t.layout.graph.getLink(e.source,e.target).id),s=a[o?\"source\":\"from\"],l=a[o?\"target\":\"to\"];if(s&&l&&s.hasOwnProperty(\"x\")&&l.hasOwnProperty(\"x\")){var c=i(e),h=e.__curve?function(t){return e.__curve.getPoint(t)}:function(t){var e=function(t,e,n,r){return e[t]+(n[t]-e[t])*r||0};return{x:e(\"x\",s,l,t),y:e(\"y\",s,l,t),z:e(\"z\",s,l,t)}};[].concat(uu(n||[]),uu(r||[])).forEach((function(t,e){var r=\"singleHopPhotons\"===t.parent.__linkThreeObjType;if(t.hasOwnProperty(\"__progressRatio\")||(t.__progressRatio=r?0:e/n.length),t.__progressRatio+=c,t.__progressRatio>=1){if(r)return t.parent.remove(t),void gu(t);t.__progressRatio=t.__progressRatio%1}var i=t.__progressRatio,o=h(i);[\"x\",\"y\",\"z\"].forEach((function(e){return t.position[e]=o[e]}))}))}}})),this},emitParticle:function(t,e){if(e){if(!e.__singleHopPhotonsObj){var n=new Mu.Group;n.__linkThreeObjType=\"singleHopPhotons\",e.__singleHopPhotonsObj=n,t.graphScene.add(n)}var r=Mh(t.linkDirectionalParticleWidth),i=Math.ceil(10*r(e))/10/2,o=t.linkDirectionalParticleResolution,a=new Mu.SphereBufferGeometry(i,o,o),s=Mh(t.linkColor),l=Mh(t.linkDirectionalParticleColor)(e)||s(e)||\"#f0f0f0\",c=new Mu.Color(xu(l)),h=3*t.linkOpacity,u=new Mu.MeshLambertMaterial({color:c,transparent:!0,opacity:h});e.__singleHopPhotonsObj.add(new Mu.Mesh(a,u))}return this},getGraphBbox:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};if(!t.initialised)return null;var n=function t(n){var r=[];if(n.geometry){n.geometry.computeBoundingBox();var i=new Mu.Box3;i.copy(n.geometry.boundingBox).applyMatrix4(n.matrixWorld),r.push(i)}return r.concat.apply(r,uu((n.children||[]).filter((function(t){return!t.hasOwnProperty(\"__graphObjType\")||\"node\"===t.__graphObjType&&e(t.__data)})).map(t)))}(t.graphScene);return n.length?Object.assign.apply(Object,uu([\"x\",\"y\",\"z\"].map((function(t){return tu({},t,[Lh(n,(function(e){return e.min[t]})),Ah(n,(function(e){return e.max[t]}))])})))):null}},stateInit:function(){return{d3ForceLayout:dc().force(\"link\",kl()).force(\"charge\",pc()).force(\"center\",sl()).force(\"dagRadial\",null).stop(),engineRunning:!1}},init:function(t,e){e.graphScene=t},update:function(t,e){var n=function(t){return t.some((function(t){return e.hasOwnProperty(t)}))};if(t.engineRunning=!1,t.onUpdate(),null!==t.nodeAutoColorBy&&n([\"nodeAutoColorBy\",\"graphData\",\"nodeColor\"])&&wu(t.graphData.nodes,Mh(t.nodeAutoColorBy),t.nodeColor),null!==t.linkAutoColorBy&&n([\"linkAutoColorBy\",\"graphData\",\"linkColor\"])&&wu(t.graphData.links,Mh(t.linkAutoColorBy),t.linkColor),t._flushObjects||n([\"graphData\",\"nodeThreeObject\",\"nodeThreeObjectExtend\",\"nodeVal\",\"nodeColor\",\"nodeVisibility\",\"nodeRelSize\",\"nodeResolution\",\"nodeOpacity\"])){var r=Mh(t.nodeThreeObject),i=Mh(t.nodeThreeObjectExtend),o=Mh(t.nodeVal),a=Mh(t.nodeColor),s=Mh(t.nodeVisibility),l={},c={};yu(t.graphData.nodes.filter(s),t.graphScene,{purge:t._flushObjects||n([\"nodeThreeObject\",\"nodeThreeObjectExtend\"]),objFilter:function(t){return\"node\"===t.__graphObjType},createObj:function(e){var n,o=r(e),a=i(e);return o&&t.nodeThreeObject===o&&(o=o.clone()),o&&!a?n=o:((n=new Mu.Mesh).__graphDefaultObj=!0,o&&a&&n.add(o)),n.__graphObjType=\"node\",n},updateObj:function(e,n){if(e.__graphDefaultObj){var r=o(n)||1,i=Math.cbrt(r)*t.nodeRelSize,s=t.nodeResolution;e.geometry.type.match(/^Sphere(Buffer)?Geometry$/)&&e.geometry.parameters.radius===i&&e.geometry.parameters.widthSegments===s||(l.hasOwnProperty(r)||(l[r]=new Mu.SphereBufferGeometry(i,s,s)),e.geometry.dispose(),e.geometry=l[r]);var h=a(n),u=new Mu.Color(xu(h||\"#ffffaa\")),d=t.nodeOpacity*_u(h);\"MeshLambertMaterial\"===e.material.type&&e.material.color.equals(u)&&e.material.opacity===d||(c.hasOwnProperty(h)||(c[h]=new Mu.MeshLambertMaterial({color:u,transparent:!0,opacity:d})),e.material.dispose(),e.material=c[h])}}})}if(t._flushObjects||n([\"graphData\",\"linkThreeObject\",\"linkThreeObjectExtend\",\"linkMaterial\",\"linkColor\",\"linkWidth\",\"linkVisibility\",\"linkResolution\",\"linkOpacity\",\"linkDirectionalArrowLength\",\"linkDirectionalArrowColor\",\"linkDirectionalArrowResolution\",\"linkDirectionalParticles\",\"linkDirectionalParticleWidth\",\"linkDirectionalParticleColor\",\"linkDirectionalParticleResolution\"])){var h=Mh(t.linkThreeObject),u=Mh(t.linkThreeObjectExtend),d=Mh(t.linkMaterial),p=Mh(t.linkVisibility),f=Mh(t.linkColor),m=Mh(t.linkWidth),g={},v={},y={},x=t.graphData.links.filter(p);if(yu(x,t.graphScene,{objBindAttr:\"__lineObj\",purge:t._flushObjects||n([\"linkThreeObject\",\"linkThreeObjectExtend\",\"linkWidth\"]),objFilter:function(t){return\"link\"===t.__graphObjType},createObj:function(e){var n,r,i=h(e),o=u(e);if(i&&t.linkThreeObject===i&&(i=i.clone()),!i||o)if(!!m(e))n=new Mu.Mesh;else{var a=new Mu.BufferGeometry;a[Eu](\"position\",new Mu.BufferAttribute(new Float32Array(6),3)),n=new Mu.Line(a)}return i?o?((r=new Mu.Group).__graphDefaultObj=!0,r.add(n),r.add(i)):r=i:(r=n).__graphDefaultObj=!0,r.renderOrder=10,r.__graphObjType=\"link\",r},updateObj:function(e,n){if(e.__graphDefaultObj){var r=e.children.length?e.children[0]:e,i=Math.ceil(10*m(n))/10,o=!!i;if(o){var a=i/2,s=t.linkResolution;if(!r.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)||r.geometry.parameters.radiusTop!==a||r.geometry.parameters.radialSegments!==s){if(!g.hasOwnProperty(i)){var l=new Mu.CylinderBufferGeometry(a,a,1,s,1,!1);l[Tu]((new Mu.Matrix4).makeTranslation(0,.5,0)),l[Tu]((new Mu.Matrix4).makeRotationX(Math.PI/2)),g[i]=l}r.geometry.dispose(),r.geometry=g[i]}}var c=d(n);if(c)r.material=c;else{var h=f(n),u=new Mu.Color(xu(h||\"#f0f0f0\")),p=t.linkOpacity*_u(h),x=o?\"MeshLambertMaterial\":\"LineBasicMaterial\";if(r.material.type!==x||!r.material.color.equals(u)||r.material.opacity!==p){var _=o?v:y;_.hasOwnProperty(h)||(_[h]=new Mu[x]({color:u,transparent:p<1,opacity:p,depthWrite:p>=1})),r.material.dispose(),r.material=_[h]}}}}}),t.linkDirectionalArrowLength||e.hasOwnProperty(\"linkDirectionalArrowLength\")){var _=Mh(t.linkDirectionalArrowLength),b=Mh(t.linkDirectionalArrowColor);yu(x.filter(_),t.graphScene,{objBindAttr:\"__arrowObj\",objFilter:function(t){return\"arrow\"===t.__linkThreeObjType},createObj:function(){var t=new Mu.Mesh(void 0,new Mu.MeshLambertMaterial({transparent:!0}));return t.__linkThreeObjType=\"arrow\",t},updateObj:function(e,n){var r=_(n),i=t.linkDirectionalArrowResolution;if(!e.geometry.type.match(/^Cone(Buffer)?Geometry$/)||e.geometry.parameters.height!==r||e.geometry.parameters.radialSegments!==i){var o=new Mu.ConeBufferGeometry(.25*r,r,i);o.translate(0,r/2,0),o.rotateX(Math.PI/2),e.geometry.dispose(),e.geometry=o}e.material.color=new Mu.Color(b(n)||f(n)||\"#f0f0f0\"),e.material.opacity=3*t.linkOpacity}})}if(t.linkDirectionalParticles||e.hasOwnProperty(\"linkDirectionalParticles\")){var w=Mh(t.linkDirectionalParticles),M=Mh(t.linkDirectionalParticleWidth),S=Mh(t.linkDirectionalParticleColor),E={},T={};yu(x.filter(w),t.graphScene,{objBindAttr:\"__photonsObj\",objFilter:function(t){return\"photons\"===t.__linkThreeObjType},createObj:function(){var t=new Mu.Group;return t.__linkThreeObjType=\"photons\",t},updateObj:function(e,n){var r,i=Math.round(Math.abs(w(n))),o=!!e.children.length&&e.children[0],a=Math.ceil(10*M(n))/10/2,s=t.linkDirectionalParticleResolution;o&&o.geometry.parameters.radius===a&&o.geometry.parameters.widthSegments===s?r=o.geometry:(T.hasOwnProperty(a)||(T[a]=new Mu.SphereBufferGeometry(a,s,s)),r=T[a],o&&o.geometry.dispose());var l,c=S(n)||f(n)||\"#f0f0f0\",h=new Mu.Color(xu(c)),u=3*t.linkOpacity;o&&o.material.color.equals(h)&&o.material.opacity===u?l=o.material:(E.hasOwnProperty(c)||(E[c]=new Mu.MeshLambertMaterial({color:h,transparent:!0,opacity:u})),l=E[c],o&&o.material.dispose()),yu(uu(new Array(i)).map((function(t,e){return{idx:e}})),e,{idAccessor:function(t){return t.idx},createObj:function(){return new Mu.Mesh(r,l)},updateObj:function(t){t.geometry=r,t.material=l}})}})}}if(t._flushObjects=!1,n([\"graphData\",\"nodeId\",\"linkSource\",\"linkTarget\",\"numDimensions\",\"forceEngine\",\"dagMode\",\"dagNodeFilter\",\"dagLevelDistance\"])){t.engineRunning=!1,t.graphData.links.forEach((function(e){e.source=e[t.linkSource],e.target=e[t.linkTarget]}));var A,L=\"ngraph\"!==t.forceEngine;if(L){(A=t.d3ForceLayout).stop().alpha(1).numDimensions(t.numDimensions).nodes(t.graphData.nodes);var C=t.d3ForceLayout.force(\"link\");C&&C.id((function(e){return e[t.nodeId]})).links(t.graphData.links);var P=t.dagMode&&function(t,e){var n=t.nodes,r=t.links,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.nodeFilter,a=void 0===o?function(){return!0}:o,s=i.onLoopError,l=void 0===s?function(t){throw\"Invalid DAG structure! Found cycle in node path: \".concat(t.join(\" -> \"),\".\")}:s,c={};n.forEach((function(t){return c[e(t)]={data:t,out:[],depth:-1,skip:!a(t)}})),r.forEach((function(t){var n=t.source,r=t.target,i=l(n),o=l(r);if(!c.hasOwnProperty(i))throw\"Missing source node with id: \".concat(i);if(!c.hasOwnProperty(o))throw\"Missing target node with id: \".concat(o);var a=c[i],s=c[o];function l(t){return\"object\"===Qh(t)?e(t):t}a.out.push(s)}));var h=[];return u(Object.values(c)),Object.assign.apply(Object,[{}].concat(uu(Object.entries(c).filter((function(t){return!hu(t,2)[1].skip})).map((function(t){var e=hu(t,2);return tu({},e[0],e[1].depth)})))));function u(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=0,o=t.length;i<o;i++){var a=t[i];if(-1!==n.indexOf(a))if(\"continue\"===function(){var t=[].concat(uu(n.slice(n.indexOf(a))),[a]).map((function(t){return e(t.data)}));return h.some((function(e){return e.length===t.length&&e.every((function(e,n){return e===t[n]}))}))||(h.push(t),l(t)),\"continue\"}())continue;r>a.depth&&(a.depth=r,u(a.out,[].concat(uu(n),[a]),r+(a.skip?0:1)))}}}(t.graphData,(function(e){return e[t.nodeId]}),{nodeFilter:t.dagNodeFilter,onLoopError:t.onDagError||void 0}),R=Math.max.apply(Math,uu(Object.values(P||[]))),D=t.dagLevelDistance||t.graphData.nodes.length/(R||1)*2*(-1!==[\"radialin\",\"radialout\"].indexOf(t.dagMode)?.7:1);if(t.dagMode){var I=function(e,n){return function(r){return e?(P[r[t.nodeId]]-R/2)*D*(n?-1:1):void 0}},N=I(-1!==[\"lr\",\"rl\"].indexOf(t.dagMode),\"rl\"===t.dagMode),O=I(-1!==[\"td\",\"bu\"].indexOf(t.dagMode),\"td\"===t.dagMode),k=I(-1!==[\"zin\",\"zout\"].indexOf(t.dagMode),\"zout\"===t.dagMode);t.graphData.nodes.filter(t.dagNodeFilter).forEach((function(t){t.fx=N(t),t.fy=O(t),t.fz=k(t)}))}t.d3ForceLayout.force(\"dagRadial\",-1!==[\"radialin\",\"radialout\"].indexOf(t.dagMode)?function(t,e,n,r){var i,o,a,s,l=Dl(.1);function c(t){for(var l=0,c=i.length;l<c;++l){var h=i[l],u=h.x-e||1e-6,d=(h.y||0)-n||1e-6,p=(h.z||0)-r||1e-6,f=Math.sqrt(u*u+d*d+p*p),m=(s[l]-f)*a[l]*t/f;h.vx+=u*m,o>1&&(h.vy+=d*m),o>2&&(h.vz+=p*m)}}function h(){if(i){var e,n=i.length;for(a=new Array(n),s=new Array(n),e=0;e<n;++e)s[e]=+t(i[e],e,i),a[e]=isNaN(s[e])?0:+l(i[e],e,i)}}return\"function\"!=typeof t&&(t=Dl(+t)),null==e&&(e=0),null==n&&(n=0),null==r&&(r=0),c.initialize=function(t,...e){i=t,o=e.find((t=>[1,2,3].includes(t)))||2,h()},c.strength=function(t){return arguments.length?(l=\"function\"==typeof t?t:Dl(+t),h(),c):l},c.radius=function(e){return arguments.length?(t=\"function\"==typeof e?e:Dl(+e),h(),c):t},c.x=function(t){return arguments.length?(e=+t,c):e},c.y=function(t){return arguments.length?(n=+t,c):n},c.z=function(t){return arguments.length?(r=+t,c):r},c}((function(e){var n=P[e[t.nodeId]]||-1;return(\"radialin\"===t.dagMode?R-n:n)*D})).strength((function(e){return t.dagNodeFilter(e)?1:0})):null)}else{var z=Su.graph();t.graphData.nodes.forEach((function(e){z.addNode(e[t.nodeId])})),t.graphData.links.forEach((function(t){z.addLink(t.source,t.target)})),(A=Su.forcelayout(z,$h({dimensions:t.numDimensions},t.ngraphPhysics))).graph=z}for(var B=0;B<t.warmupTicks&&!(L&&t.d3AlphaMin>0&&t.d3ForceLayout.alpha()<t.d3AlphaMin);B++)A[L?\"tick\":\"step\"]();t.layout=A,this.resetCountdown()}t.engineRunning=!0,t.onFinishUpdate()}}),(window.THREE?window.THREE:{Group:zi}).Group,!0);const Lu={type:\"change\"},Cu={type:\"start\"},Pu={type:\"end\"};class Ru extends F{constructor(t,e){super(),void 0===e&&console.warn('THREE.TrackballControls: The second parameter \"domElement\" is now mandatory.'),e===document&&console.error('THREE.TrackballControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.');const n=this,r=-1,i=0,a=1,s=2,l=3,c=4;this.object=t,this.domElement=e,this.domElement.style.touchAction=\"none\",this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[\"KeyA\",\"KeyS\",\"KeyD\"],this.mouseButtons={LEFT:o.ROTATE,MIDDLE:o.DOLLY,RIGHT:o.PAN},this.target=new ot;const h=1e-6,u=new ot;let d=1,p=r,f=r,m=0,g=0,v=0;const y=new ot,x=new Y,_=new Y,b=new ot,w=new Y,M=new Y,S=new Y,E=new Y,T=[],A={};this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,this.handleResize=function(){const t=n.domElement.getBoundingClientRect(),e=n.domElement.ownerDocument.documentElement;n.screen.left=t.left+window.pageXOffset-e.clientLeft,n.screen.top=t.top+window.pageYOffset-e.clientTop,n.screen.width=t.width,n.screen.height=t.height};const L=function(){const t=new Y;return function(e,r){return t.set((e-n.screen.left)/n.screen.width,(r-n.screen.top)/n.screen.height),t}}(),C=function(){const t=new Y;return function(e,r){return t.set((e-.5*n.screen.width-n.screen.left)/(.5*n.screen.width),(n.screen.height+2*(n.screen.top-r))/n.screen.width),t}}();function P(t){!1!==n.enabled&&(0===T.length&&(n.domElement.ownerDocument.addEventListener(\"pointermove\",R),n.domElement.ownerDocument.addEventListener(\"pointerup\",D)),function(t){T.push(t)}(t),\"touch\"===t.pointerType?function(t){switch(F(t),T.length){case 1:p=l,_.copy(C(T[0].pageX,T[0].pageY)),x.copy(_);break;default:p=c;const t=T[0].pageX-T[1].pageX,e=T[0].pageY-T[1].pageY;g=m=Math.sqrt(t*t+e*e);const n=(T[0].pageX+T[1].pageX)/2,r=(T[0].pageY+T[1].pageY)/2;S.copy(L(n,r)),E.copy(S)}n.dispatchEvent(Cu)}(t):function(t){if(p===r)switch(t.button){case n.mouseButtons.LEFT:p=i;break;case n.mouseButtons.MIDDLE:p=a;break;case n.mouseButtons.RIGHT:p=s;break;default:p=r}const e=f!==r?f:p;e!==i||n.noRotate?e!==a||n.noZoom?e!==s||n.noPan||(S.copy(L(t.pageX,t.pageY)),E.copy(S)):(w.copy(L(t.pageX,t.pageY)),M.copy(w)):(_.copy(C(t.pageX,t.pageY)),x.copy(_));n.domElement.ownerDocument.addEventListener(\"pointermove\",R),n.domElement.ownerDocument.addEventListener(\"pointerup\",D),n.dispatchEvent(Cu)}(t))}function R(t){!1!==n.enabled&&(\"touch\"===t.pointerType?function(t){switch(F(t),T.length){case 1:x.copy(_),_.copy(C(t.pageX,t.pageY));break;default:const e=function(t){const e=t.pointerId===T[0].pointerId?T[1]:T[0];return A[e.pointerId]}(t),n=t.pageX-e.x,r=t.pageY-e.y;g=Math.sqrt(n*n+r*r);const i=(t.pageX+e.x)/2,o=(t.pageY+e.y)/2;E.copy(L(i,o))}}(t):function(t){const e=f!==r?f:p;e!==i||n.noRotate?e!==a||n.noZoom?e!==s||n.noPan||E.copy(L(t.pageX,t.pageY)):M.copy(L(t.pageX,t.pageY)):(x.copy(_),_.copy(C(t.pageX,t.pageY)))}(t))}function D(t){!1!==n.enabled&&(\"touch\"===t.pointerType?function(t){switch(T.length){case 0:p=r;break;case 1:p=l,_.copy(C(t.pageX,t.pageY)),x.copy(_)}n.dispatchEvent(Pu)}(t):(p=r,n.domElement.ownerDocument.removeEventListener(\"pointermove\",R),n.domElement.ownerDocument.removeEventListener(\"pointerup\",D),n.dispatchEvent(Pu)),B(t),0===T.length&&(n.domElement.ownerDocument.removeEventListener(\"pointermove\",R),n.domElement.ownerDocument.removeEventListener(\"pointerup\",D)))}function I(t){B(t)}function N(t){!1!==n.enabled&&(window.removeEventListener(\"keydown\",N),f===r&&(t.code!==n.keys[i]||n.noRotate?t.code!==n.keys[a]||n.noZoom?t.code!==n.keys[s]||n.noPan||(f=s):f=a:f=i))}function O(){!1!==n.enabled&&(f=r,window.addEventListener(\"keydown\",N))}function k(t){if(!1!==n.enabled&&!0!==n.noZoom){switch(t.preventDefault(),t.deltaMode){case 2:w.y-=.025*t.deltaY;break;case 1:w.y-=.01*t.deltaY;break;default:w.y-=25e-5*t.deltaY}n.dispatchEvent(Cu),n.dispatchEvent(Pu)}}function z(t){!1!==n.enabled&&t.preventDefault()}function B(t){delete A[t.pointerId];for(let e=0;e<T.length;e++)if(T[e].pointerId==t.pointerId)return void T.splice(e,1)}function F(t){let e=A[t.pointerId];void 0===e&&(e=new Y,A[t.pointerId]=e),e.set(t.pageX,t.pageY)}this.rotateCamera=function(){const t=new ot,e=new it,r=new ot,i=new ot,o=new ot,a=new ot;return function(){a.set(_.x-x.x,_.y-x.y,0);let s=a.length();s?(y.copy(n.object.position).sub(n.target),r.copy(y).normalize(),i.copy(n.object.up).normalize(),o.crossVectors(i,r).normalize(),i.setLength(_.y-x.y),o.setLength(_.x-x.x),a.copy(i.add(o)),t.crossVectors(a,y).normalize(),s*=n.rotateSpeed,e.setFromAxisAngle(t,s),y.applyQuaternion(e),n.object.up.applyQuaternion(e),b.copy(t),v=s):!n.staticMoving&&v&&(v*=Math.sqrt(1-n.dynamicDampingFactor),y.copy(n.object.position).sub(n.target),e.setFromAxisAngle(b,v),y.applyQuaternion(e),n.object.up.applyQuaternion(e)),x.copy(_)}}(),this.zoomCamera=function(){let t;p===c?(t=m/g,m=g,n.object.isPerspectiveCamera?y.multiplyScalar(t):n.object.isOrthographicCamera?(n.object.zoom*=t,n.object.updateProjectionMatrix()):console.warn(\"THREE.TrackballControls: Unsupported camera type\")):(t=1+(M.y-w.y)*n.zoomSpeed,1!==t&&t>0&&(n.object.isPerspectiveCamera?y.multiplyScalar(t):n.object.isOrthographicCamera?(n.object.zoom/=t,n.object.updateProjectionMatrix()):console.warn(\"THREE.TrackballControls: Unsupported camera type\")),n.staticMoving?w.copy(M):w.y+=(M.y-w.y)*this.dynamicDampingFactor)},this.panCamera=function(){const t=new Y,e=new ot,r=new ot;return function(){if(t.copy(E).sub(S),t.lengthSq()){if(n.object.isOrthographicCamera){const e=(n.object.right-n.object.left)/n.object.zoom/n.domElement.clientWidth,r=(n.object.top-n.object.bottom)/n.object.zoom/n.domElement.clientWidth;t.x*=e,t.y*=r}t.multiplyScalar(y.length()*n.panSpeed),r.copy(y).cross(n.object.up).setLength(t.x),r.add(e.copy(n.object.up).setLength(t.y)),n.object.position.add(r),n.target.add(r),n.staticMoving?S.copy(E):S.add(t.subVectors(E,S).multiplyScalar(n.dynamicDampingFactor))}}}(),this.checkDistances=function(){n.noZoom&&n.noPan||(y.lengthSq()>n.maxDistance*n.maxDistance&&(n.object.position.addVectors(n.target,y.setLength(n.maxDistance)),w.copy(M)),y.lengthSq()<n.minDistance*n.minDistance&&(n.object.position.addVectors(n.target,y.setLength(n.minDistance)),w.copy(M)))},this.update=function(){y.subVectors(n.object.position,n.target),n.noRotate||n.rotateCamera(),n.noZoom||n.zoomCamera(),n.noPan||n.panCamera(),n.object.position.addVectors(n.target,y),n.object.isPerspectiveCamera?(n.checkDistances(),n.object.lookAt(n.target),u.distanceToSquared(n.object.position)>h&&(n.dispatchEvent(Lu),u.copy(n.object.position))):n.object.isOrthographicCamera?(n.object.lookAt(n.target),(u.distanceToSquared(n.object.position)>h||d!==n.object.zoom)&&(n.dispatchEvent(Lu),u.copy(n.object.position),d=n.object.zoom)):console.warn(\"THREE.TrackballControls: Unsupported camera type\")},this.reset=function(){p=r,f=r,n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.up.copy(n.up0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),y.subVectors(n.object.position,n.target),n.object.lookAt(n.target),n.dispatchEvent(Lu),u.copy(n.object.position),d=n.object.zoom},this.dispose=function(){n.domElement.removeEventListener(\"contextmenu\",z),n.domElement.removeEventListener(\"pointerdown\",P),n.domElement.removeEventListener(\"pointercancel\",I),n.domElement.removeEventListener(\"wheel\",k),window.removeEventListener(\"keydown\",N),window.removeEventListener(\"keyup\",O)},this.domElement.addEventListener(\"contextmenu\",z),this.domElement.addEventListener(\"pointerdown\",P),this.domElement.addEventListener(\"pointercancel\",I),this.domElement.addEventListener(\"wheel\",k,{passive:!1}),window.addEventListener(\"keydown\",N),window.addEventListener(\"keyup\",O),this.handleResize(),this.update()}}const Du={type:\"change\"},Iu={type:\"start\"},Nu={type:\"end\"};class Ou extends F{constructor(t,e){super(),void 0===e&&console.warn('THREE.OrbitControls: The second parameter \"domElement\" is now mandatory.'),e===document&&console.error('THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.'),this.object=t,this.domElement=e,this.domElement.style.touchAction=\"none\",this.enabled=!0,this.target=new ot,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:\"ArrowLeft\",UP:\"ArrowUp\",RIGHT:\"ArrowRight\",BOTTOM:\"ArrowDown\"},this.mouseButtons={LEFT:o.ROTATE,MIDDLE:o.DOLLY,RIGHT:o.PAN},this.touches={ONE:a,TWO:l},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return u.phi},this.getAzimuthalAngle=function(){return u.theta},this.listenToKeyEvents=function(t){t.addEventListener(\"keydown\",Z),this._domElementKeyEvents=t},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(Du),n.update(),i=r.NONE},this.update=function(){const e=new ot,o=(new it).setFromUnitVectors(t.up,new ot(0,1,0)),a=o.clone().invert(),s=new ot,l=new it,c=2*Math.PI;return function(){const t=n.object.position;e.copy(t).sub(n.target),e.applyQuaternion(o),u.setFromVector3(e),n.autoRotate&&i===r.NONE&&L(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping?(u.theta+=d.theta*n.dampingFactor,u.phi+=d.phi*n.dampingFactor):(u.theta+=d.theta,u.phi+=d.phi);let g=n.minAzimuthAngle,v=n.maxAzimuthAngle;return isFinite(g)&&isFinite(v)&&(g<-Math.PI?g+=c:g>Math.PI&&(g-=c),v<-Math.PI?v+=c:v>Math.PI&&(v-=c),u.theta=g<=v?Math.max(g,Math.min(v,u.theta)):u.theta>(g+v)/2?Math.max(g,u.theta):Math.min(v,u.theta)),u.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,u.phi)),u.makeSafe(),u.radius*=p,u.radius=Math.max(n.minDistance,Math.min(n.maxDistance,u.radius)),!0===n.enableDamping?n.target.addScaledVector(f,n.dampingFactor):n.target.add(f),e.setFromSpherical(u),e.applyQuaternion(a),t.copy(n.target).add(e),n.object.lookAt(n.target),!0===n.enableDamping?(d.theta*=1-n.dampingFactor,d.phi*=1-n.dampingFactor,f.multiplyScalar(1-n.dampingFactor)):(d.set(0,0,0),f.set(0,0,0)),p=1,!!(m||s.distanceToSquared(n.object.position)>h||8*(1-l.dot(n.object.quaternion))>h)&&(n.dispatchEvent(Du),s.copy(n.object.position),l.copy(n.object.quaternion),m=!1,!0)}}(),this.dispose=function(){n.domElement.removeEventListener(\"contextmenu\",J),n.domElement.removeEventListener(\"pointerdown\",G),n.domElement.removeEventListener(\"pointercancel\",q),n.domElement.removeEventListener(\"wheel\",X),n.domElement.ownerDocument.removeEventListener(\"pointermove\",j),n.domElement.ownerDocument.removeEventListener(\"pointerup\",W),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener(\"keydown\",Z)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let i=r.NONE;const h=1e-6,u=new qs,d=new qs;let p=1;const f=new ot;let m=!1;const g=new Y,v=new Y,y=new Y,x=new Y,_=new Y,b=new Y,w=new Y,M=new Y,S=new Y,E=[],T={};function A(){return Math.pow(.95,n.zoomSpeed)}function L(t){d.theta-=t}function C(t){d.phi-=t}const P=function(){const t=new ot;return function(e,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-e),f.add(t)}}(),R=function(){const t=new ot;return function(e,r){!0===n.screenSpacePanning?t.setFromMatrixColumn(r,1):(t.setFromMatrixColumn(r,0),t.crossVectors(n.object.up,t)),t.multiplyScalar(e),f.add(t)}}(),D=function(){const t=new ot;return function(e,r){const i=n.domElement;if(n.object.isPerspectiveCamera){const o=n.object.position;t.copy(o).sub(n.target);let a=t.length();a*=Math.tan(n.object.fov/2*Math.PI/180),P(2*e*a/i.clientHeight,n.object.matrix),R(2*r*a/i.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(P(e*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),R(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"),n.enablePan=!1)}}();function I(t){n.object.isPerspectiveCamera?p/=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom*t)),n.object.updateProjectionMatrix(),m=!0):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),n.enableZoom=!1)}function N(t){n.object.isPerspectiveCamera?p*=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/t)),n.object.updateProjectionMatrix(),m=!0):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),n.enableZoom=!1)}function O(t){g.set(t.clientX,t.clientY)}function k(t){x.set(t.clientX,t.clientY)}function z(){if(1===E.length)g.set(E[0].pageX,E[0].pageY);else{const t=.5*(E[0].pageX+E[1].pageX),e=.5*(E[0].pageY+E[1].pageY);g.set(t,e)}}function B(){if(1===E.length)x.set(E[0].pageX,E[0].pageY);else{const t=.5*(E[0].pageX+E[1].pageX),e=.5*(E[0].pageY+E[1].pageY);x.set(t,e)}}function F(){const t=E[0].pageX-E[1].pageX,e=E[0].pageY-E[1].pageY,n=Math.sqrt(t*t+e*e);w.set(0,n)}function U(t){if(1==E.length)v.set(t.pageX,t.pageY);else{const e=K(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);v.set(n,r)}y.subVectors(v,g).multiplyScalar(n.rotateSpeed);const e=n.domElement;L(2*Math.PI*y.x/e.clientHeight),C(2*Math.PI*y.y/e.clientHeight),g.copy(v)}function H(t){if(1===E.length)_.set(t.pageX,t.pageY);else{const e=K(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);_.set(n,r)}b.subVectors(_,x).multiplyScalar(n.panSpeed),D(b.x,b.y),x.copy(_)}function V(t){const e=K(t),r=t.pageX-e.x,i=t.pageY-e.y,o=Math.sqrt(r*r+i*i);M.set(0,o),S.set(0,Math.pow(M.y/w.y,n.zoomSpeed)),I(S.y),w.copy(M)}function G(t){!1!==n.enabled&&(0===E.length&&(n.domElement.ownerDocument.addEventListener(\"pointermove\",j),n.domElement.ownerDocument.addEventListener(\"pointerup\",W)),function(t){E.push(t)}(t),\"touch\"===t.pointerType?function(t){switch(Q(t),E.length){case 1:switch(n.touches.ONE){case a:if(!1===n.enableRotate)return;z(),i=r.TOUCH_ROTATE;break;case s:if(!1===n.enablePan)return;B(),i=r.TOUCH_PAN;break;default:i=r.NONE}break;case 2:switch(n.touches.TWO){case l:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&F(),n.enablePan&&B(),i=r.TOUCH_DOLLY_PAN;break;case c:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&F(),n.enableRotate&&z(),i=r.TOUCH_DOLLY_ROTATE;break;default:i=r.NONE}break;default:i=r.NONE}i!==r.NONE&&n.dispatchEvent(Iu)}(t):function(t){let e;switch(t.button){case 0:e=n.mouseButtons.LEFT;break;case 1:e=n.mouseButtons.MIDDLE;break;case 2:e=n.mouseButtons.RIGHT;break;default:e=-1}switch(e){case o.DOLLY:if(!1===n.enableZoom)return;!function(t){w.set(t.clientX,t.clientY)}(t),i=r.DOLLY;break;case o.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enablePan)return;k(t),i=r.PAN}else{if(!1===n.enableRotate)return;O(t),i=r.ROTATE}break;case o.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enableRotate)return;O(t),i=r.ROTATE}else{if(!1===n.enablePan)return;k(t),i=r.PAN}break;default:i=r.NONE}i!==r.NONE&&n.dispatchEvent(Iu)}(t))}function j(t){!1!==n.enabled&&(\"touch\"===t.pointerType?function(t){switch(Q(t),i){case r.TOUCH_ROTATE:if(!1===n.enableRotate)return;U(t),n.update();break;case r.TOUCH_PAN:if(!1===n.enablePan)return;H(t),n.update();break;case r.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(t){n.enableZoom&&V(t),n.enablePan&&H(t)}(t),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(t){n.enableZoom&&V(t),n.enableRotate&&U(t)}(t),n.update();break;default:i=r.NONE}}(t):function(t){if(!1===n.enabled)return;switch(i){case r.ROTATE:if(!1===n.enableRotate)return;!function(t){v.set(t.clientX,t.clientY),y.subVectors(v,g).multiplyScalar(n.rotateSpeed);const e=n.domElement;L(2*Math.PI*y.x/e.clientHeight),C(2*Math.PI*y.y/e.clientHeight),g.copy(v),n.update()}(t);break;case r.DOLLY:if(!1===n.enableZoom)return;!function(t){M.set(t.clientX,t.clientY),S.subVectors(M,w),S.y>0?I(A()):S.y<0&&N(A()),w.copy(M),n.update()}(t);break;case r.PAN:if(!1===n.enablePan)return;!function(t){_.set(t.clientX,t.clientY),b.subVectors(_,x).multiplyScalar(n.panSpeed),D(b.x,b.y),x.copy(_),n.update()}(t)}}(t))}function W(t){!1!==n.enabled&&(t.pointerType,n.dispatchEvent(Nu),i=r.NONE,$(t),0===E.length&&(n.domElement.ownerDocument.removeEventListener(\"pointermove\",j),n.domElement.ownerDocument.removeEventListener(\"pointerup\",W)))}function q(t){$(t)}function X(t){!1===n.enabled||!1===n.enableZoom||i!==r.NONE&&i!==r.ROTATE||(t.preventDefault(),n.dispatchEvent(Iu),function(t){t.deltaY<0?N(A()):t.deltaY>0&&I(A()),n.update()}(t),n.dispatchEvent(Nu))}function Z(t){!1!==n.enabled&&!1!==n.enablePan&&function(t){let e=!1;switch(t.code){case n.keys.UP:D(0,n.keyPanSpeed),e=!0;break;case n.keys.BOTTOM:D(0,-n.keyPanSpeed),e=!0;break;case n.keys.LEFT:D(n.keyPanSpeed,0),e=!0;break;case n.keys.RIGHT:D(-n.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),n.update())}(t)}function J(t){!1!==n.enabled&&t.preventDefault()}function $(t){delete T[t.pointerId];for(let e=0;e<E.length;e++)if(E[e].pointerId==t.pointerId)return void E.splice(e,1)}function Q(t){let e=T[t.pointerId];void 0===e&&(e=new Y,T[t.pointerId]=e),e.set(t.pageX,t.pageY)}function K(t){const e=t.pointerId===E[0].pointerId?E[1]:E[0];return T[e.pointerId]}n.domElement.addEventListener(\"contextmenu\",J),n.domElement.addEventListener(\"pointerdown\",G),n.domElement.addEventListener(\"pointercancel\",q),n.domElement.addEventListener(\"wheel\",X,{passive:!1}),this.update()}}const ku={type:\"change\"};class zu extends F{constructor(t,e){super(),void 0===e&&(console.warn('THREE.FlyControls: The second parameter \"domElement\" is now mandatory.'),e=document),this.object=t,this.domElement=e,this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1;const n=this,r=1e-6,i=new it,o=new ot;this.tmpQuaternion=new it,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new ot(0,0,0),this.rotationVector=new ot(0,0,0),this.keydown=function(t){if(!t.altKey){switch(t.code){case\"ShiftLeft\":case\"ShiftRight\":this.movementSpeedMultiplier=.1;break;case\"KeyW\":this.moveState.forward=1;break;case\"KeyS\":this.moveState.back=1;break;case\"KeyA\":this.moveState.left=1;break;case\"KeyD\":this.moveState.right=1;break;case\"KeyR\":this.moveState.up=1;break;case\"KeyF\":this.moveState.down=1;break;case\"ArrowUp\":this.moveState.pitchUp=1;break;case\"ArrowDown\":this.moveState.pitchDown=1;break;case\"ArrowLeft\":this.moveState.yawLeft=1;break;case\"ArrowRight\":this.moveState.yawRight=1;break;case\"KeyQ\":this.moveState.rollLeft=1;break;case\"KeyE\":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(t){switch(t.code){case\"ShiftLeft\":case\"ShiftRight\":this.movementSpeedMultiplier=1;break;case\"KeyW\":this.moveState.forward=0;break;case\"KeyS\":this.moveState.back=0;break;case\"KeyA\":this.moveState.left=0;break;case\"KeyD\":this.moveState.right=0;break;case\"KeyR\":this.moveState.up=0;break;case\"KeyF\":this.moveState.down=0;break;case\"ArrowUp\":this.moveState.pitchUp=0;break;case\"ArrowDown\":this.moveState.pitchDown=0;break;case\"ArrowLeft\":this.moveState.yawLeft=0;break;case\"ArrowRight\":this.moveState.yawRight=0;break;case\"KeyQ\":this.moveState.rollLeft=0;break;case\"KeyE\":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(t){if(this.dragToLook)this.mouseStatus++;else{switch(t.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(t){if(!this.dragToLook||this.mouseStatus>0){const e=this.getContainerDimensions(),n=e.size[0]/2,r=e.size[1]/2;this.moveState.yawLeft=-(t.pageX-e.offset[0]-n)/n,this.moveState.pitchDown=(t.pageY-e.offset[1]-r)/r,this.updateRotationVector()}},this.mouseup=function(t){if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(t.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(t){const e=t*n.movementSpeed,a=t*n.rollSpeed;n.object.translateX(n.moveVector.x*e),n.object.translateY(n.moveVector.y*e),n.object.translateZ(n.moveVector.z*e),n.tmpQuaternion.set(n.rotationVector.x*a,n.rotationVector.y*a,n.rotationVector.z*a,1).normalize(),n.object.quaternion.multiply(n.tmpQuaternion),(o.distanceToSquared(n.object.position)>r||8*(1-i.dot(n.object.quaternion))>r)&&(n.dispatchEvent(ku),i.copy(n.object.quaternion),o.copy(n.object.position))},this.updateMovementVector=function(){const t=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-t+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener(\"contextmenu\",Bu),this.domElement.removeEventListener(\"mousedown\",s),this.domElement.removeEventListener(\"mousemove\",a),this.domElement.removeEventListener(\"mouseup\",l),window.removeEventListener(\"keydown\",c),window.removeEventListener(\"keyup\",h)};const a=this.mousemove.bind(this),s=this.mousedown.bind(this),l=this.mouseup.bind(this),c=this.keydown.bind(this),h=this.keyup.bind(this);this.domElement.addEventListener(\"contextmenu\",Bu),this.domElement.addEventListener(\"mousemove\",a),this.domElement.addEventListener(\"mousedown\",s),this.domElement.addEventListener(\"mouseup\",l),window.addEventListener(\"keydown\",c),window.addEventListener(\"keyup\",h),this.updateMovementVector(),this.updateRotationVector()}}function Bu(t){t.preventDefault()}var Fu={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:\"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",fragmentShader:\"\\n\\n\\t\\tuniform float opacity;\\n\\n\\t\\tuniform sampler2D tDiffuse;\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvec4 texel = texture2D( tDiffuse, vUv );\\n\\t\\t\\tgl_FragColor = opacity * texel;\\n\\n\\t\\t}\"};class Uu{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error(\"THREE.Pass: .render() must be implemented in derived pass.\")}}const Hu=new xs(-1,1,1,-1,0,1),Vu=new Ge;Vu.setAttribute(\"position\",new Ne([-1,3,0,-1,-1,0,3,-1,0],3)),Vu.setAttribute(\"uv\",new Ne([0,2,0,0,2,0],2));class Gu{constructor(t){this._mesh=new ln(Vu,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,Hu)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class ju extends Uu{constructor(t,e){super(),this.textureID=void 0!==e?e:\"tDiffuse\",t instanceof fn?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=pn.clone(t.uniforms),this.material=new fn({defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new Gu(this.material)}render(t,e,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}}class Wu extends Uu{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,n){const r=t.getContext(),i=t.state;let o,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(o=0,a=1):(o=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),i.buffers.stencil.setFunc(r.ALWAYS,o,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(r.EQUAL,1,4294967295),i.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),i.buffers.stencil.setLocked(!0)}}class qu extends Uu{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}class Xu{constructor(t,e){if(this.renderer=t,void 0===e){const n={minFilter:m,magFilter:m,format:S},r=t.getSize(new Y);this._pixelRatio=t.getPixelRatio(),this._width=r.width,this._height=r.height,(e=new nt(this._width*this._pixelRatio,this._height*this._pixelRatio,n)).texture.name=\"EffectComposer.rt1\"}else this._pixelRatio=1,this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name=\"EffectComposer.rt2\",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===Fu&&console.error(\"THREE.EffectComposer relies on CopyShader\"),void 0===ju&&console.error(\"THREE.EffectComposer relies on ShaderPass\"),this.copyPass=new ju(Fu),this.clock=new Ls}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;e<this.passes.length;e++)if(this.passes[e].enabled)return!1;return!0}render(t){void 0===t&&(t=this.clock.getDelta());const e=this.renderer.getRenderTarget();let n=!1;for(let e=0,r=this.passes.length;e<r;e++){const r=this.passes[e];if(!1!==r.enabled){if(r.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(e),r.render(this.renderer,this.writeBuffer,this.readBuffer,t,n),r.needsSwap){if(n){const e=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(e.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,t),n.setFunc(e.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==Wu&&(r instanceof Wu?n=!0:r instanceof qu&&(n=!1))}}this.renderer.setRenderTarget(e)}reset(t){if(void 0===t){const e=this.renderer.getSize(new Y);this._pixelRatio=this.renderer.getPixelRatio(),this._width=e.width,this._height=e.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(t,e){this._width=t,this._height=e;const n=this._width*this._pixelRatio,r=this._height*this._pixelRatio;this.renderTarget1.setSize(n,r),this.renderTarget2.setSize(n,r);for(let t=0;t<this.passes.length;t++)this.passes[t].setSize(n,r)}setPixelRatio(t){this._pixelRatio=t,this.setSize(this._width,this._height)}}new xs(-1,1,1,-1,0,1);const Yu=new Ge;Yu.setAttribute(\"position\",new Ne([-1,3,0,-1,-1,0,3,-1,0],3)),Yu.setAttribute(\"uv\",new Ne([0,2,0,0,2,0],2));class Zu extends Uu{constructor(t,e,n,r,i){super(),this.scene=t,this.camera=e,this.overrideMaterial=n,this.clearColor=r,this.clearAlpha=void 0!==i?i:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Ae}render(t,e,n){const r=t.autoClear;let i,o;t.autoClear=!1,void 0!==this.overrideMaterial&&(o=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(t.getClearColor(this._oldClearColor),i=t.getClearAlpha(),t.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:n),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),this.clearColor&&t.setClearColor(this._oldClearColor,i),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=o),t.autoClear=r}}function Ju(){return(Ju=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function $u(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function Qu(t,e){return(Qu=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function Ku(t){return(Ku=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function td(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function ed(t,e,n){return(ed=td()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&Qu(i,n.prototype),i}).apply(null,arguments)}function nd(t){var e=\"function\"==typeof Map?new Map:void 0;return(nd=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf(\"[native code]\")))return t;var n;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return ed(t,arguments,Ku(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Qu(r,t)})(t)}var rd={1:\"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",2:\"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",3:\"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",4:\"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",5:\"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",6:\"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",7:\"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",8:\"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",9:\"Please provide a number of steps to the modularScale helper.\\n\\n\",10:\"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",11:'Invalid value passed as base to modularScale, expected number or em string but got \"%s\"\\n\\n',12:'Expected a string ending in \"px\" or a number passed as the first argument to %s(), got \"%s\" instead.\\n\\n',13:'Expected a string ending in \"px\" or a number passed as the second argument to %s(), got \"%s\" instead.\\n\\n',14:'Passed invalid pixel value (\"%s\") to %s(), please pass a value like \"12px\" or 12.\\n\\n',15:'Passed invalid base value (\"%s\") to %s(), please pass a value like \"12px\" or 12.\\n\\n',16:\"You must provide a template to this method.\\n\\n\",17:\"You passed an unsupported selector state to this method.\\n\\n\",18:\"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",19:\"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",20:\"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",21:\"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",22:\"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",23:\"fontFace expects a name of a font-family.\\n\\n\",24:\"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",25:\"fontFace expects localFonts to be an array.\\n\\n\",26:\"fontFace expects fileFormats to be an array.\\n\\n\",27:\"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",28:\"Please supply a filename to retinaImage() as the first argument.\\n\\n\",29:\"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",30:\"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",31:\"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",32:\"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",33:\"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",34:\"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",35:'borderRadius expects one of \"top\", \"bottom\", \"left\" or \"right\" as the first argument.\\n\\n',36:\"Property must be a string value.\\n\\n\",37:\"Syntax Error at %s.\\n\\n\",38:\"Formula contains a function that needs parentheses at %s.\\n\\n\",39:\"Formula is missing closing parenthesis at %s.\\n\\n\",40:\"Formula has too many closing parentheses at %s.\\n\\n\",41:\"All values in a formula must have the same unit or be unitless.\\n\\n\",42:\"Please provide a number of steps to the modularScale helper.\\n\\n\",43:\"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",44:\"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",45:\"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",46:\"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",47:\"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",48:\"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",49:\"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",50:\"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",51:\"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",52:\"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",53:\"fontFace expects localFonts to be an array.\\n\\n\",54:\"fontFace expects fileFormats to be an array.\\n\\n\",55:\"fontFace expects a name of a font-family.\\n\\n\",56:\"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",57:\"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",58:\"Please supply a filename to retinaImage() as the first argument.\\n\\n\",59:\"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",60:\"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",61:\"Property must be a string value.\\n\\n\",62:\"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",63:'borderRadius expects one of \"top\", \"bottom\", \"left\" or \"right\" as the first argument.\\n\\n',64:\"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",65:\"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",66:\"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",67:\"You must provide a template to this method.\\n\\n\",68:\"You passed an unsupported selector state to this method.\\n\\n\",69:'Expected a string ending in \"px\" or a number passed as the first argument to %s(), got %s instead.\\n\\n',70:'Expected a string ending in \"px\" or a number passed as the second argument to %s(), got %s instead.\\n\\n',71:'Passed invalid pixel value %s to %s(), please pass a value like \"12px\" or 12.\\n\\n',72:'Passed invalid base value %s to %s(), please pass a value like \"12px\" or 12.\\n\\n',73:\"Please provide a valid CSS variable.\\n\\n\",74:\"CSS variable not found and no default was provided.\\n\\n\",75:\"important requires a valid style object, got a %s instead.\\n\\n\",76:\"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",77:'remToPx expects a value in \"rem\" but you provided it in \"%s\".\\n\\n',78:'base must be set in \"px\" or \"%\" but you set it in \"%s\".\\n'};function id(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var r,i=e[0],o=[];for(r=1;r<e.length;r+=1)o.push(e[r]);return o.forEach((function(t){i=i.replace(/%[a-z]/,t)})),i}var od=function(t){var e,n;function r(e){var n;if(\"production\"===process.env.NODE_ENV)n=t.call(this,\"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\"+e+\" for more information.\")||this;else{for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];n=t.call(this,id.apply(void 0,[rd[e]].concat(i)))||this}return $u(n)}return n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,Qu(e,n),r}(nd(Error));function ad(t){return Math.round(255*t)}function sd(t,e,n){return ad(t)+\",\"+ad(e)+\",\"+ad(n)}function ld(t,e,n,r){if(void 0===r&&(r=sd),0===e)return r(n,n,n);var i=(t%360+360)%360/60,o=(1-Math.abs(2*n-1))*e,a=o*(1-Math.abs(i%2-1)),s=0,l=0,c=0;i>=0&&i<1?(s=o,l=a):i>=1&&i<2?(s=a,l=o):i>=2&&i<3?(l=o,c=a):i>=3&&i<4?(l=a,c=o):i>=4&&i<5?(s=a,c=o):i>=5&&i<6&&(s=o,c=a);var h=n-o/2;return r(s+h,l+h,c+h)}var cd={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"639\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"};var hd=/^#[a-fA-F0-9]{6}$/,ud=/^#[a-fA-F0-9]{8}$/,dd=/^#[a-fA-F0-9]{3}$/,pd=/^#[a-fA-F0-9]{4}$/,fd=/^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i,md=/^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i,gd=/^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i,vd=/^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;function yd(t){if(\"string\"!=typeof t)throw new od(3);var e=function(t){if(\"string\"!=typeof t)return t;var e=t.toLowerCase();return cd[e]?\"#\"+cd[e]:t}(t);if(e.match(hd))return{red:parseInt(\"\"+e[1]+e[2],16),green:parseInt(\"\"+e[3]+e[4],16),blue:parseInt(\"\"+e[5]+e[6],16)};if(e.match(ud)){var n=parseFloat((parseInt(\"\"+e[7]+e[8],16)/255).toFixed(2));return{red:parseInt(\"\"+e[1]+e[2],16),green:parseInt(\"\"+e[3]+e[4],16),blue:parseInt(\"\"+e[5]+e[6],16),alpha:n}}if(e.match(dd))return{red:parseInt(\"\"+e[1]+e[1],16),green:parseInt(\"\"+e[2]+e[2],16),blue:parseInt(\"\"+e[3]+e[3],16)};if(e.match(pd)){var r=parseFloat((parseInt(\"\"+e[4]+e[4],16)/255).toFixed(2));return{red:parseInt(\"\"+e[1]+e[1],16),green:parseInt(\"\"+e[2]+e[2],16),blue:parseInt(\"\"+e[3]+e[3],16),alpha:r}}var i=fd.exec(e);if(i)return{red:parseInt(\"\"+i[1],10),green:parseInt(\"\"+i[2],10),blue:parseInt(\"\"+i[3],10)};var o=md.exec(e.substring(0,50));if(o)return{red:parseInt(\"\"+o[1],10),green:parseInt(\"\"+o[2],10),blue:parseInt(\"\"+o[3],10),alpha:parseFloat(\"\"+o[4])};var a=gd.exec(e);if(a){var s=\"rgb(\"+ld(parseInt(\"\"+a[1],10),parseInt(\"\"+a[2],10)/100,parseInt(\"\"+a[3],10)/100)+\")\",l=fd.exec(s);if(!l)throw new od(4,e,s);return{red:parseInt(\"\"+l[1],10),green:parseInt(\"\"+l[2],10),blue:parseInt(\"\"+l[3],10)}}var c=vd.exec(e.substring(0,50));if(c){var h=\"rgb(\"+ld(parseInt(\"\"+c[1],10),parseInt(\"\"+c[2],10)/100,parseInt(\"\"+c[3],10)/100)+\")\",u=fd.exec(h);if(!u)throw new od(4,e,h);return{red:parseInt(\"\"+u[1],10),green:parseInt(\"\"+u[2],10),blue:parseInt(\"\"+u[3],10),alpha:parseFloat(\"\"+c[4])}}throw new od(5)}var xd=function(t){return 7===t.length&&t[1]===t[2]&&t[3]===t[4]&&t[5]===t[6]?\"#\"+t[1]+t[3]+t[5]:t};function _d(t){var e=t.toString(16);return 1===e.length?\"0\"+e:e}function bd(t,e,n){if(\"number\"==typeof t&&\"number\"==typeof e&&\"number\"==typeof n)return xd(\"#\"+_d(t)+_d(e)+_d(n));if(\"object\"==typeof t&&void 0===e&&void 0===n)return xd(\"#\"+_d(t.red)+_d(t.green)+_d(t.blue));throw new od(6)}function wd(t,e,n){return function(){var r=n.concat(Array.prototype.slice.call(arguments));return r.length>=e?t.apply(this,r):wd(t,e,r)}}function Md(t){return wd(t,t.length,[])}function Sd(t,e){if(\"transparent\"===e)return e;var n,r,i,o=yd(e),a=\"number\"==typeof o.alpha?o.alpha:1;return function(t,e,n,r){if(\"string\"==typeof t&&\"number\"==typeof e){var i=yd(t);return\"rgba(\"+i.red+\",\"+i.green+\",\"+i.blue+\",\"+e+\")\"}if(\"number\"==typeof t&&\"number\"==typeof e&&\"number\"==typeof n&&\"number\"==typeof r)return r>=1?bd(t,e,n):\"rgba(\"+t+\",\"+e+\",\"+n+\",\"+r+\")\";if(\"object\"==typeof t&&void 0===e&&void 0===n&&void 0===r)return t.alpha>=1?bd(t.red,t.green,t.blue):\"rgba(\"+t.red+\",\"+t.green+\",\"+t.blue+\",\"+t.alpha+\")\";throw new od(7)}(Ju({},o,{alpha:(n=0,r=1,i=(100*a+100*parseFloat(t))/100,Math.max(n,Math.min(r,i)))}))}var Ed=Md(Sd),Td={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}},Back:{In:function(t){var e=1.70158;return t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)}},Bounce:{In:function(t){return 1-Td.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*Td.Bounce.In(2*t):.5*Td.Bounce.Out(2*t-1)+.5}}},Ad=\"undefined\"==typeof self&&\"undefined\"!=typeof process&&process.hrtime?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:\"undefined\"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},Ld=function(){function t(){this._tweens={},this._tweensAddedDuringUpdate={}}return t.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map((function(e){return t._tweens[e]}))},t.prototype.removeAll=function(){this._tweens={}},t.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},t.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},t.prototype.update=function(t,e){void 0===t&&(t=Ad()),void 0===e&&(e=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<n.length;r++){var i=this._tweens[n[r]],o=!e;i&&!1===i.update(t,o)&&!e&&delete this._tweens[n[r]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},t}(),Cd={Linear:function(t,e){var n=t.length-1,r=n*e,i=Math.floor(r),o=Cd.Utils.Linear;return e<0?o(t[0],t[1],r):e>1?o(t[n],t[n-1],n-r):o(t[i],t[i+1>n?n:i+1],r-i)},Bezier:function(t,e){for(var n=0,r=t.length-1,i=Math.pow,o=Cd.Utils.Bernstein,a=0;a<=r;a++)n+=i(1-e,r-a)*i(e,a)*t[a]*o(r,a);return n},CatmullRom:function(t,e){var n=t.length-1,r=n*e,i=Math.floor(r),o=Cd.Utils.CatmullRom;return t[0]===t[n]?(e<0&&(i=Math.floor(r=n*(1+e))),o(t[(i-1+n)%n],t[i],t[(i+1)%n],t[(i+2)%n],r-i)):e<0?t[0]-(o(t[0],t[0],t[1],t[1],-r)-t[0]):e>1?t[n]-(o(t[n],t[n],t[n-1],t[n-1],r-n)-t[n]):o(t[i?i-1:0],t[i],t[n<i+1?n:i+1],t[n<i+2?n:i+2],r-i)},Utils:{Linear:function(t,e,n){return(e-t)*n+t},Bernstein:function(t,e){var n=Cd.Utils.Factorial;return n(t)/n(e)/n(t-e)},Factorial:function(){var t=[1];return function(e){var n=1;if(t[e])return t[e];for(var r=e;r>1;r--)n*=r;return t[e]=n,n}}(),CatmullRom:function(t,e,n,r,i){var o=.5*(n-t),a=.5*(r-e),s=i*i;return(2*e-2*n+o+a)*(i*s)+(-3*e+3*n-2*o-a)*s+o*i+e}}},Pd=function(){function t(){}return t.nextId=function(){return t._nextId++},t._nextId=0,t}(),Rd=new Ld,Dd=function(){function t(t,e){void 0===e&&(e=Rd),this._object=t,this._group=e,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Td.Linear.None,this._interpolationFunction=Cd.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=Pd.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return t.prototype.getId=function(){return this._id},t.prototype.isPlaying=function(){return this._isPlaying},t.prototype.isPaused=function(){return this._isPaused},t.prototype.to=function(t,e){return this._valuesEnd=Object.create(t),void 0!==e&&(this._duration=e),this},t.prototype.duration=function(t){return this._duration=t,this},t.prototype.start=function(t){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var e in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(e),this._valuesStart[e]=this._valuesStartRepeat[e];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==t?\"string\"==typeof t?Ad()+parseFloat(t):t:Ad(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},t.prototype._setupProperties=function(t,e,n,r){for(var i in n){var o=t[i],a=Array.isArray(o),s=a?\"array\":typeof o,l=!a&&Array.isArray(n[i]);if(\"undefined\"!==s&&\"function\"!==s){if(l){var c=n[i];if(0===c.length)continue;c=c.map(this._handleRelativeValue.bind(this,o)),n[i]=[o].concat(c)}if(\"object\"!==s&&!a||!o||l)void 0===e[i]&&(e[i]=o),a||(e[i]*=1),r[i]=l?n[i].slice().reverse():e[i]||0;else{for(var h in e[i]=a?[]:{},o)e[i][h]=o[h];r[i]=a?[]:{},this._setupProperties(o,e[i],n[i],r[i])}}}},t.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},t.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},t.prototype.pause=function(t){return void 0===t&&(t=Ad()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this)),this},t.prototype.resume=function(t){return void 0===t&&(t=Ad()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},t.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},t.prototype.group=function(t){return this._group=t,this},t.prototype.delay=function(t){return this._delayTime=t,this},t.prototype.repeat=function(t){return this._initialRepeat=t,this._repeat=t,this},t.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},t.prototype.yoyo=function(t){return this._yoyo=t,this},t.prototype.easing=function(t){return this._easingFunction=t,this},t.prototype.interpolation=function(t){return this._interpolationFunction=t,this},t.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},t.prototype.onStart=function(t){return this._onStartCallback=t,this},t.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},t.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},t.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},t.prototype.onStop=function(t){return this._onStopCallback=t,this},t.prototype.update=function(t,e){if(void 0===t&&(t=Ad()),void 0===e&&(e=!0),this._isPaused)return!0;var n,r,i=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>i)return!1;e&&this.start(t)}if(this._goToEnd=!1,t<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),r=(t-this._startTime)/this._duration,r=0===this._duration||r>1?1:r;var o=this._easingFunction(r);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,o),this._onUpdateCallback&&this._onUpdateCallback(this._object,r),1===r){if(this._repeat>0){for(n in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||\"string\"!=typeof this._valuesEnd[n]||(this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(this._valuesEnd[n])),this._yoyo&&this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,s=this._chainedTweens.length;a<s;a++)this._chainedTweens[a].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},t.prototype._updateProperties=function(t,e,n,r){for(var i in n)if(void 0!==e[i]){var o=e[i]||0,a=n[i],s=Array.isArray(t[i]),l=Array.isArray(a);!s&&l?t[i]=this._interpolationFunction(a,r):\"object\"==typeof a&&a?this._updateProperties(t[i],o,a,r):\"number\"==typeof(a=this._handleRelativeValue(o,a))&&(t[i]=o+(a-o)*r)}},t.prototype._handleRelativeValue=function(t,e){return\"string\"!=typeof e?e:\"+\"===e.charAt(0)||\"-\"===e.charAt(0)?t+parseFloat(e):parseFloat(e)},t.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];this._valuesStartRepeat[t]=\"string\"==typeof n?this._valuesStartRepeat[t]+parseFloat(n):this._valuesEnd[t],this._valuesEnd[t]=e},t}(),Id=Pd.nextId,Nd=Rd,Od=Nd.getAll.bind(Nd),kd=Nd.removeAll.bind(Nd),zd=Nd.add.bind(Nd),Bd=Nd.remove.bind(Nd),Fd=Nd.update.bind(Nd),Ud={Easing:Td,Group:Ld,Interpolation:Cd,now:Ad,Sequence:Pd,nextId:Id,Tween:Dd,VERSION:\"18.6.4\",getAll:Od,removeAll:kd,add:zd,remove:Bd,update:Fd};function Hd(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Vd(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||jd(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Gd(t){return function(t){if(Array.isArray(t))return Wd(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||jd(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function jd(t,e){if(t){if(\"string\"==typeof t)return Wd(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Wd(t,e):void 0}}function Wd(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(\".scene-nav-info {\\n  bottom: 5px;\\n  width: 100%;\\n  text-align: center;\\n  color: slategrey;\\n  opacity: 0.7;\\n  font-size: 10px;\\n}\\n\\n.scene-tooltip {\\n  color: lavender;\\n  font-size: 15px;\\n}\\n\\n.scene-nav-info, .scene-tooltip {\\n  position: absolute;\\n  font-family: sans-serif;\\n  pointer-events: none;\\n}\\n\\n.scene-container canvas:focus {\\n  outline: none;\\n}\");var qd=window.THREE?window.THREE:{WebGLRenderer:Vi,Scene:Gi,PerspectiveCamera:gn,Raycaster:Gs,TextureLoader:os,Vector2:Y,Vector3:ot,Box3:lt,Color:Ae,Mesh:ln,SphereGeometry:Ia,MeshBasicMaterial:Le,BackSide:1,EventDispatcher:F,MOUSE:o,Quaternion:it,Spherical:qs,Clock:Ls},Xd=wh({props:{width:{default:window.innerWidth,onChange:function(t,e,n){isNaN(t)&&(e.width=n)}},height:{default:window.innerHeight,onChange:function(t,e,n){isNaN(t)&&(e.height=n)}},backgroundColor:{default:\"#000011\"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},enablePointerInteraction:{default:!0,onChange:function(t,e){e.hoverObj=null,e.toolTipElem&&(e.toolTipElem.innerHTML=\"\")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(t){if(t.initialised){if(t.controls.update&&t.controls.update(t.clock.getDelta()),t.postProcessingComposer?t.postProcessingComposer.render():t.renderer.render(t.scene,t.camera),t.extraRenderers.forEach((function(e){return e.render(t.scene,t.camera)})),t.enablePointerInteraction){var e=null;if(t.hoverDuringDrag||!t.isPointerDragging){var n=this.intersectingObjects(t.pointerPos.x,t.pointerPos.y).filter((function(e){return t.hoverFilter(e.object)})).sort((function(e,n){return t.hoverOrderComparator(e.object,n.object)})),r=n.length?n[0]:null;e=r?r.object:null,t.intersectionPoint=r?r.point:null}e!==t.hoverObj&&(t.onHover(e,t.hoverObj),t.toolTipElem.innerHTML=e&&Mh(t.tooltipContent)(e)||\"\",t.hoverObj=e)}Ud.update()}return this},getPointerPos:function(t){var e=t.pointerPos;return{x:e.x,y:e.y}},cameraPosition:function(t,e,n,r){var i=t.camera;if(e&&t.initialised){var o=e,a=n||{x:0,y:0,z:0};if(r){var s=Object.assign({},i.position),l=u();new Ud.Tween(s).to(o,r).easing(Ud.Easing.Quadratic.Out).onUpdate(c).start(),new Ud.Tween(l).to(a,r/3).easing(Ud.Easing.Quadratic.Out).onUpdate(h).start()}else c(o),h(a);return this}return Object.assign({},i.position,{lookAt:u()});function c(t){var e=t.x,n=t.y,r=t.z;void 0!==e&&(i.position.x=e),void 0!==n&&(i.position.y=n),void 0!==r&&(i.position.z=r)}function h(e){t.controls.target=new qd.Vector3(e.x,e.y,e.z)}function u(){return Object.assign(new qd.Vector3(0,0,-1e3).applyQuaternion(i.quaternion).add(i.position))}},zoomToFit:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length,i=new Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.fitToBbox(this.getBbox.apply(this,i),e,n)},fitToBbox:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,i=t.camera;if(e){var o=new qd.Vector3(0,0,0),a=2*Math.max.apply(Math,Gd(Object.entries(e).map((function(t){var e=Vd(t,2),n=e[0],r=e[1];return Math.max.apply(Math,Gd(r.map((function(t){return Math.abs(o[n]-t)}))))})))),s=(1-2*r/t.height)*i.fov,l=a/Math.atan(s*Math.PI/180),c=l/i.aspect,h=Math.max(l,c);if(h>0){var u=o.clone().sub(i.position).normalize().multiplyScalar(-h);this.cameraPosition(u,o,n)}}return this},getBbox:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},n=new qd.Box3(new qd.Vector3(0,0,0),new qd.Vector3(0,0,0)),r=t.objects.filter(e);return r.length?(r.forEach((function(t){return n.expandByObject(t)})),Object.assign.apply(Object,Gd([\"x\",\"y\",\"z\"].map((function(t){return Hd({},t,[n.min[t],n.max[t]])}))))):null},getScreenCoords:function(t,e,n,r){var i=new qd.Vector3(e,n,r);return i.project(this.camera()),{x:(i.x+1)*t.width/2,y:-(i.y-1)*t.height/2}},getSceneCoords:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=new qd.Vector2(e/t.width*2-1,-n/t.height*2+1),o=new qd.Raycaster;return o.setFromCamera(i,t.camera),Object.assign({},o.ray.at(r,new qd.Vector3))},intersectingObjects:function(t,e,n){var r=new qd.Vector2(e/t.width*2-1,-n/t.height*2+1),i=new qd.Raycaster;return i.params.Line.threshold=t.lineHoverPrecision,i.setFromCamera(r,t.camera),i.intersectObjects(t.objects,!0)},renderer:function(t){return t.renderer},scene:function(t){return t.scene},camera:function(t){return t.camera},postProcessingComposer:function(t){return t.postProcessingComposer},controls:function(t){return t.controls},tbControls:function(t){return t.controls}},stateInit:function(){return{scene:new qd.Scene,camera:new qd.PerspectiveCamera,clock:new qd.Clock}},init:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.controlType,i=void 0===r?\"trackball\":r,o=n.rendererConfig,a=void 0===o?{}:o,s=n.extraRenderers,l=void 0===s?[]:s,c=n.waitForLoadComplete,h=void 0===c||c;t.innerHTML=\"\",t.appendChild(e.container=document.createElement(\"div\")),e.container.className=\"scene-container\",e.container.style.position=\"relative\",e.container.appendChild(e.navInfo=document.createElement(\"div\")),e.navInfo.className=\"scene-nav-info\",e.navInfo.textContent={orbit:\"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan\",trackball:\"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan\",fly:\"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw\"}[i]||\"\",e.navInfo.style.display=e.showNavInfo?null:\"none\",e.toolTipElem=document.createElement(\"div\"),e.toolTipElem.classList.add(\"scene-tooltip\"),e.container.appendChild(e.toolTipElem),e.pointerPos=new qd.Vector2,e.pointerPos.x=-2,e.pointerPos.y=-2,[\"pointermove\",\"pointerdown\"].forEach((function(t){return e.container.addEventListener(t,(function(n){if(\"pointerdown\"===t&&(e.isPointerPressed=!0),!e.isPointerDragging&&\"pointermove\"===n.type&&(n.pressure>0||e.isPointerPressed)&&(\"touch\"!==n.pointerType||void 0===n.movementX||[n.movementX,n.movementY].some((function(t){return Math.abs(t)>1})))&&(e.isPointerDragging=!0),e.enablePointerInteraction){var r=(i=e.container,o=i.getBoundingClientRect(),a=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:o.top+s,left:o.left+a});e.pointerPos.x=n.pageX-r.left,e.pointerPos.y=n.pageY-r.top,e.toolTipElem.style.top=\"\".concat(e.pointerPos.y,\"px\"),e.toolTipElem.style.left=\"\".concat(e.pointerPos.x,\"px\"),e.toolTipElem.style.transform=\"translate(-\".concat(e.pointerPos.x/e.width*100,\"%, 21px)\")}var i,o,a,s}),{passive:!0})})),e.container.addEventListener(\"pointerup\",(function(t){e.isPointerPressed=!1,e.isPointerDragging&&(e.isPointerDragging=!1,!e.clickAfterDrag)||requestAnimationFrame((function(){0===t.button&&e.onClick(e.hoverObj||null,t,e.intersectionPoint),2===t.button&&e.onRightClick&&e.onRightClick(e.hoverObj||null,t,e.intersectionPoint)}))}),{passive:!0,capture:!0}),e.container.addEventListener(\"contextmenu\",(function(t){e.onRightClick&&t.preventDefault()})),e.renderer=new qd.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},a)),e.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),e.container.appendChild(e.renderer.domElement),e.extraRenderers=l,e.extraRenderers.forEach((function(t){t.domElement.style.position=\"absolute\",t.domElement.style.top=\"0px\",t.domElement.style.pointerEvents=\"none\",e.container.appendChild(t.domElement)})),e.postProcessingComposer=new Xu(e.renderer),e.postProcessingComposer.addPass(new Zu(e.scene,e.camera)),e.controls=new{trackball:Ru,orbit:Ou,fly:zu}[i](e.camera,e.renderer.domElement),\"fly\"===i&&(e.controls.movementSpeed=300,e.controls.rollSpeed=Math.PI/6,e.controls.dragToLook=!0),\"trackball\"!==i&&\"orbit\"!==i||(e.controls.minDistance=.1,e.controls.maxDistance=e.skyRadius,e.controls.addEventListener(\"start\",(function(){e.controlsEngaged=!0})),e.controls.addEventListener(\"change\",(function(){e.controlsEngaged&&(e.controlsDragging=!0)})),e.controls.addEventListener(\"end\",(function(){e.controlsEngaged=!1,e.controlsDragging=!1}))),[e.renderer,e.postProcessingComposer].concat(Gd(e.extraRenderers)).forEach((function(t){return t.setSize(e.width,e.height)})),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix(),e.camera.position.z=1e3,e.scene.add(e.skysphere=new qd.Mesh),e.skysphere.visible=!1,e.loadComplete=e.scene.visible=!h,window.scene=e.scene},update:function(t,e){if(t.width&&t.height&&(e.hasOwnProperty(\"width\")||e.hasOwnProperty(\"height\"))&&(t.container.style.width=t.width,t.container.style.height=t.height,[t.renderer,t.postProcessingComposer].concat(Gd(t.extraRenderers)).forEach((function(e){return e.setSize(t.width,t.height)})),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix()),e.hasOwnProperty(\"skyRadius\")&&t.skyRadius&&(t.controls.hasOwnProperty(\"maxDistance\")&&e.skyRadius&&(t.controls.maxDistance=t.skyRadius),t.camera.far=2.5*t.skyRadius,t.camera.updateProjectionMatrix(),t.skysphere.geometry=new qd.SphereGeometry(t.skyRadius)),e.hasOwnProperty(\"backgroundColor\")){var n=yd(t.backgroundColor).alpha;void 0===n&&(n=1),t.renderer.setClearColor(new qd.Color(Ed(1,t.backgroundColor)),n)}function r(){t.loadComplete=t.scene.visible=!0}e.hasOwnProperty(\"backgroundImageUrl\")&&(t.backgroundImageUrl?(new qd.TextureLoader).load(t.backgroundImageUrl,(function(e){t.skysphere.material=new qd.MeshBasicMaterial({map:e,side:qd.BackSide}),t.skysphere.visible=!0,t.onBackgroundImageLoaded&&setTimeout(t.onBackgroundImageLoaded),!t.loadComplete&&r()})):(t.skysphere.visible=!1,t.skysphere.material.map=null,!t.loadComplete&&r())),e.hasOwnProperty(\"showNavInfo\")&&(t.navInfo.style.display=t.showNavInfo?null:\"none\"),e.hasOwnProperty(\"objects\")&&((e.objects||[]).forEach((function(e){return t.scene.remove(e)})),t.objects.forEach((function(e){return t.scene.add(e)})))}});function Yd(t,e){var n=new e;return{linkProp:function(e){return{default:n[e](),onChange:function(n,r){r[t][e](n)},triggerUpdate:!1}},linkMethod:function(e){return function(n){for(var r=n[t],i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];var s=r[e].apply(r,o);return s===r?this:s}}}}var Zd=window.THREE?window.THREE:{AmbientLight:ws,DirectionalLight:bs,Vector3:ot},Jd=Yd(\"forceGraph\",Au),$d=Object.assign.apply(Object,r([\"jsonUrl\",\"graphData\",\"numDimensions\",\"dagMode\",\"dagLevelDistance\",\"dagNodeFilter\",\"onDagError\",\"nodeRelSize\",\"nodeId\",\"nodeVal\",\"nodeResolution\",\"nodeColor\",\"nodeAutoColorBy\",\"nodeOpacity\",\"nodeVisibility\",\"nodeThreeObject\",\"nodeThreeObjectExtend\",\"linkSource\",\"linkTarget\",\"linkVisibility\",\"linkColor\",\"linkAutoColorBy\",\"linkOpacity\",\"linkWidth\",\"linkResolution\",\"linkCurvature\",\"linkCurveRotation\",\"linkMaterial\",\"linkThreeObject\",\"linkThreeObjectExtend\",\"linkPositionUpdate\",\"linkDirectionalArrowLength\",\"linkDirectionalArrowColor\",\"linkDirectionalArrowRelPos\",\"linkDirectionalArrowResolution\",\"linkDirectionalParticles\",\"linkDirectionalParticleSpeed\",\"linkDirectionalParticleWidth\",\"linkDirectionalParticleColor\",\"linkDirectionalParticleResolution\",\"forceEngine\",\"d3AlphaDecay\",\"d3VelocityDecay\",\"d3AlphaMin\",\"ngraphPhysics\",\"warmupTicks\",\"cooldownTicks\",\"cooldownTime\",\"onEngineTick\",\"onEngineStop\"].map((function(t){return n({},t,Jd.linkProp(t))})))),Qd=Object.assign.apply(Object,r([\"refresh\",\"getGraphBbox\",\"d3Force\",\"d3ReheatSimulation\",\"emitParticle\"].map((function(t){return n({},t,Jd.linkMethod(t))})))),Kd=Yd(\"renderObjs\",Xd),tp=Object.assign.apply(Object,r([\"width\",\"height\",\"backgroundColor\",\"showNavInfo\",\"enablePointerInteraction\"].map((function(t){return n({},t,Kd.linkProp(t))})))),ep=Object.assign.apply(Object,r([\"cameraPosition\",\"postProcessingComposer\"].map((function(t){return n({},t,Kd.linkMethod(t))}))).concat([{graph2ScreenCoords:Kd.linkMethod(\"getScreenCoords\"),screen2GraphCoords:Kd.linkMethod(\"getSceneCoords\")}]));function np(t){for(var e=t;e&&!e.hasOwnProperty(\"__graphObjType\");)e=e.parent;return e}return wh({props:e(e({nodeLabel:{default:\"name\",triggerUpdate:!1},linkLabel:{default:\"name\",triggerUpdate:!1},linkHoverPrecision:{default:1,onChange:function(t,e){return e.renderObjs.lineHoverPrecision(t)},triggerUpdate:!1},enableNavigationControls:{default:!0,onChange:function(t,e){var n=e.renderObjs.controls();n&&(n.enabled=t)},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1}},$d),tp),methods:e(e({zoomToFit:function(t,e,n){for(var r,i=arguments.length,o=new Array(i>3?i-3:0),a=3;a<i;a++)o[a-3]=arguments[a];return t.renderObjs.fitToBbox((r=t.forceGraph).getGraphBbox.apply(r,o),e,n),this},pauseAnimation:function(t){return null!==t.animationFrameRequestId&&(cancelAnimationFrame(t.animationFrameRequestId),t.animationFrameRequestId=null),this},resumeAnimation:function(t){return null===t.animationFrameRequestId&&this._animationCycle(),this},_animationCycle:function(t){t.enablePointerInteraction&&(this.renderer().domElement.style.cursor=null),t.forceGraph.tickFrame(),t.renderObjs.tick(),t.animationFrameRequestId=requestAnimationFrame(this._animationCycle)},scene:function(t){return t.renderObjs.scene()},camera:function(t){return t.renderObjs.camera()},renderer:function(t){return t.renderObjs.renderer()},controls:function(t){return t.renderObjs.controls()},tbControls:function(t){return t.renderObjs.tbControls()},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Qd),ep),stateInit:function(t){var e=t.controlType,n=t.rendererConfig,r=t.extraRenderers;return{forceGraph:new Au,renderObjs:Xd({controlType:e,rendererConfig:n,extraRenderers:r})}},init:function(t,e){t.innerHTML=\"\",t.appendChild(e.container=document.createElement(\"div\")),e.container.style.position=\"relative\";var n=document.createElement(\"div\");e.container.appendChild(n),e.renderObjs(n);var r,i=e.renderObjs.camera(),o=e.renderObjs.renderer(),a=e.renderObjs.controls();a.enabled=!!e.enableNavigationControls,e.lastSetCameraZ=i.position.z,e.container.appendChild(r=document.createElement(\"div\")),r.className=\"graph-info-msg\",r.textContent=\"\",e.forceGraph.onLoading((function(){r.textContent=\"Loading...\"})).onFinishLoading((function(){r.textContent=\"\"})).onUpdate((function(){e.graphData=e.forceGraph.graphData(),0===i.position.x&&0===i.position.y&&i.position.z===e.lastSetCameraZ&&e.graphData.nodes.length&&(i.lookAt(e.forceGraph.position),e.lastSetCameraZ=i.position.z=170*Math.cbrt(e.graphData.nodes.length))})).onFinishUpdate((function(){if(e._dragControls){var t=e.graphData.nodes.find((function(t){return t.__initialFixedPos&&!t.__disposeControlsAfterDrag}));t?t.__disposeControlsAfterDrag=!0:e._dragControls.dispose(),e._dragControls=void 0}if(e.enableNodeDrag&&e.enablePointerInteraction&&\"d3\"===e.forceEngine){var n=e._dragControls=new al(e.graphData.nodes.map((function(t){return t.__threeObj})).filter((function(t){return t})),i,o.domElement);n.addEventListener(\"dragstart\",(function(t){a.enabled=!1,t.object.__initialPos=t.object.position.clone(),t.object.__prevPos=t.object.position.clone();var e=np(t.object).__data;!e.__initialFixedPos&&(e.__initialFixedPos={fx:e.fx,fy:e.fy,fz:e.fz}),!e.__initialPos&&(e.__initialPos={x:e.x,y:e.y,z:e.z}),[\"x\",\"y\",\"z\"].forEach((function(t){return e[\"f\".concat(t)]=e[t]})),o.domElement.classList.add(\"grabbable\")})),n.addEventListener(\"drag\",(function(t){var n=np(t.object);if(!t.object.hasOwnProperty(\"__graphObjType\")){var r=t.object.__initialPos,i=t.object.__prevPos,o=t.object.position;n.position.add(o.clone().sub(i)),i.copy(o),o.copy(r)}var a=n.__data,s=n.position,l={x:s.x-a.x,y:s.y-a.y,z:s.z-a.z};[\"x\",\"y\",\"z\"].forEach((function(t){return a[\"f\".concat(t)]=a[t]=s[t]})),e.forceGraph.d3AlphaTarget(.3).resetCountdown(),a.__dragged=!0,e.onNodeDrag(a,l)})),n.addEventListener(\"dragend\",(function(t){delete t.object.__initialPos,delete t.object.__prevPos;var r=np(t.object).__data;r.__disposeControlsAfterDrag&&(n.dispose(),delete r.__disposeControlsAfterDrag);var i=r.__initialFixedPos,s=r.__initialPos,l={x:s.x-r.x,y:s.y-r.y,z:s.z-r.z};i&&([\"x\",\"y\",\"z\"].forEach((function(t){var e=\"f\".concat(t);void 0===i[e]&&delete r[e]})),delete r.__initialFixedPos,delete r.__initialPos,r.__dragged&&(delete r.__dragged,e.onNodeDragEnd(r,l))),e.forceGraph.d3AlphaTarget(0).resetCountdown(),e.enableNavigationControls&&(a.enabled=!0,a.domElement&&a.domElement.ownerDocument&&a.domElement.ownerDocument.dispatchEvent(new PointerEvent(\"pointerup\",{pointerType:\"touch\"}))),o.domElement.classList.remove(\"grabbable\")}))}})),e.renderObjs.objects([new Zd.AmbientLight(12303291),new Zd.DirectionalLight(16777215,.6),e.forceGraph]).hoverOrderComparator((function(t,e){var n=np(t);if(!n)return 1;var r=np(e);if(!r)return-1;var i=function(t){return\"node\"===t.__graphObjType};return i(r)-i(n)})).tooltipContent((function(t){var n=np(t);return n&&Mh(e[\"\".concat(n.__graphObjType,\"Label\")])(n.__data)||\"\"})).hoverDuringDrag(!1).onHover((function(t){var n=np(t);if(n!==e.hoverObj){var r=e.hoverObj?e.hoverObj.__graphObjType:null,i=e.hoverObj?e.hoverObj.__data:null,a=n?n.__graphObjType:null,s=n?n.__data:null;if(r&&r!==a){var l=e[\"on\".concat(\"node\"===r?\"Node\":\"Link\",\"Hover\")];l&&l(null,i)}if(a){var c=e[\"on\".concat(\"node\"===a?\"Node\":\"Link\",\"Hover\")];c&&c(s,r===a?i:null)}o.domElement.classList[n&&e[\"on\".concat(\"node\"===a?\"Node\":\"Link\",\"Click\")]||!n&&e.onBackgroundClick?\"add\":\"remove\"](\"clickable\"),e.hoverObj=n}})).clickAfterDrag(!1).onClick((function(t,n){var r=np(t);if(r){var i=e[\"on\".concat(\"node\"===r.__graphObjType?\"Node\":\"Link\",\"Click\")];i&&i(r.__data,n)}else e.onBackgroundClick&&e.onBackgroundClick(n)})).onRightClick((function(t,n){var r=np(t);if(r){var i=e[\"on\".concat(\"node\"===r.__graphObjType?\"Node\":\"Link\",\"RightClick\")];i&&i(r.__data,n)}else e.onBackgroundRightClick&&e.onBackgroundRightClick(n)})),this._animationCycle()}})}\n",
       "// ));\n",
       "\n",
       "  );\n",
       "}\n",
       "\n",
       "\n",
       "    require([\"gravis-3d-force-graph\", \"gravis-three\"], function(ForceGraph3D, THREE){\n",
       "      // Strict mode: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Strict_mode\n",
       "      \"use strict\";\n",
       "\n",
       "      const state = {\n",
       "        threeObjects:{\n",
       "          // Manual tracking and release of resources used by Three.js\n",
       "          // https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects\n",
       "          geometries: {},\n",
       "          materials: {},\n",
       "          textures: {},\n",
       "          renderers: {},\n",
       "          renderTargets: {},\n",
       "          trackGeometry(id, geometry){\n",
       "            if(typeof(this.geometries[id]) !== \"undefined\"){\n",
       "              this.removeGeometry(id);\n",
       "            }\n",
       "            this.geometries[id] = geometry;\n",
       "          },\n",
       "          removeGeometry(id){\n",
       "            this.geometries[id].dispose();\n",
       "            delete this.geometries[id];\n",
       "          },\n",
       "          trackMaterial(id, material){\n",
       "            if(typeof(this.materials[id]) !== \"undefined\"){\n",
       "              this.removeMaterial(id);\n",
       "            }\n",
       "            this.materials[id] = material;\n",
       "          },\n",
       "          removeMaterial(id){\n",
       "            this.materials[id].dispose();\n",
       "            delete this.materials[id];\n",
       "          },\n",
       "          trackTexture(id, texture){\n",
       "            if(typeof(this.textures[id]) !== \"undefined\"){\n",
       "              this.removeTexture(id);\n",
       "            }\n",
       "            this.textures[id] = texture;\n",
       "          },\n",
       "          removeTexture(id){\n",
       "            this.textures[id].dispose();\n",
       "            delete this.textures[id];\n",
       "          },\n",
       "          trackRenderer(id, renderer){\n",
       "            if(typeof(this.renderers[id]) !== \"undefined\"){\n",
       "              this.removeRenderer(id);\n",
       "            }\n",
       "            this.renderers[id] = renderer;\n",
       "          },\n",
       "          removeRenderer(id){\n",
       "            this.renderers[id].dispose();\n",
       "            delete this.renderers[id];\n",
       "          },\n",
       "          trackRenderTarget(id, renderTarget){\n",
       "            if(typeof(this.renderTargets[id]) !== \"undefined\"){\n",
       "              this.removeRenderTarget(id);\n",
       "            }\n",
       "            this.renderTargets[id] = renderTarget;\n",
       "          },\n",
       "          removeRenderTarget(id){\n",
       "            if(this.renderTargets[id] !== null){\n",
       "              this.renderTargets[id].dispose();\n",
       "            }\n",
       "            delete this.renderTargets[id];\n",
       "          },\n",
       "          disposeAll(){\n",
       "            const objects = [this.geometries, this.materials, this.textures, this.renderers, this.renderTargets];\n",
       "            for(let i=0; i<objects.length; i++){\n",
       "              const obj = objects[i];\n",
       "              for(let key in obj){\n",
       "                if(obj.hasOwnProperty(key)){\n",
       "                  if(obj[key] !== null){\n",
       "                    obj[key].dispose();\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "          },\n",
       "        },\n",
       "        manager:{\n",
       "          // Data generation process: 1) Fetch state.rawData, 2) derive state.parsedData, 3) derive state.shownData\n",
       "\n",
       "          // 1) Fetch state.rawData\n",
       "          fetchRawDataFromTemplating(){\n",
       "            state.rawData = [{\"directed\": false, \"metadata\": {\"node_color\": \"black\", \"node_opacity\": 1, \"node_size\": 10, \"node_shape\": \"circle\", \"node_border_color\": \"black\", \"node_border_size\": 1, \"node_label_color\": \"black\", \"node_label_size\": 10, \"edge_color\": \"#ccc\", \"edge_opacity\": 0.8, \"edge_size\": 2, \"edge_shape\": \"circle\", \"edge_border_color\": \"#999\", \"edge_border_size\": 1, \"edge_label_color\": \"black\", \"edge_label_size\": 10, \"arrow_size\": 4, \"arrow_color\": \"#999\"}, \"nodes\": {\"hQf90cj929FuImXMCvoPAA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 25070.0, \"color\": \"#1807f2\", \"hover\": \"25070.0\"}}, \"PW5eXomrVVdens7S5nsYAA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 172082.0, \"color\": \"#b9e04a\", \"hover\": \"172082.0\"}}, \"IG8eHOg/b+unaewr10IpAA\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 182846.0, \"color\": \"#7cec6a\", \"hover\": \"182846.0\"}}, \"sT+BTCOHCbs7CoM2rk4zAA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 64753.0, \"color\": \"#eba59b\", \"hover\": \"64753.0\"}}, \"fI0SQXFag/uwL3gZbcAzAA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 136561.0, \"color\": \"#b70fc0\", \"hover\": \"136561.0\"}}, \"TS1jpzHgr2OGkdbO2yRZAA\": {\"metadata\": {\"community_id\": 6, \"customer_id\": 52066.0, \"color\": \"#e2c37b\", \"hover\": \"52066.0\"}}, \"cWeqFfe/2MVwGRvaRnVhAA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 98365.0, \"color\": \"#f6a0ef\", \"hover\": \"98365.0\"}}, \"zXQksXsT2mt3BhPZ6cWFAA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 76208.0, \"color\": \"#99b5fc\", \"hover\": \"76208.0\"}}, \"Rb3i7BmlE+LOhKhqsvyMAA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 66981.0, \"color\": \"#eba59b\", \"hover\": \"66981.0\"}}, \"ywDGLEp7FJEDUqpecKOSAA\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 139979.0, \"color\": \"#25a9a6\", \"hover\": \"139979.0\"}}, \"fER/DxHaRHDkeDgOkISTAA\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 43759.0, \"color\": \"#31f5c4\", \"hover\": \"43759.0\"}}, \"LYvZLRcYPyx6i9EsF+OdAA\": {\"metadata\": {\"community_id\": 11, \"customer_id\": 101966.0, \"color\": \"#3c48dd\", \"hover\": \"101966.0\"}}, \"d6I/erSUp/qMli3JCSWeAA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 76289.0, \"color\": \"#62fab8\", \"hover\": \"76289.0\"}}, \"U4i+J3Mg/18Sw6mvXmO4AA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 193482.0, \"color\": \"#c12abd\", \"hover\": \"193482.0\"}}, \"Ynri23BTcQZf7q1ZB3nQAA\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 164728.0, \"color\": \"#32ee1f\", \"hover\": \"164728.0\"}}, \"58W4qaSq64j+ulfZWQ/wAA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 113765.0, \"color\": \"#9ee08f\", \"hover\": \"113765.0\"}}, \"rH6RbiXkJiiUuAAEjKjyAA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 72958.0, \"color\": \"#c12abd\", \"hover\": \"72958.0\"}}, \"ddWC8vEq1erqKkMFxMX2AA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 34601.0, \"color\": \"#31ab2f\", \"hover\": \"34601.0\"}}, \"fJzjXhx6RpVTmbayvJb8AA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 185090.0, \"color\": \"#6bdba1\", \"hover\": \"185090.0\"}}, \"wRTW/+oB5yTa8TE0+m0hAQ\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 113982.0, \"color\": \"#2f82a1\", \"hover\": \"113982.0\"}}, \"6GKfoX6YG4cXZ/tmSek4AQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 165186.0, \"color\": \"#e436ba\", \"hover\": \"165186.0\"}}, \"dFHxkVjZ2ik0MnOo7Vg/AQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 16434.0, \"color\": \"#62fab8\", \"hover\": \"16434.0\"}}, \"R4IB/HUVgvrUvfMC8GVKAQ\": {\"metadata\": {\"community_id\": 20, \"customer_id\": 186992.0, \"color\": \"#11e6bf\", \"hover\": \"186992.0\"}}, \"NDxcCyBxZoUiLjOrzqtlAQ\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 132233.0, \"color\": \"#671efa\", \"hover\": \"132233.0\"}}, \"gDmaiqqCwKaXYRbCoJ12AQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 154214.0, \"color\": \"#b3df71\", \"hover\": \"154214.0\"}}, \"xFk+R95VR+VNMHohSoiPAQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 142684.0, \"color\": \"#99b5fc\", \"hover\": \"142684.0\"}}, \"UO0lgGjJDkOz6FUtncKYAQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 143204.0, \"color\": \"#99ef99\", \"hover\": \"143204.0\"}}, \"jqJFx9HvH9iThG9UFQWpAQ\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 179048.0, \"color\": \"#31f5c4\", \"hover\": \"179048.0\"}}, \"V2i35ONWlJBWq4+LQVfIAQ\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 137942.0, \"color\": \"#14ace5\", \"hover\": \"137942.0\"}}, \"jOLAPViUhhy/+Xp6gcrlAQ\": {\"metadata\": {\"community_id\": 25, \"customer_id\": 176582.0, \"color\": \"#26f97a\", \"hover\": \"176582.0\"}}, \"9lWRTdSse5DK1FFLjbbtAQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 198072.0, \"color\": \"#5dedcd\", \"hover\": \"198072.0\"}}, \"UFyIf35pkvmN2BDkQ7IHAg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 110071.0, \"color\": \"#32bc93\", \"hover\": \"110071.0\"}}, \"JHFyiY2GWrFLW2LkHfM0Ag\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 176399.0, \"color\": \"#c1351e\", \"hover\": \"176399.0\"}}, \"dKV+F/lGc338Se79BNBIAg\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 37863.0, \"color\": \"#9cdc65\", \"hover\": \"37863.0\"}}, \"brVF4DZo0i3+dHo+7cdWAg\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 179570.0, \"color\": \"#fe58fe\", \"hover\": \"179570.0\"}}, \"bXjJTelLYoEi73QE3iZjAg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 145419.0, \"color\": \"#b58c2b\", \"hover\": \"145419.0\"}}, \"T1K8qvsx95ZGwtuYYWhpAg\": {\"metadata\": {\"community_id\": 32, \"customer_id\": 75154.0, \"color\": \"#8c29d5\", \"hover\": \"75154.0\"}}, \"HCQfPvdV3dud4rWme5lsAg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 180640.0, \"color\": \"#b70fc0\", \"hover\": \"180640.0\"}}, \"ezqC3OZ5uMF5Au1ZBLhsAg\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 121856.0, \"color\": \"#8cf43c\", \"hover\": \"121856.0\"}}, \"MCapP5unA/zN5ZVofbt5Ag\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 134159.0, \"color\": \"#de86e2\", \"hover\": \"134159.0\"}}, \"hPdK9N0uNzR4jeBD8D6CAg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 9320.0, \"color\": \"#c12abd\", \"hover\": \"9320.0\"}}, \"FmbUTCW+dXlCtaOElLmlAg\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 151075.0, \"color\": \"#e4a1a2\", \"hover\": \"151075.0\"}}, \"hd4qptNMNRHMho4wDPi1Ag\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 49579.0, \"color\": \"#e3e59b\", \"hover\": \"49579.0\"}}, \"4zB2+QLb9Jh+kso8ALPFAg\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 184916.0, \"color\": \"#f957df\", \"hover\": \"184916.0\"}}, \"uDUms27bopm4431AO3jRAg\": {\"metadata\": {\"community_id\": 38, \"customer_id\": 174841.0, \"color\": \"#4ff699\", \"hover\": \"174841.0\"}}, \"XLE2vu1FUTz8Xy1xR5HyAg\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 12022.0, \"color\": \"#1514df\", \"hover\": \"12022.0\"}}, \"YfiKcShGGIA2CCmhUFT4Ag\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 132445.0, \"color\": \"#a1cdf3\", \"hover\": \"132445.0\"}}, \"Ef+8eL5S/xYEisXaqlMFAw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 11681.0, \"color\": \"#f6a0ef\", \"hover\": \"11681.0\"}}, \"NebVzZMmzgiasU+OJOAHAw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 117957.0, \"color\": \"#f6a0ef\", \"hover\": \"117957.0\"}}, \"nDUnoHoN1IZz5VVEbw0IAw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 84030.0, \"color\": \"#99ef99\", \"hover\": \"84030.0\"}}, \"njfAI7X9I/LeJL0XOHAMAw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 58643.0, \"color\": \"#eda379\", \"hover\": \"58643.0\"}}, \"jmHEm9bw2NfaqUmujDITAw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 62683.0, \"color\": \"#b3df71\", \"hover\": \"62683.0\"}}, \"mEi10Jc94OYw+33Y7Y4qAw\": {\"metadata\": {\"community_id\": 42, \"customer_id\": 27360.0, \"color\": \"#fbfe87\", \"hover\": \"27360.0\"}}, \"FtdeHjc9NwGOcxZhz/NLAw\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 169110.0, \"color\": \"#e9d844\", \"hover\": \"169110.0\"}}, \"y1nmeXGPMDSmkmFge5dXAw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 41325.0, \"color\": \"#45f210\", \"hover\": \"41325.0\"}}, \"t3a3yKY/sF6TY98bOOJgAw\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 130026.0, \"color\": \"#ade5d7\", \"hover\": \"130026.0\"}}, \"oUk3kJWF+hNWYPEDJst4Aw\": {\"metadata\": {\"community_id\": 46, \"customer_id\": 125405.0, \"color\": \"#d8441b\", \"hover\": \"125405.0\"}}, \"TEAWGHOPP2tHHZOSAaaHAw\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 169726.0, \"color\": \"#fa6270\", \"hover\": \"169726.0\"}}, \"jBwZb8cDwBQ8vw1sOumcAw\": {\"metadata\": {\"community_id\": 48, \"customer_id\": 180235.0, \"color\": \"#13d732\", \"hover\": \"180235.0\"}}, \"boWAWGMTTmVsVRAQAbKjAw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 10644.0, \"color\": \"#ed1e1d\", \"hover\": \"10644.0\"}}, \"h7tJb75L/DGOrm2tEwq6Aw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 191762.0, \"color\": \"#10d82f\", \"hover\": \"191762.0\"}}, \"dN9W3T2orZCjIBwgp+G7Aw\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 61046.0, \"color\": \"#fc580c\", \"hover\": \"61046.0\"}}, \"YnPv4j68pE/W942eamy+Aw\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 58937.0, \"color\": \"#b9e04a\", \"hover\": \"58937.0\"}}, \"6eYVvoIorRNDLfLelJvIAw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 26834.0, \"color\": \"#62fab8\", \"hover\": \"26834.0\"}}, \"qJ2LGi8vR2yFU+3Ag9/TAw\": {\"metadata\": {\"community_id\": 52, \"customer_id\": 63130.0, \"color\": \"#abecde\", \"hover\": \"63130.0\"}}, \"UV7rYTl5LeyAFxZ4ueneAw\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 72000.0, \"color\": \"#7cec6a\", \"hover\": \"72000.0\"}}, \"kzsOxATPrhpBx7IBvCnnAw\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 29643.0, \"color\": \"#f29712\", \"hover\": \"29643.0\"}}, \"t6XdsRzzXBLRdH5YUv3tAw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 75906.0, \"color\": \"#31ab2f\", \"hover\": \"75906.0\"}}, \"iDe29J4gwYshIWUHA/b3Aw\": {\"metadata\": {\"community_id\": 54, \"customer_id\": 139109.0, \"color\": \"#342eaa\", \"hover\": \"139109.0\"}}, \"/5aq7+ftpNqXyXw1sIEABA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 29650.0, \"color\": \"#272dca\", \"hover\": \"29650.0\"}}, \"rjKKulZvbM7JwFTyyDQHBA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 125058.0, \"color\": \"#1807f2\", \"hover\": \"125058.0\"}}, \"UNOLeg/WMaA/VufGSfsoBA\": {\"metadata\": {\"community_id\": 56, \"customer_id\": 10327.0, \"color\": \"#da3260\", \"hover\": \"10327.0\"}}, \"q7YXEwzZduMnshd7h280BA\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 29810.0, \"color\": \"#9bc430\", \"hover\": \"29810.0\"}}, \"I30MbYfSHDEjmEPf+7g6BA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 144561.0, \"color\": \"#99b5fc\", \"hover\": \"144561.0\"}}, \"k0T6CV1d9JF83IPY9sRpBA\": {\"metadata\": {\"community_id\": 58, \"customer_id\": 70045.0, \"color\": \"#9fe5af\", \"hover\": \"70045.0\"}}, \"eASPTOXK12Ia9KKBynl7BA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 160340.0, \"color\": \"#33b9bc\", \"hover\": \"160340.0\"}}, \"G5OBgEAy078qSQ8c2NaJBA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 93393.0, \"color\": \"#c12abd\", \"hover\": \"93393.0\"}}, \"dFZgvv+KytDAWW2FZvWeBA\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 98269.0, \"color\": \"#fcce99\", \"hover\": \"98269.0\"}}, \"JL2vKI4zx00+rvHhg/a3BA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 52374.0, \"color\": \"#7eddd4\", \"hover\": \"52374.0\"}}, \"5XlsXjzT8f9ch/bu0Se+BA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 16967.0, \"color\": \"#7aefcb\", \"hover\": \"16967.0\"}}, \"weWsVGpyQWEtcjno/vjDBA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 146614.0, \"color\": \"#a372d3\", \"hover\": \"146614.0\"}}, \"EpojG5aJx6PyG41OzHPFBA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 161064.0, \"color\": \"#1bd89a\", \"hover\": \"161064.0\"}}, \"mwfUPAmhfq3WL1IJbJnmBA\": {\"metadata\": {\"community_id\": 65, \"customer_id\": 64215.0, \"color\": \"#95e17f\", \"hover\": \"64215.0\"}}, \"recx5iQEJCHdzKCUtRzqBA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 126923.0, \"color\": \"#b3df71\", \"hover\": \"126923.0\"}}, \"eq74A7rCBGlzj9kZ5ivyBA\": {\"metadata\": {\"community_id\": 66, \"customer_id\": 183239.0, \"color\": \"#f647b0\", \"hover\": \"183239.0\"}}, \"MtE30z/9i4UlBVz237X3BA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 78303.0, \"color\": \"#6bdba1\", \"hover\": \"78303.0\"}}, \"Ld5SnvpmO0dTU9pLJ9VZBQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 148505.0, \"color\": \"#5dedcd\", \"hover\": \"148505.0\"}}, \"oPA7Ek4wtSq0BMvlM9NbBQ\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 142204.0, \"color\": \"#c32841\", \"hover\": \"142204.0\"}}, \"sOtAEyswqgKga5X8XaJnBQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 166982.0, \"color\": \"#62fab8\", \"hover\": \"166982.0\"}}, \"L4sDCVFWrTHh7llFYJt7BQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 180827.0, \"color\": \"#32bc93\", \"hover\": \"180827.0\"}}, \"XlUvPcSVB19I7/xBVi18BQ\": {\"metadata\": {\"community_id\": 68, \"customer_id\": 170541.0, \"color\": \"#dc757c\", \"hover\": \"170541.0\"}}, \"6zKl13gF2OQsCzAA6MWLBQ\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 82906.0, \"color\": \"#11fc2e\", \"hover\": \"82906.0\"}}, \"x2PpcJCRk3CPPXasFMSMBQ\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 141152.0, \"color\": \"#58db13\", \"hover\": \"141152.0\"}}, \"ia0ODu/Mzcn+VMhzIPuiBQ\": {\"metadata\": {\"community_id\": 71, \"customer_id\": 28425.0, \"color\": \"#58c541\", \"hover\": \"28425.0\"}}, \"+hgJT9g6m12CXu5cr66rBQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 173072.0, \"color\": \"#1bd89a\", \"hover\": \"173072.0\"}}, \"WABQPNkh2bbg/P7bjkCsBQ\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 169019.0, \"color\": \"#8827b3\", \"hover\": \"169019.0\"}}, \"tbTvcuy9kJL2IF+hTs/KBQ\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 177374.0, \"color\": \"#80df70\", \"hover\": \"177374.0\"}}, \"m1CBBx6XxEjJqDAajmXWBQ\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 72656.0, \"color\": \"#5f53f0\", \"hover\": \"72656.0\"}}, \"oVvh1/LhQNGZkZa6/BXjBQ\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 86716.0, \"color\": \"#c67fed\", \"hover\": \"86716.0\"}}, \"qjmps9fgconKwBloySfxBQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 32644.0, \"color\": \"#c12abd\", \"hover\": \"32644.0\"}}, \"EpcQIYBeWxlYbVGbUuUNBg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 157841.0, \"color\": \"#dfd779\", \"hover\": \"157841.0\"}}, \"krbO1Orz4+7uOfN3/U0VBg\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 34447.0, \"color\": \"#ef7529\", \"hover\": \"34447.0\"}}, \"OPRaSJorA7Bn84ebGAcbBg\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 171094.0, \"color\": \"#2f55bf\", \"hover\": \"171094.0\"}}, \"L+WoRdbM8VN0eR4BJH8kBg\": {\"metadata\": {\"community_id\": 79, \"customer_id\": 129459.0, \"color\": \"#e46066\", \"hover\": \"129459.0\"}}, \"W6tdbPp/lngBYmJ1jRA9Bg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 63439.0, \"color\": \"#99ef99\", \"hover\": \"63439.0\"}}, \"vyneOlAXeITWh9VMTnlpBg\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 181744.0, \"color\": \"#f7fb87\", \"hover\": \"181744.0\"}}, \"3vRzyyQTeevcUQARp057Bg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 178224.0, \"color\": \"#1bd89a\", \"hover\": \"178224.0\"}}, \"wejGITS2BOdmjKi8FU98Bg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 106715.0, \"color\": \"#32bc93\", \"hover\": \"106715.0\"}}, \"9Dgq/UdldN2qmFsTmC6ZBg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 9237.0, \"color\": \"#1bd89a\", \"hover\": \"9237.0\"}}, \"FYbzAow8vzQx9kBhUKjEBg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 13450.0, \"color\": \"#1bd89a\", \"hover\": \"13450.0\"}}, \"0wHck3P+jbG5b7P7g6njBg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 188072.0, \"color\": \"#e0b23c\", \"hover\": \"188072.0\"}}, \"uJErBUOzWSgxAO8FydYhBw\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 6811.0, \"color\": \"#f31347\", \"hover\": \"6811.0\"}}, \"ghRXhwcooWZVz+sji7osBw\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 119953.0, \"color\": \"#81a8e3\", \"hover\": \"119953.0\"}}, \"rIV/xeomuiLXmdx2FXNKBw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 63113.0, \"color\": \"#a6c704\", \"hover\": \"63113.0\"}}, \"5tI3LUyY0xlcEPUXgstLBw\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 162863.0, \"color\": \"#f27249\", \"hover\": \"162863.0\"}}, \"vmXUUgC4eVFgr5kzAftUBw\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 170496.0, \"color\": \"#e3e59b\", \"hover\": \"170496.0\"}}, \"VjJomYArChr9VC8MLDuRBw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 86405.0, \"color\": \"#dcc694\", \"hover\": \"86405.0\"}}, \"lApkjHlZQL30kASE3uHCBw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 64998.0, \"color\": \"#b70fc0\", \"hover\": \"64998.0\"}}, \"/Wu/0Ptn9fVByZmn3PjCBw\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 160000.0, \"color\": \"#33aac6\", \"hover\": \"160000.0\"}}, \"xm9BSRzU9csZKcndYMbQBw\": {\"metadata\": {\"community_id\": 88, \"customer_id\": 4642.0, \"color\": \"#59e82a\", \"hover\": \"4642.0\"}}, \"1gbwYab1ggpNW1ZgEUvqBw\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 82489.0, \"color\": \"#7caad5\", \"hover\": \"82489.0\"}}, \"i0B7Cxb5LxImrSSUJbgNCA\": {\"metadata\": {\"community_id\": 90, \"customer_id\": 109208.0, \"color\": \"#a9fc75\", \"hover\": \"109208.0\"}}, \"qBVSMRip8iPJgMQHjR8SCA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 194380.0, \"color\": \"#62fab8\", \"hover\": \"194380.0\"}}, \"aB2R0dr/cSuQ0saoTU0iCA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 122880.0, \"color\": \"#f6a0ef\", \"hover\": \"122880.0\"}}, \"9myB9RP92+4bs0DcfUY/CA\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 76821.0, \"color\": \"#72ebb4\", \"hover\": \"76821.0\"}}, \"mnnag11a3xzR2DFZMNdTCA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 151987.0, \"color\": \"#b3df71\", \"hover\": \"151987.0\"}}, \"WCwzOmjwPWbpLhw2NFCICA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 48594.0, \"color\": \"#e436ba\", \"hover\": \"48594.0\"}}, \"RkaicZuK8b+6K3e9xpupCA\": {\"metadata\": {\"community_id\": 92, \"customer_id\": 186844.0, \"color\": \"#6cf332\", \"hover\": \"186844.0\"}}, \"3jrXS2+LmrfF9eZI2o6rCA\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 130539.0, \"color\": \"#e7419d\", \"hover\": \"130539.0\"}}, \"5+Ml4fLjTTxXGXW5z++vCA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 77561.0, \"color\": \"#c12abd\", \"hover\": \"77561.0\"}}, \"Wwwb2NcSPoh6VpCTJ/2vCA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 150967.0, \"color\": \"#b70fc0\", \"hover\": \"150967.0\"}}, \"SaBANbUR2bQfaUhYskW9CA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 68835.0, \"color\": \"#eda379\", \"hover\": \"68835.0\"}}, \"6Fqk6IruRBNgJN0iEHwACQ\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 134561.0, \"color\": \"#71d3ce\", \"hover\": \"134561.0\"}}, \"jOQmPyjpJ2VZCJGgDj8CCQ\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 46625.0, \"color\": \"#11fc2e\", \"hover\": \"46625.0\"}}, \"wBPjg88aMjlnEh95gkEOCQ\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 14727.0, \"color\": \"#a2b81a\", \"hover\": \"14727.0\"}}, \"uELFW8vZx+O4j0k4uggbCQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 136913.0, \"color\": \"#99ef99\", \"hover\": \"136913.0\"}}, \"/8ZHI0PSoRjZLb0dttQiCQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 163943.0, \"color\": \"#272dca\", \"hover\": \"163943.0\"}}, \"pemNyO15uTZEp00imOk6CQ\": {\"metadata\": {\"community_id\": 96, \"customer_id\": 28199.0, \"color\": \"#8feb83\", \"hover\": \"28199.0\"}}, \"Mm0vBMit1GguUSAVAZk8CQ\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 75615.0, \"color\": \"#99f46c\", \"hover\": \"75615.0\"}}, \"WtJSCwtDxnvu4DgTlZNICQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 164846.0, \"color\": \"#32bc93\", \"hover\": \"164846.0\"}}, \"FGyuprTxUFE21nTnfcVLCQ\": {\"metadata\": {\"community_id\": 98, \"customer_id\": 5394.0, \"color\": \"#be7fe7\", \"hover\": \"5394.0\"}}, \"noYMPGSzt8FmEPjFjBxVCQ\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 94407.0, \"color\": \"#4037bc\", \"hover\": \"94407.0\"}}, \"1bo994GZOV8HEds5eJJdCQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 39352.0, \"color\": \"#7aefcb\", \"hover\": \"39352.0\"}}, \"QA/4eqtZ2nkJ9kFc29hgCQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 26006.0, \"color\": \"#31ab2f\", \"hover\": \"26006.0\"}}, \"0p1y+f9o8JJoxwRWmEaCCQ\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 49715.0, \"color\": \"#f29712\", \"hover\": \"49715.0\"}}, \"lgj72idvG8jObtcuyfuDCQ\": {\"metadata\": {\"community_id\": 100, \"customer_id\": 32271.0, \"color\": \"#41d2d9\", \"hover\": \"32271.0\"}}, \"ixroP3o8cYcrdNuKfyajCQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 181247.0, \"color\": \"#272dca\", \"hover\": \"181247.0\"}}, \"xOfZoAfLV2KucgwJ/2G2CQ\": {\"metadata\": {\"community_id\": 101, \"customer_id\": 19675.0, \"color\": \"#ef7579\", \"hover\": \"19675.0\"}}, \"tm2icdHnb7GlDxJ6W1m9CQ\": {\"metadata\": {\"community_id\": 102, \"customer_id\": 35845.0, \"color\": \"#8ebce5\", \"hover\": \"35845.0\"}}, \"4SV/Zm1taO3Sqac5TAHjCQ\": {\"metadata\": {\"community_id\": 103, \"customer_id\": 183626.0, \"color\": \"#9b67fb\", \"hover\": \"183626.0\"}}, \"f5y9NZ/5KqlQ9HqDpcXuCQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 82398.0, \"color\": \"#d8dd94\", \"hover\": \"82398.0\"}}, \"7hu/3SxzMzOw+99hxtf/CQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 199844.0, \"color\": \"#3ef95f\", \"hover\": \"199844.0\"}}, \"At3rUhegSM4L6VVjR4gMCg\": {\"metadata\": {\"community_id\": 106, \"customer_id\": 185720.0, \"color\": \"#5bfdd5\", \"hover\": \"185720.0\"}}, \"0RrC2C1QeJuEtTZ5IdghCg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 42327.0, \"color\": \"#9a62ce\", \"hover\": \"42327.0\"}}, \"JoTHChXP0mi1f8VYxlwkCg\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 39400.0, \"color\": \"#c05c10\", \"hover\": \"39400.0\"}}, \"ixa7v7bj5ENazQ0MNaxBCg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 196789.0, \"color\": \"#b70fc0\", \"hover\": \"196789.0\"}}, \"czubaTois5tckUTLyS9bCg\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 109869.0, \"color\": \"#c98e0a\", \"hover\": \"109869.0\"}}, \"n4roh3AOe24VZvsRp3GOCg\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 177034.0, \"color\": \"#e493a3\", \"hover\": \"177034.0\"}}, \"ok/Lchkv4GjTnk17aaeZCg\": {\"metadata\": {\"community_id\": 111, \"customer_id\": 149351.0, \"color\": \"#d6a57e\", \"hover\": \"149351.0\"}}, \"hm6dg7dYvD/icQaeL62rCg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 70325.0, \"color\": \"#404dcf\", \"hover\": \"70325.0\"}}, \"PLGQnhzQvSiNlgoZ53mxCg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 131484.0, \"color\": \"#99b5fc\", \"hover\": \"131484.0\"}}, \"FX0+HeMaZhtd3d6RYuS3Cg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 28972.0, \"color\": \"#7eddd4\", \"hover\": \"28972.0\"}}, \"5jVxL0tV6gu/JeDMXjrJCg\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 130765.0, \"color\": \"#68c1d4\", \"hover\": \"130765.0\"}}, \"ddiFjjFLVjBntpPih2rVCg\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 82596.0, \"color\": \"#7d88fb\", \"hover\": \"82596.0\"}}, \"C4Of7edAVhVldWmHOs7pCg\": {\"metadata\": {\"community_id\": 115, \"customer_id\": 131544.0, \"color\": \"#584cf4\", \"hover\": \"131544.0\"}}, \"PyX2urRShWHuCxtIg3wHCw\": {\"metadata\": {\"community_id\": 116, \"customer_id\": 179662.0, \"color\": \"#f45a94\", \"hover\": \"179662.0\"}}, \"PcdvSMVk5RrLrEOR1BQaCw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 121355.0, \"color\": \"#272dca\", \"hover\": \"121355.0\"}}, \"NBxN5qJ8r7125hIr2g4fCw\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 105448.0, \"color\": \"#8e21cf\", \"hover\": \"105448.0\"}}, \"Y2m2ytV0Q1JDR/YJX38+Cw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 130960.0, \"color\": \"#b70fc0\", \"hover\": \"130960.0\"}}, \"M1JMvCs+uDhLtqeDvq0/Cw\": {\"metadata\": {\"community_id\": 118, \"customer_id\": 198347.0, \"color\": \"#9c9d2f\", \"hover\": \"198347.0\"}}, \"WVjZ3jfRpc6j80QIVDVJCw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 177277.0, \"color\": \"#c12abd\", \"hover\": \"177277.0\"}}, \"4P7OO9NwOYS6JeJqHVBNCw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 90553.0, \"color\": \"#9a62ce\", \"hover\": \"90553.0\"}}, \"KlmYcWvHRSzF4ZNlEcxnCw\": {\"metadata\": {\"community_id\": 119, \"customer_id\": 35402.0, \"color\": \"#77c146\", \"hover\": \"35402.0\"}}, \"4cWGKQFBhAZ6Esy/epNxCw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 171305.0, \"color\": \"#10d82f\", \"hover\": \"171305.0\"}}, \"73yjV+3srPBqZeDnfep6Cw\": {\"metadata\": {\"community_id\": 120, \"customer_id\": 91718.0, \"color\": \"#8c1bbd\", \"hover\": \"91718.0\"}}, \"vwAGZn6uuaOVd++P1UOFCw\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 75242.0, \"color\": \"#a6c54d\", \"hover\": \"75242.0\"}}, \"21kRQo8Kh+9oMACtB7K9Cw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 39872.0, \"color\": \"#eba59b\", \"hover\": \"39872.0\"}}, \"Z3dQiuHWEPMgFSV0fhboCw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 30213.0, \"color\": \"#c12abd\", \"hover\": \"30213.0\"}}, \"FFbkW5jsHSFbGrWaW3rsCw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 155004.0, \"color\": \"#99f46c\", \"hover\": \"155004.0\"}}, \"8T+q5wBfnFew/y6izv5ADA\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 184688.0, \"color\": \"#8cf43c\", \"hover\": \"184688.0\"}}, \"YY8z/h69E0yzLPuqomxiDA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 123139.0, \"color\": \"#f8a36c\", \"hover\": \"123139.0\"}}, \"1nWATN6mEw6+v/LPb5VjDA\": {\"metadata\": {\"community_id\": 123, \"customer_id\": 106694.0, \"color\": \"#f2867f\", \"hover\": \"106694.0\"}}, \"U+s8M4MjVyG5NQ+x2WFzDA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 193525.0, \"color\": \"#2795b1\", \"hover\": \"193525.0\"}}, \"vOOKfU4yOH6KgAfbs1qADA\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 107182.0, \"color\": \"#c7de5b\", \"hover\": \"107182.0\"}}, \"yTeYhXHj6kbvuDMxlSyjDA\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 179666.0, \"color\": \"#9762ed\", \"hover\": \"179666.0\"}}, \"TpoKQKJcrw56yPne71zHDA\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 22501.0, \"color\": \"#aad6ea\", \"hover\": \"22501.0\"}}, \"TY7hrli72TWW8i5Lr4fYDA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 54036.0, \"color\": \"#d2ab67\", \"hover\": \"54036.0\"}}, \"tg4htVvjR8oGHx8uubBYDQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 62642.0, \"color\": \"#99b5fc\", \"hover\": \"62642.0\"}}, \"qeuatAkhLNLIi8/FbpRgDQ\": {\"metadata\": {\"community_id\": 129, \"customer_id\": 146233.0, \"color\": \"#daee90\", \"hover\": \"146233.0\"}}, \"A4dMXilHUsHQSR6kFSqJDQ\": {\"metadata\": {\"community_id\": 130, \"customer_id\": 101770.0, \"color\": \"#a264ce\", \"hover\": \"101770.0\"}}, \"9IKaNG5e1u1oNOlfHnEKDg\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 180382.0, \"color\": \"#eba59b\", \"hover\": \"180382.0\"}}, \"ZKP4K6n/oSk9zUwfIRgZDg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 121174.0, \"color\": \"#7eddd4\", \"hover\": \"121174.0\"}}, \"+26sXlxBKwgvLpy9E5shDg\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 118364.0, \"color\": \"#c95b7f\", \"hover\": \"118364.0\"}}, \"onHQmElJIR/+Us7Pz/k8Dg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 148977.0, \"color\": \"#10d82f\", \"hover\": \"148977.0\"}}, \"ekYddT4Tcr2RVgRanxVxDg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 86375.0, \"color\": \"#33b9bc\", \"hover\": \"86375.0\"}}, \"6NReZq5WCWs8b8h2ZGKADg\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 100196.0, \"color\": \"#b38afe\", \"hover\": \"100196.0\"}}, \"Itxv0yte/EDqR+pR1jeLDg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 51581.0, \"color\": \"#10d82f\", \"hover\": \"51581.0\"}}, \"CUfNFmcagh/iWZdQRYiTDg\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 145172.0, \"color\": \"#56fc81\", \"hover\": \"145172.0\"}}, \"2YlME1YUq9QcSfq/wC6wDg\": {\"metadata\": {\"community_id\": 134, \"customer_id\": 177516.0, \"color\": \"#e7b35a\", \"hover\": \"177516.0\"}}, \"hJMVMW1FrtevBZ7FzuLmDg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 40440.0, \"color\": \"#b70fc0\", \"hover\": \"40440.0\"}}, \"Ub6jKcVYxpyxDLYGMRDzDg\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 135655.0, \"color\": \"#d3da39\", \"hover\": \"135655.0\"}}, \"tnq/bmfznt3UJEd7a7f2Dg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 152639.0, \"color\": \"#ee2a13\", \"hover\": \"152639.0\"}}, \"XVZ0iwMF2irKUx1+9gcPDw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 132283.0, \"color\": \"#e0b23c\", \"hover\": \"132283.0\"}}, \"5xe5BK5qQuhuLpIqeBskDw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 93043.0, \"color\": \"#c12abd\", \"hover\": \"93043.0\"}}, \"5ie5XQWjvBXQxLaFzgtXDw\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 135762.0, \"color\": \"#417dfc\", \"hover\": \"135762.0\"}}, \"Gzcuyo0pazlggDZ6XHZdDw\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 167136.0, \"color\": \"#65e8e1\", \"hover\": \"167136.0\"}}, \"wt1DYPl4mOHftx9dAs51Dw\": {\"metadata\": {\"community_id\": 139, \"customer_id\": 86934.0, \"color\": \"#5514ba\", \"hover\": \"86934.0\"}}, \"g7PJFIG6v9kmGHvuyA2yDw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 36456.0, \"color\": \"#4bdb47\", \"hover\": \"36456.0\"}}, \"6Qt5reoO4qOnN5gAidO3Dw\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 29270.0, \"color\": \"#eb06bc\", \"hover\": \"29270.0\"}}, \"9b52fBh0B9XIxWekScLGDw\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 149772.0, \"color\": \"#40fd29\", \"hover\": \"149772.0\"}}, \"9T2ULlgOdsI1nizKDTvRDw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 102535.0, \"color\": \"#e436ba\", \"hover\": \"102535.0\"}}, \"3wSzQ1qgeYmFkPvbHBrkDw\": {\"metadata\": {\"community_id\": 143, \"customer_id\": 1709.0, \"color\": \"#babe2c\", \"hover\": \"1709.0\"}}, \"AUVdOrb8T3ttoz82yYPuDw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 10536.0, \"color\": \"#62fab8\", \"hover\": \"10536.0\"}}, \"1Yrvybt4XPQyO7urFEIJEA\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 47846.0, \"color\": \"#3b61cf\", \"hover\": \"47846.0\"}}, \"JDNp0giLIQeKYhAcasUMEA\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 51553.0, \"color\": \"#2f82a1\", \"hover\": \"51553.0\"}}, \"0SHLOfgkxRmjD9fIfz0NEA\": {\"metadata\": {\"community_id\": 145, \"customer_id\": 8689.0, \"color\": \"#78cf2f\", \"hover\": \"8689.0\"}}, \"YnVhfjodTZIUtQxbZcQiEA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 132530.0, \"color\": \"#10d82f\", \"hover\": \"132530.0\"}}, \"ikGVhYtT4k/Nl3xyp2AkEA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 99183.0, \"color\": \"#ed1e1d\", \"hover\": \"99183.0\"}}, \"BPp59nVeguhqaVYfaD8mEA\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 26651.0, \"color\": \"#50c2ef\", \"hover\": \"26651.0\"}}, \"LVLFh/YaYH7KeqgCZAFbEA\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 48637.0, \"color\": \"#c788df\", \"hover\": \"48637.0\"}}, \"nGtfX1L62Gs5wlVGT15sEA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 80729.0, \"color\": \"#9a62ce\", \"hover\": \"80729.0\"}}, \"BuYd2X2wZ8mIkolg6ANxEA\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 36757.0, \"color\": \"#7ff6fa\", \"hover\": \"36757.0\"}}, \"w1kNagJbloN2MOhjO2uFEA\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 169986.0, \"color\": \"#dcc694\", \"hover\": \"169986.0\"}}, \"1t5D/KAZe4O+o6FXkuWGEA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 22844.0, \"color\": \"#0d14dc\", \"hover\": \"22844.0\"}}, \"zIv5R4lMqa7XQ9Y+1u2NEA\": {\"metadata\": {\"community_id\": 150, \"customer_id\": 5146.0, \"color\": \"#2ddbb5\", \"hover\": \"5146.0\"}}, \"HWI3Bjwl14K+GhzMZk+6EA\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 193022.0, \"color\": \"#29a6ef\", \"hover\": \"193022.0\"}}, \"NJYJXom0e+Hss7fw5b/NEA\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 153615.0, \"color\": \"#4df1e8\", \"hover\": \"153615.0\"}}, \"KqW1MSythNQ3Uu61DscFEQ\": {\"metadata\": {\"community_id\": 153, \"customer_id\": 9426.0, \"color\": \"#9b36d1\", \"hover\": \"9426.0\"}}, \"Twc7MU80HZFmKWQy9ecLEQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 144715.0, \"color\": \"#32bc93\", \"hover\": \"144715.0\"}}, \"hHVQ84R0QsgKrG4nRdsZEQ\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 172358.0, \"color\": \"#9aa92e\", \"hover\": \"172358.0\"}}, \"omwCoi4xiKOAcI5uEwkgEQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 142112.0, \"color\": \"#4bdb47\", \"hover\": \"142112.0\"}}, \"oO6Kd6k9FVO7Ltqb0hQmEQ\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 196713.0, \"color\": \"#9fe4a3\", \"hover\": \"196713.0\"}}, \"eWjzxCuVwpc+jrW5PDBIEQ\": {\"metadata\": {\"community_id\": 156, \"customer_id\": 101894.0, \"color\": \"#b9ee92\", \"hover\": \"101894.0\"}}, \"DIiIhMmqvp+ATRGDxBNPEQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 99043.0, \"color\": \"#6bdba1\", \"hover\": \"99043.0\"}}, \"PfXUa5SVqfsZ9lS1QuB3EQ\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 141842.0, \"color\": \"#8317fe\", \"hover\": \"141842.0\"}}, \"7IpzIJTWaeXhoqXR7PGIEQ\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 99345.0, \"color\": \"#3c74fc\", \"hover\": \"99345.0\"}}, \"gaELPVErzQA3/wtTOOyoEQ\": {\"metadata\": {\"community_id\": 159, \"customer_id\": 42098.0, \"color\": \"#2073eb\", \"hover\": \"42098.0\"}}, \"jmvmxbSBYu86uPMD/YetEQ\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 15606.0, \"color\": \"#c57051\", \"hover\": \"15606.0\"}}, \"Bp5yJKjAGqSlAhZkD8HiEQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 181916.0, \"color\": \"#e4f354\", \"hover\": \"181916.0\"}}, \"ZYFWfvZW9YI5QbanNPHwEQ\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 50013.0, \"color\": \"#4dcbac\", \"hover\": \"50013.0\"}}, \"kWU94fPkNTSTNWlzE9oaEg\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 143447.0, \"color\": \"#8ceceb\", \"hover\": \"143447.0\"}}, \"I2UHcG7Gi5Jq/6E+hXceEg\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 198966.0, \"color\": \"#e275e7\", \"hover\": \"198966.0\"}}, \"txxhT5TTaq1HSahSSc02Eg\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 10561.0, \"color\": \"#7f4bec\", \"hover\": \"10561.0\"}}, \"tUYqN6f2sv3djqz70cZWEg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 146179.0, \"color\": \"#32bc93\", \"hover\": \"146179.0\"}}, \"hSNT1L+/WWfX3E3xDGVbEg\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 137566.0, \"color\": \"#9e78f3\", \"hover\": \"137566.0\"}}, \"5ypDG+vXoAj7aYRiv3hoEg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 69517.0, \"color\": \"#10d82f\", \"hover\": \"69517.0\"}}, \"XXq6u/cbFQCaHiuvbcRvEg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 182451.0, \"color\": \"#99b5fc\", \"hover\": \"182451.0\"}}, \"A3mWndNu28c7vWzia6CQEg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 120714.0, \"color\": \"#a6c704\", \"hover\": \"120714.0\"}}, \"XhJTH9q0vJMKX88KdwKmEg\": {\"metadata\": {\"community_id\": 167, \"customer_id\": 157418.0, \"color\": \"#e1996d\", \"hover\": \"157418.0\"}}, \"M92YjPy0DN7oh97u74C0Eg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 95775.0, \"color\": \"#1bd89a\", \"hover\": \"95775.0\"}}, \"uM6ABrtAGxdrSP3XP8y9Eg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 49720.0, \"color\": \"#32bc93\", \"hover\": \"49720.0\"}}, \"uSBD5gX8VAzRxNOmqzLIEg\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 65170.0, \"color\": \"#185cd8\", \"hover\": \"65170.0\"}}, \"7HpSPrL0CiAmbJRmVoXfEg\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 88145.0, \"color\": \"#8e21cf\", \"hover\": \"88145.0\"}}, \"rkw+3Ic423re66LntM71Eg\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 136419.0, \"color\": \"#05b7da\", \"hover\": \"136419.0\"}}, \"ovM1WzY69dbgZd2rj5c7Ew\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 178445.0, \"color\": \"#d53e3e\", \"hover\": \"178445.0\"}}, \"EtvEipevPIV+94kEnBlDEw\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 78671.0, \"color\": \"#9ee08f\", \"hover\": \"78671.0\"}}, \"DPO2KhQYp35PfWoP5h9hEw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 156606.0, \"color\": \"#9a62ce\", \"hover\": \"156606.0\"}}, \"wHZn8d9tz5W3bK/Yxzp0Ew\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 148431.0, \"color\": \"#c093fc\", \"hover\": \"148431.0\"}}, \"EqnwVrJtqbj+nF6VjBB+Ew\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 51824.0, \"color\": \"#7eddd4\", \"hover\": \"51824.0\"}}, \"Z9YUiMU+AMQ1KkWYXjCuEw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 192265.0, \"color\": \"#62fab8\", \"hover\": \"192265.0\"}}, \"4IZ2wwGoYRjr+VSzBxa2Ew\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 41592.0, \"color\": \"#a2e3bf\", \"hover\": \"41592.0\"}}, \"PTNvHk5YUZt3KumjjoG6Ew\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 71032.0, \"color\": \"#3a92b5\", \"hover\": \"71032.0\"}}, \"BagtKawfQmam8a6BT4rNEw\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 46582.0, \"color\": \"#98e1c6\", \"hover\": \"46582.0\"}}, \"OUc82uPwlL8MMu6vQizhEw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 39723.0, \"color\": \"#31ab2f\", \"hover\": \"39723.0\"}}, \"qBq08MAwQ9kFkITDvTQaFA\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 49697.0, \"color\": \"#1514df\", \"hover\": \"49697.0\"}}, \"nkGZYDuCZwgagF/AGbocFA\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 34862.0, \"color\": \"#22b27d\", \"hover\": \"34862.0\"}}, \"faPrc6LisKuEQ29r3v4mFA\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 16388.0, \"color\": \"#aa28fe\", \"hover\": \"16388.0\"}}, \"4DmdVWN83PEzQefueAI5FA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 133684.0, \"color\": \"#272dca\", \"hover\": \"133684.0\"}}, \"4/BeRQFQUgYrWpdf9TxKFA\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 114120.0, \"color\": \"#c05c10\", \"hover\": \"114120.0\"}}, \"qfuAI7Ky2KFKbcYucitdFA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 10056.0, \"color\": \"#eba59b\", \"hover\": \"10056.0\"}}, \"U2fwMYpVLtQZ2SNSNeFgFA\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 140619.0, \"color\": \"#dcc694\", \"hover\": \"140619.0\"}}, \"CUpIgtOr0maU4VKMz/1jFA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 23729.0, \"color\": \"#b70fc0\", \"hover\": \"23729.0\"}}, \"GSmYxob/4rkd11kAIeF7FA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 198190.0, \"color\": \"#81a8e3\", \"hover\": \"198190.0\"}}, \"U8HymeeB0K3Ib0acWgJ8FA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 101925.0, \"color\": \"#e436ba\", \"hover\": \"101925.0\"}}, \"+8wuDVU1YuPiCabH7EfMFA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 15343.0, \"color\": \"#7eddd4\", \"hover\": \"15343.0\"}}, \"SgMaBxIjaJ4QFHkgR8jgFA\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 188131.0, \"color\": \"#f7fb87\", \"hover\": \"188131.0\"}}, \"zmB62BQhhI6XLXm+6ULlFA\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 103823.0, \"color\": \"#59e09f\", \"hover\": \"103823.0\"}}, \"qv6D+KQaueUpvOa8xj8GFQ\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 63209.0, \"color\": \"#08cad9\", \"hover\": \"63209.0\"}}, \"L2lyi9WyZ8Wx8c+cAIYbFQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 127977.0, \"color\": \"#d8c96d\", \"hover\": \"127977.0\"}}, \"nwTwB7veJZkBspgGW8IgFQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 181163.0, \"color\": \"#f8a36c\", \"hover\": \"181163.0\"}}, \"Hkbh2Z/duzjyT2lWCNZXFQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 51047.0, \"color\": \"#e4f354\", \"hover\": \"51047.0\"}}, \"7KX3J2kl0HPi8GywziRjFQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 24919.0, \"color\": \"#2795b1\", \"hover\": \"24919.0\"}}, \"/Z8QccklhoEKl/T3txCCFQ\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 94002.0, \"color\": \"#4de2c4\", \"hover\": \"94002.0\"}}, \"2qYTLx7xi5LMIcWLTCWaFQ\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 17440.0, \"color\": \"#04dbb3\", \"hover\": \"17440.0\"}}, \"YalEWtRbuh74YZNW+V+rFQ\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 32892.0, \"color\": \"#abf295\", \"hover\": \"32892.0\"}}, \"jqTQvwtadBvjuu5420exFQ\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 116871.0, \"color\": \"#96fa14\", \"hover\": \"116871.0\"}}, \"XTfpVCcfORKQ+DknxFbAFQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 159400.0, \"color\": \"#32bc93\", \"hover\": \"159400.0\"}}, \"6Z8s2POb6xRgVr6sXArKFQ\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 75015.0, \"color\": \"#fc580c\", \"hover\": \"75015.0\"}}, \"sclXs6iGF2XdJL6CuOjmFQ\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 152070.0, \"color\": \"#31f5c4\", \"hover\": \"152070.0\"}}, \"1uQP+qEOk/Iq42/PV6/xFQ\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 32234.0, \"color\": \"#d3da39\", \"hover\": \"32234.0\"}}, \"cgFr4gR5TzPQo1GlEp/1FQ\": {\"metadata\": {\"community_id\": 184, \"customer_id\": 62728.0, \"color\": \"#3554d0\", \"hover\": \"62728.0\"}}, \"YhXlhDtrAuoXpfAmHA4TFg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 43520.0, \"color\": \"#0d14dc\", \"hover\": \"43520.0\"}}, \"pJCI7DG3PZnN4hb+DaE3Fg\": {\"metadata\": {\"community_id\": 185, \"customer_id\": 8656.0, \"color\": \"#84d6c2\", \"hover\": \"8656.0\"}}, \"NFHpq1UDkaV5/g7ltpNKFg\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 98360.0, \"color\": \"#8827b3\", \"hover\": \"98360.0\"}}, \"PAQX1YZikBf8Nx9aiRuGFg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 4132.0, \"color\": \"#33b9bc\", \"hover\": \"4132.0\"}}, \"ZU+OQckB0MkyN1L5DK2HFg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 181145.0, \"color\": \"#b70fc0\", \"hover\": \"181145.0\"}}, \"St9Ow3vHlWa+rtlVPRO3Fg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 157123.0, \"color\": \"#45f210\", \"hover\": \"157123.0\"}}, \"HOx+OKEcVbnVkHm25ejKFg\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 130294.0, \"color\": \"#04d838\", \"hover\": \"130294.0\"}}, \"WbH5BOBw2wFJJDt9YHHhFg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 169187.0, \"color\": \"#78e968\", \"hover\": \"169187.0\"}}, \"z58nwbXjBrUUHo0rqUjxFg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 138015.0, \"color\": \"#92e5be\", \"hover\": \"138015.0\"}}, \"Ha9Vkf8aPNc6T+GtsbjxFg\": {\"metadata\": {\"community_id\": 189, \"customer_id\": 66778.0, \"color\": \"#eb91d5\", \"hover\": \"66778.0\"}}, \"FYUbaJqdExrKUkHpVP00Fw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 84233.0, \"color\": \"#99f46c\", \"hover\": \"84233.0\"}}, \"TUhSFD6MSB6xXaa6q3dNFw\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 198885.0, \"color\": \"#974bf4\", \"hover\": \"198885.0\"}}, \"kUA3zTQcp1YyO9n7mYZpFw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 57571.0, \"color\": \"#272dca\", \"hover\": \"57571.0\"}}, \"ET7J4JcMIZwIEmO2MahvFw\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 140736.0, \"color\": \"#ee2a13\", \"hover\": \"140736.0\"}}, \"EwOElxfoJhlC43UZl4agFw\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 187494.0, \"color\": \"#7dd8f9\", \"hover\": \"187494.0\"}}, \"/+gEOXElYTfxaCAILMq4Fw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 151417.0, \"color\": \"#1bd89a\", \"hover\": \"151417.0\"}}, \"ry+Bc8XTG9qHzeTVjhW+Fw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 143345.0, \"color\": \"#272dca\", \"hover\": \"143345.0\"}}, \"klOTmfJybyIxWLFRZ4LNFw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 62414.0, \"color\": \"#99b5fc\", \"hover\": \"62414.0\"}}, \"vsUVcjvzycT49sp9EfLRFw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 182072.0, \"color\": \"#e0b23c\", \"hover\": \"182072.0\"}}, \"VSygbfdnvtsy1YASYpTnFw\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 37920.0, \"color\": \"#d6f98a\", \"hover\": \"37920.0\"}}, \"ZgH/ubaX0zuODb9Ja1X0Fw\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 90658.0, \"color\": \"#9ee08f\", \"hover\": \"90658.0\"}}, \"z4yY0KLuahKFIiCO3ET3Fw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 110499.0, \"color\": \"#99b5fc\", \"hover\": \"110499.0\"}}, \"O0bYqn+5ERSyAfk2Hp0JGA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 19665.0, \"color\": \"#62fab8\", \"hover\": \"19665.0\"}}, \"w3fZ06w50iTjsguyIbkuGA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 140758.0, \"color\": \"#b58c2b\", \"hover\": \"140758.0\"}}, \"bbF+fMAX0AmPgTF5bjA0GA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 17910.0, \"color\": \"#d53e3e\", \"hover\": \"17910.0\"}}, \"9jTabOUPSKMaECQFrBo6GA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 135833.0, \"color\": \"#45f210\", \"hover\": \"135833.0\"}}, \"w2g1mby0W+j2A70Q16k9GA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 141793.0, \"color\": \"#a372d3\", \"hover\": \"141793.0\"}}, \"HxXh0zliSN4s8xGCT2dFGA\": {\"metadata\": {\"community_id\": 193, \"customer_id\": 1211.0, \"color\": \"#ccc319\", \"hover\": \"1211.0\"}}, \"XOw9Q1YxcvuhPXdiOGJMGA\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 176534.0, \"color\": \"#e275e7\", \"hover\": \"176534.0\"}}, \"bvn2snQLkRyKUisCg3BwGA\": {\"metadata\": {\"community_id\": 194, \"customer_id\": 32555.0, \"color\": \"#33d610\", \"hover\": \"32555.0\"}}, \"uxafDr00Oc9wR3p87+iCGA\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 15871.0, \"color\": \"#4bdb47\", \"hover\": \"15871.0\"}}, \"Ri2CyfNyzGOJEAIOkM6NGA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 81359.0, \"color\": \"#6bdba1\", \"hover\": \"81359.0\"}}, \"LJe1EsF6WVGhJrfpobqgGA\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 55524.0, \"color\": \"#15cf62\", \"hover\": \"55524.0\"}}, \"mM43sNjG0c/NvOYz/JWiGA\": {\"metadata\": {\"community_id\": 196, \"customer_id\": 123919.0, \"color\": \"#97ce4b\", \"hover\": \"123919.0\"}}, \"EKisYL+aHVjdhvRsM9ikGA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 80221.0, \"color\": \"#dfd779\", \"hover\": \"80221.0\"}}, \"hX6pHoKkPTVs3B7cOjy6GA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 181912.0, \"color\": \"#c12abd\", \"hover\": \"181912.0\"}}, \"runqlAXZjxQe04Ry33PAGA\": {\"metadata\": {\"community_id\": 189, \"customer_id\": 154199.0, \"color\": \"#eb91d5\", \"hover\": \"154199.0\"}}, \"UsIPfzCA+x/4AQhfAu/AGA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 38792.0, \"color\": \"#2795b1\", \"hover\": \"38792.0\"}}, \"xuD5Tu/T3V0eT3pRkefCGA\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 15640.0, \"color\": \"#fe58fe\", \"hover\": \"15640.0\"}}, \"DKE0oHHGtU5ACYya+k/FGA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 39251.0, \"color\": \"#ed1e1d\", \"hover\": \"39251.0\"}}, \"rIJWEAmHpfJL9ygNVIDmGA\": {\"metadata\": {\"community_id\": 197, \"customer_id\": 141486.0, \"color\": \"#a48fdd\", \"hover\": \"141486.0\"}}, \"Z+3GtyrpKpm+Q8/nh1/0GA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 119281.0, \"color\": \"#b3df71\", \"hover\": \"119281.0\"}}, \"YiMXGNwaRu0vX1QsGU0eGQ\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 93782.0, \"color\": \"#e493a3\", \"hover\": \"93782.0\"}}, \"78tJaJJAzpF2sHBJTlVDGQ\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 107199.0, \"color\": \"#99ea58\", \"hover\": \"107199.0\"}}, \"b2RuDKm6BDQPlGaLg/5OGQ\": {\"metadata\": {\"community_id\": 196, \"customer_id\": 360.0, \"color\": \"#97ce4b\", \"hover\": \"360.0\"}}, \"3DuZJFarhAU7kKtWJ35YGQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 84550.0, \"color\": \"#3ef95f\", \"hover\": \"84550.0\"}}, \"HiQHZwhiV5ctprO+wg5bGQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 145029.0, \"color\": \"#272dca\", \"hover\": \"145029.0\"}}, \"cVmbQo4/1D3qErZymi2IGQ\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 103198.0, \"color\": \"#0d14dc\", \"hover\": \"103198.0\"}}, \"cwo49QWCShomLLSCPzSMGQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 16484.0, \"color\": \"#e4f354\", \"hover\": \"16484.0\"}}, \"rREDvHm7au3O8D+GCoHzGQ\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 82866.0, \"color\": \"#b38afe\", \"hover\": \"82866.0\"}}, \"hGN13fAWjXFjkcNbTkD8GQ\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 126477.0, \"color\": \"#f155a7\", \"hover\": \"126477.0\"}}, \"+GJIVPTagS9nGMxEwIgDGg\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 25978.0, \"color\": \"#48d68f\", \"hover\": \"25978.0\"}}, \"zSIEuhOJCp1RSUg1GfscGg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 141608.0, \"color\": \"#ae692e\", \"hover\": \"141608.0\"}}, \"Bxy0zu5PiV6ZTGmvaJlLGg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 177657.0, \"color\": \"#9a62ce\", \"hover\": \"177657.0\"}}, \"4AxyPSWTXsFcTxsgK/9MGg\": {\"metadata\": {\"community_id\": 202, \"customer_id\": 152331.0, \"color\": \"#e1c082\", \"hover\": \"152331.0\"}}, \"Zr1xQbj95+rjQg7NFHFQGg\": {\"metadata\": {\"community_id\": 203, \"customer_id\": 114050.0, \"color\": \"#97b8ef\", \"hover\": \"114050.0\"}}, \"bYXVmppvlbPB4PlIcylRGg\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 159570.0, \"color\": \"#7cec6a\", \"hover\": \"159570.0\"}}, \"z0lL6W6EpkmtxxleyFxrGg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 125766.0, \"color\": \"#dfd779\", \"hover\": \"125766.0\"}}, \"O2+mvXcdd33t3E2igmFuGg\": {\"metadata\": {\"community_id\": 156, \"customer_id\": 182142.0, \"color\": \"#b9ee92\", \"hover\": \"182142.0\"}}, \"T5bmSMxYLl6Z9C5awJduGg\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 37081.0, \"color\": \"#eba59b\", \"hover\": \"37081.0\"}}, \"/CORzbjEzOQeZXXaFtByGg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 49991.0, \"color\": \"#a6c704\", \"hover\": \"49991.0\"}}, \"NVdzb7qEwp+JDEtZEfJ4Gg\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 139985.0, \"color\": \"#b896fe\", \"hover\": \"139985.0\"}}, \"tKeHjSdQxe3Z9h/+9knaGg\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 36722.0, \"color\": \"#378cc8\", \"hover\": \"36722.0\"}}, \"oIY+UI7EbbGLRm9pCvgAGw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 36254.0, \"color\": \"#32bc93\", \"hover\": \"36254.0\"}}, \"+KNmFytU12EQiuKiLmQCGw\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 159773.0, \"color\": \"#671efa\", \"hover\": \"159773.0\"}}, \"/Pf5fjv5qaGt6+W1OJsLGw\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 5513.0, \"color\": \"#5f53f0\", \"hover\": \"5513.0\"}}, \"7HqkGStA2UDQzJDvpHgrGw\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 144701.0, \"color\": \"#f963e8\", \"hover\": \"144701.0\"}}, \"2+CxNgy+Ysn57e25B6YtGw\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 25154.0, \"color\": \"#f1fc86\", \"hover\": \"25154.0\"}}, \"sClFZEdxiLr55WlJAS1aGw\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 4946.0, \"color\": \"#f6bf7b\", \"hover\": \"4946.0\"}}, \"rfnJwiDawLh1XtIuXn2GGw\": {\"metadata\": {\"community_id\": 209, \"customer_id\": 41134.0, \"color\": \"#f86ba7\", \"hover\": \"41134.0\"}}, \"RfMSIv8DiMBSeZkZW9iLGw\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 177037.0, \"color\": \"#dfd779\", \"hover\": \"177037.0\"}}, \"cuFTE6pk6eDeLzNdCG2NGw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 72426.0, \"color\": \"#a372d3\", \"hover\": \"72426.0\"}}, \"CudMQtlo+Z7PKAT27MOcGw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 96158.0, \"color\": \"#10d82f\", \"hover\": \"96158.0\"}}, \"zfRKs2oznM215YUmJDOzGw\": {\"metadata\": {\"community_id\": 185, \"customer_id\": 18697.0, \"color\": \"#84d6c2\", \"hover\": \"18697.0\"}}, \"+LeAE1b8Ja4GZ8hbuVu+Gw\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 87797.0, \"color\": \"#f091c1\", \"hover\": \"87797.0\"}}, \"evpuxwdu8csQws8vVcHGGw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 111181.0, \"color\": \"#d36ae2\", \"hover\": \"111181.0\"}}, \"gnkptQoFpXTfr9jYgmviGw\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 62363.0, \"color\": \"#65e08d\", \"hover\": \"62363.0\"}}, \"iPVKv/6OQoTmmrmHPGorHA\": {\"metadata\": {\"community_id\": 213, \"customer_id\": 9074.0, \"color\": \"#30b16e\", \"hover\": \"9074.0\"}}, \"iyAX5eh3AUHSA/qH3jhhHA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 5318.0, \"color\": \"#c12abd\", \"hover\": \"5318.0\"}}, \"BEgYfzGevBQjlfcdT2lnHA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 157866.0, \"color\": \"#99ef99\", \"hover\": \"157866.0\"}}, \"NN+6Qzmj2ZvJu6QWXZ9nHA\": {\"metadata\": {\"community_id\": 214, \"customer_id\": 45283.0, \"color\": \"#9be504\", \"hover\": \"45283.0\"}}, \"os2gEaRsfryCfJUpkHupHA\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 104610.0, \"color\": \"#fcce99\", \"hover\": \"104610.0\"}}, \"+Rlz1JkRVqbwaCVUWl/fHA\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 167698.0, \"color\": \"#71d3ce\", \"hover\": \"167698.0\"}}, \"pJz6MHBW7g/FSNEbHh3kHA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 145111.0, \"color\": \"#d53cea\", \"hover\": \"145111.0\"}}, \"ngeFPVa/1m5AWfQ95RYnHQ\": {\"metadata\": {\"community_id\": 216, \"customer_id\": 128516.0, \"color\": \"#df9414\", \"hover\": \"128516.0\"}}, \"jbFoGmlTquAm7t9w9GQtHQ\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 56210.0, \"color\": \"#f9855b\", \"hover\": \"56210.0\"}}, \"wUSvFtg39A812eCTmXdRHQ\": {\"metadata\": {\"community_id\": 218, \"customer_id\": 110817.0, \"color\": \"#d54da6\", \"hover\": \"110817.0\"}}, \"BsPPFI0hRbbHh2Yj6wNZHQ\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 101472.0, \"color\": \"#e3e59b\", \"hover\": \"101472.0\"}}, \"EOtEMeyM3THrTQQBPf6EHQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 48099.0, \"color\": \"#99b5fc\", \"hover\": \"48099.0\"}}, \"RVWH5KhijIHcLRng2KuGHQ\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 8470.0, \"color\": \"#ee2bd7\", \"hover\": \"8470.0\"}}, \"hz+LWfgYGJpvD5KkesmnHQ\": {\"metadata\": {\"community_id\": 56, \"customer_id\": 18551.0, \"color\": \"#da3260\", \"hover\": \"18551.0\"}}, \"LvOiWpCmoGTwHrNYQ0mpHQ\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 136927.0, \"color\": \"#f29712\", \"hover\": \"136927.0\"}}, \"ZJABKZSq0Pb8qydMTaivHQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 105449.0, \"color\": \"#9a62ce\", \"hover\": \"105449.0\"}}, \"NZOGuB7qjlFhwGOJyC/IHQ\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 70297.0, \"color\": \"#5dfc9d\", \"hover\": \"70297.0\"}}, \"oV3IniodoT+MREwyXYDOHQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 100508.0, \"color\": \"#31ab2f\", \"hover\": \"100508.0\"}}, \"zwDjXe56B2Rn4K0LnHnrHQ\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 157396.0, \"color\": \"#a6c704\", \"hover\": \"157396.0\"}}, \"C1v88cJyGkE/JFrP/EfwHQ\": {\"metadata\": {\"community_id\": 221, \"customer_id\": 141104.0, \"color\": \"#e1da87\", \"hover\": \"141104.0\"}}, \"Q7Duik1XvaT8SD31GqL3HQ\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 67502.0, \"color\": \"#e6c381\", \"hover\": \"67502.0\"}}, \"1ZgUHPvya0V9G/so9Hz4HQ\": {\"metadata\": {\"community_id\": 223, \"customer_id\": 34567.0, \"color\": \"#ca26a4\", \"hover\": \"34567.0\"}}, \"bZ3gBkoKIcnZN3xYRrIGHg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 67292.0, \"color\": \"#b58c2b\", \"hover\": \"67292.0\"}}, \"XSSPDACChV7VE4V6eMoaHg\": {\"metadata\": {\"community_id\": 224, \"customer_id\": 194931.0, \"color\": \"#5ae3c6\", \"hover\": \"194931.0\"}}, \"9EimI6rdmwmnjs+mU6IhHg\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 74460.0, \"color\": \"#f957df\", \"hover\": \"74460.0\"}}, \"TUKfnIVWQOWiFDAoAXcuHg\": {\"metadata\": {\"community_id\": 225, \"customer_id\": 103048.0, \"color\": \"#e95475\", \"hover\": \"103048.0\"}}, \"ziAjc86faoPYn9al48FNHg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 116059.0, \"color\": \"#a372d3\", \"hover\": \"116059.0\"}}, \"rt6bQoEh10pLs01D+2tgHg\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 70427.0, \"color\": \"#2575dd\", \"hover\": \"70427.0\"}}, \"Vr6vzOHfwIdWVbGufER7Hg\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 194032.0, \"color\": \"#56fc81\", \"hover\": \"194032.0\"}}, \"0CEfdShHc8kj3nBl7h2IHg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 184209.0, \"color\": \"#25a9a6\", \"hover\": \"184209.0\"}}, \"xUpvP9QHNo94QQLkF2GMHg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 137667.0, \"color\": \"#45f210\", \"hover\": \"137667.0\"}}, \"1bZ6aYbjy9atWbMAFdO3Hg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 68701.0, \"color\": \"#b70fc0\", \"hover\": \"68701.0\"}}, \"AfT7PVK0yxzKtJ49oQfJHg\": {\"metadata\": {\"community_id\": 227, \"customer_id\": 136076.0, \"color\": \"#d68d2b\", \"hover\": \"136076.0\"}}, \"cWs/gMnWHiGA9P5yXIfcHg\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 2260.0, \"color\": \"#d8dd94\", \"hover\": \"2260.0\"}}, \"Wadm1Lv/yBVy7yCmh8nkHg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 179069.0, \"color\": \"#b3df71\", \"hover\": \"179069.0\"}}, \"TvwnYZLgwH2Zg3y6GBHzHg\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 167359.0, \"color\": \"#a41adf\", \"hover\": \"167359.0\"}}, \"NXHeZhJqzkRT6S2TvSofHw\": {\"metadata\": {\"community_id\": 229, \"customer_id\": 177367.0, \"color\": \"#3576d4\", \"hover\": \"177367.0\"}}, \"Wqqquk8TBr6fzWvHrWRDHw\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 83678.0, \"color\": \"#dc1d4e\", \"hover\": \"83678.0\"}}, \"1Rlo35JxxSopAFTuCxNOHw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 152002.0, \"color\": \"#33b9bc\", \"hover\": \"152002.0\"}}, \"OP3VuJz0MOYOFOeABeBvHw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 35072.0, \"color\": \"#e436ba\", \"hover\": \"35072.0\"}}, \"/BzWE+Rn/GqqV38iITCZHw\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 31118.0, \"color\": \"#81fdc7\", \"hover\": \"31118.0\"}}, \"AUj6QW3vDA5gQHwExjGtHw\": {\"metadata\": {\"community_id\": 25, \"customer_id\": 14798.0, \"color\": \"#26f97a\", \"hover\": \"14798.0\"}}, \"iF/+MGd6b6rcWMWF/4KuHw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 138557.0, \"color\": \"#1bd89a\", \"hover\": \"138557.0\"}}, \"l5qTdPK/f/oVgA5z56KwHw\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 188142.0, \"color\": \"#8c25b7\", \"hover\": \"188142.0\"}}, \"5bMac/1L9Hlr4864F2GxHw\": {\"metadata\": {\"community_id\": 233, \"customer_id\": 149803.0, \"color\": \"#3ec8e7\", \"hover\": \"149803.0\"}}, \"yutKWTkgBBMnkbPoOKa5Hw\": {\"metadata\": {\"community_id\": 234, \"customer_id\": 77480.0, \"color\": \"#41f793\", \"hover\": \"77480.0\"}}, \"bOJhqCEnedN5vMG06Nu+Hw\": {\"metadata\": {\"community_id\": 235, \"customer_id\": 71356.0, \"color\": \"#f376f8\", \"hover\": \"71356.0\"}}, \"1JUfBZJztS4NtT5jk77PHw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 63079.0, \"color\": \"#9a62ce\", \"hover\": \"63079.0\"}}, \"v2ros2t94DbEEnUTjOnxHw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 36295.0, \"color\": \"#c12abd\", \"hover\": \"36295.0\"}}, \"2vun/ii125XeGUDqXi72Hw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 91094.0, \"color\": \"#10d82f\", \"hover\": \"91094.0\"}}, \"WeN5o9MbjQ3DVYD45BwwIA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 92024.0, \"color\": \"#dfd779\", \"hover\": \"92024.0\"}}, \"lDzqred3r2TxyB7oTUd/IA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 164353.0, \"color\": \"#e436ba\", \"hover\": \"164353.0\"}}, \"Hmoij6THJzrv9Ud2clOGIA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 188974.0, \"color\": \"#eda379\", \"hover\": \"188974.0\"}}, \"BdDwgZDolJQo4Ovd47SGIA\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 54279.0, \"color\": \"#3ef95f\", \"hover\": \"54279.0\"}}, \"eC/XnuuS5o8IEr6SYqzjIA\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 100836.0, \"color\": \"#cf8a18\", \"hover\": \"100836.0\"}}, \"+iDF/+NUmcimkZ/a1vDtIA\": {\"metadata\": {\"community_id\": 237, \"customer_id\": 19455.0, \"color\": \"#b943c7\", \"hover\": \"19455.0\"}}, \"b4oXjIZRDnnzcBNWeVY3IQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 64718.0, \"color\": \"#0f50c0\", \"hover\": \"64718.0\"}}, \"cTAnscLtT1cdCB8qhxM5IQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 103116.0, \"color\": \"#d2ab67\", \"hover\": \"103116.0\"}}, \"y/GSzVK9/v+yupHu3fVbIQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 119436.0, \"color\": \"#1bd89a\", \"hover\": \"119436.0\"}}, \"v/vdz8S9uvE40Xq38f5rIQ\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 107124.0, \"color\": \"#fc580c\", \"hover\": \"107124.0\"}}, \"n4dz/aeAHhLfQ2Rgl09tIQ\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 170204.0, \"color\": \"#ed1e1d\", \"hover\": \"170204.0\"}}, \"4XGe9HGicBmKt37s8EN3IQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 37216.0, \"color\": \"#b70fc0\", \"hover\": \"37216.0\"}}, \"XANgaiK1FlF7sXU9o9l4IQ\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 39901.0, \"color\": \"#8b9ce4\", \"hover\": \"39901.0\"}}, \"bxtTY+x3AKEBwP60fpiWIQ\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 105587.0, \"color\": \"#404dcf\", \"hover\": \"105587.0\"}}, \"Sx+IFJGVaRwglNgrd2itIQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 185968.0, \"color\": \"#d8dd94\", \"hover\": \"185968.0\"}}, \"4sGOLVPefYSglunzn+nDIQ\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 135638.0, \"color\": \"#192dda\", \"hover\": \"135638.0\"}}, \"BJeUy+7Q11m2rTvepSzOIQ\": {\"metadata\": {\"community_id\": 241, \"customer_id\": 24120.0, \"color\": \"#d2517f\", \"hover\": \"24120.0\"}}, \"tnPi10EYwtsy6vOdV8n9IQ\": {\"metadata\": {\"community_id\": 242, \"customer_id\": 47859.0, \"color\": \"#4de6d5\", \"hover\": \"47859.0\"}}, \"dM+UVga4l5SwZ6vnVIcLIg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 52078.0, \"color\": \"#0d14dc\", \"hover\": \"52078.0\"}}, \"rTKRv6DiTA6L5QsdKBYOIg\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 100524.0, \"color\": \"#36dfc2\", \"hover\": \"100524.0\"}}, \"+5enw4eQZD6PzwL03iwbIg\": {\"metadata\": {\"community_id\": 244, \"customer_id\": 153953.0, \"color\": \"#8efabb\", \"hover\": \"153953.0\"}}, \"4MUf19wYnk7EbEoo8F4rIg\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 78684.0, \"color\": \"#e4f354\", \"hover\": \"78684.0\"}}, \"uaWvXzfkUgsilOb8D20xIg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 4670.0, \"color\": \"#2795b1\", \"hover\": \"4670.0\"}}, \"wHmU4WakYx1Hqi9omUJAIg\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 46173.0, \"color\": \"#9762ed\", \"hover\": \"46173.0\"}}, \"+HdIZL/LiXDO0QMPb2dGIg\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 31841.0, \"color\": \"#80df70\", \"hover\": \"31841.0\"}}, \"x/dAel4REdzym5x4X6ZdIg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 174762.0, \"color\": \"#b70fc0\", \"hover\": \"174762.0\"}}, \"4g2lGWPTonWIMQgJfV1eIg\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 90911.0, \"color\": \"#0cd5fa\", \"hover\": \"90911.0\"}}, \"APcebyIsBjD0c87yW+NgIg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 63657.0, \"color\": \"#f6a0ef\", \"hover\": \"63657.0\"}}, \"HWEW1PkDeiZClhSCd6pjIg\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 142188.0, \"color\": \"#a6c54d\", \"hover\": \"142188.0\"}}, \"ufEEAwHXUrDrhF2rnNGAIg\": {\"metadata\": {\"community_id\": 246, \"customer_id\": 142001.0, \"color\": \"#82a22d\", \"hover\": \"142001.0\"}}, \"9cZ7WX4cBDmtHgG91g2OIg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 29044.0, \"color\": \"#c2fe3c\", \"hover\": \"29044.0\"}}, \"xExtfAhao3/BSxCKoKijIg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 149612.0, \"color\": \"#272dca\", \"hover\": \"149612.0\"}}, \"hzVxuFN90gUwpycD6XSkIg\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 147523.0, \"color\": \"#14d13f\", \"hover\": \"147523.0\"}}, \"ocMqEnIQQXgXvr8DZo7BIg\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 65110.0, \"color\": \"#417dfc\", \"hover\": \"65110.0\"}}, \"XF0PlmPVwNzCZ1mS4V3QIg\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 121470.0, \"color\": \"#e66d6e\", \"hover\": \"121470.0\"}}, \"vRAPwQoW49NhdfqTKtHjIg\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 110407.0, \"color\": \"#ef7529\", \"hover\": \"110407.0\"}}, \"+9xYtL34ZhnLLOnUagvkIg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 193047.0, \"color\": \"#b70fc0\", \"hover\": \"193047.0\"}}, \"OGLpzE/fuAIm0bGjkjrnIg\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 50164.0, \"color\": \"#eda379\", \"hover\": \"50164.0\"}}, \"VoQIcll8yYQ6mu4xtEHxIg\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 187578.0, \"color\": \"#e5a6ba\", \"hover\": \"187578.0\"}}, \"jWkbRjXrqO1AOdPk4zwUIw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 153469.0, \"color\": \"#a372d3\", \"hover\": \"153469.0\"}}, \"uAjnNExm68e/VriTomMVIw\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 38370.0, \"color\": \"#5937d3\", \"hover\": \"38370.0\"}}, \"AuclOJMUqm+qN0kJfBknIw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 26521.0, \"color\": \"#b70fc0\", \"hover\": \"26521.0\"}}, \"CNaUNDtRAy8IVd9syOwtIw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 59753.0, \"color\": \"#99f46c\", \"hover\": \"59753.0\"}}, \"lmt+OhXHPo6hoVKzUzw6Iw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 33417.0, \"color\": \"#33b9bc\", \"hover\": \"33417.0\"}}, \"pBxTXw3/vIIS3k3LzjU/Iw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 3955.0, \"color\": \"#99ef99\", \"hover\": \"3955.0\"}}, \"dAmdzT0drYiMbV9rJdJvIw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 9891.0, \"color\": \"#c12abd\", \"hover\": \"9891.0\"}}, \"Hyv0Y/SRD3XT32vDuFF8Iw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 134880.0, \"color\": \"#c12abd\", \"hover\": \"134880.0\"}}, \"FEdzgbkfU1GlG3WzAEOGIw\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 178067.0, \"color\": \"#8543c3\", \"hover\": \"178067.0\"}}, \"4czXzUA3cUHu4vDFhbWRIw\": {\"metadata\": {\"community_id\": 253, \"customer_id\": 184731.0, \"color\": \"#39c8c3\", \"hover\": \"184731.0\"}}, \"Yv23/3krJRShpUgClOiRIw\": {\"metadata\": {\"community_id\": 254, \"customer_id\": 113741.0, \"color\": \"#7c69d9\", \"hover\": \"113741.0\"}}, \"vgFcKtNQ7SqjM54GthqWIw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 14005.0, \"color\": \"#4bdb47\", \"hover\": \"14005.0\"}}, \"zB4WdokIJ0GBrsT2ZZSWIw\": {\"metadata\": {\"community_id\": 255, \"customer_id\": 75122.0, \"color\": \"#31fb16\", \"hover\": \"75122.0\"}}, \"TTTqxHqacNkMWmUf98OaIw\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 165558.0, \"color\": \"#ade5d7\", \"hover\": \"165558.0\"}}, \"rW/MwAPM82zAxZRpvjmwIw\": {\"metadata\": {\"community_id\": 256, \"customer_id\": 56026.0, \"color\": \"#cc18bd\", \"hover\": \"56026.0\"}}, \"z7a8e/M7XwRd4+bIXcG9Iw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 190907.0, \"color\": \"#99ef99\", \"hover\": \"190907.0\"}}, \"1MJAGHkRmHjVpBC7NB7BIw\": {\"metadata\": {\"community_id\": 257, \"customer_id\": 94986.0, \"color\": \"#b68efb\", \"hover\": \"94986.0\"}}, \"VquO/JxvftDOEyHTE9vJIw\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 180984.0, \"color\": \"#e4f354\", \"hover\": \"180984.0\"}}, \"t77LdnOEMwCHq0DUADjMIw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 84174.0, \"color\": \"#99b5fc\", \"hover\": \"84174.0\"}}, \"yuiCkTk2AGHm5mClyk3kIw\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 50910.0, \"color\": \"#48d68f\", \"hover\": \"50910.0\"}}, \"jzNaSu+T3Qs82/UlWxzpIw\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 153685.0, \"color\": \"#f8a36c\", \"hover\": \"153685.0\"}}, \"4amTqPDVM2qaCvJkvE3wIw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 125778.0, \"color\": \"#b58c2b\", \"hover\": \"125778.0\"}}, \"ay/j/DZdTWf6cqT9NS7xIw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 35230.0, \"color\": \"#4b2fa5\", \"hover\": \"35230.0\"}}, \"LL8e5mPC9uISxEF+S2UEJA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 54726.0, \"color\": \"#31ab2f\", \"hover\": \"54726.0\"}}, \"0dAKUfUWMi8+E9dg5TAQJA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 126303.0, \"color\": \"#b70fc0\", \"hover\": \"126303.0\"}}, \"rTFzCPICA7CFFNNB+iYpJA\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 20509.0, \"color\": \"#be821d\", \"hover\": \"20509.0\"}}, \"FUxstvtv/+rU5Dh+tstgJA\": {\"metadata\": {\"community_id\": 260, \"customer_id\": 1986.0, \"color\": \"#b344d3\", \"hover\": \"1986.0\"}}, \"Vxb+qrdroK3Yt3RC7EJnJA\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 102679.0, \"color\": \"#29f3a8\", \"hover\": \"102679.0\"}}, \"YB0LA09nHexQq8yaL6RqJA\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 111008.0, \"color\": \"#a6c704\", \"hover\": \"111008.0\"}}, \"r570zqahkepxsh2eoJ5/JA\": {\"metadata\": {\"community_id\": 262, \"customer_id\": 180377.0, \"color\": \"#8a31a3\", \"hover\": \"180377.0\"}}, \"mp5eORPy8RbLiLTmHwiLJA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 194557.0, \"color\": \"#d8dd94\", \"hover\": \"194557.0\"}}, \"oetHm4+G1SvJebQE4pyfJA\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 191540.0, \"color\": \"#c05c10\", \"hover\": \"191540.0\"}}, \"YK6pX5qLtyizeuChPu6rJA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 10915.0, \"color\": \"#6bdba1\", \"hover\": \"10915.0\"}}, \"2UD2PaViHF8ssFnmB6i1JA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 111399.0, \"color\": \"#b70fc0\", \"hover\": \"111399.0\"}}, \"OrBRfCSfh8JjEK1NoKq2JA\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 133235.0, \"color\": \"#8cf43c\", \"hover\": \"133235.0\"}}, \"rLQYxyqes6lU2yi9m0LyJA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 147689.0, \"color\": \"#f8a36c\", \"hover\": \"147689.0\"}}, \"G3IPKxmXRobhVHi5Axf6JA\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 124096.0, \"color\": \"#40fd29\", \"hover\": \"124096.0\"}}, \"Y84rzA1oQbbFi71z+Qn7JA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 177742.0, \"color\": \"#c12abd\", \"hover\": \"177742.0\"}}, \"uwZmfCzbbNDnrsxq9S4EJQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 108082.0, \"color\": \"#c12abd\", \"hover\": \"108082.0\"}}, \"fVKL4EddhfGDpPg7OR8RJQ\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 84946.0, \"color\": \"#1807f2\", \"hover\": \"84946.0\"}}, \"Ljvza8Y1bpL3EvLFOqkYJQ\": {\"metadata\": {\"community_id\": 263, \"customer_id\": 58566.0, \"color\": \"#e47c2c\", \"hover\": \"58566.0\"}}, \"EafAcCecfOXmVtdb/5oeJQ\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 169843.0, \"color\": \"#7bfa46\", \"hover\": \"169843.0\"}}, \"EJdvqKwmYlAS+Xm8bKRbJQ\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 82649.0, \"color\": \"#2aee21\", \"hover\": \"82649.0\"}}, \"mQJRFdwXYiEx8QpcJ3BhJQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 123918.0, \"color\": \"#272dca\", \"hover\": \"123918.0\"}}, \"AgyaMoHm6GHD7OTM7tdmJQ\": {\"metadata\": {\"community_id\": 266, \"customer_id\": 100058.0, \"color\": \"#6bc6f1\", \"hover\": \"100058.0\"}}, \"0wVgJQ8f3+v7juEd6iN8JQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 159445.0, \"color\": \"#d2ab67\", \"hover\": \"159445.0\"}}, \"9O1Kb43wxyJilyoZOe+EJQ\": {\"metadata\": {\"community_id\": 267, \"customer_id\": 6274.0, \"color\": \"#f5fa0c\", \"hover\": \"6274.0\"}}, \"CJ2M5IpExMq2lCjRAo2IJQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 52628.0, \"color\": \"#33b9bc\", \"hover\": \"52628.0\"}}, \"eKrbGVwxXslFk7tfTUidJQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 72225.0, \"color\": \"#10d82f\", \"hover\": \"72225.0\"}}, \"4g680cdUyORUJQPIIrvZJQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 94311.0, \"color\": \"#f8a36c\", \"hover\": \"94311.0\"}}, \"5DY6eHZJSWEo3oBtSU/dJQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 123170.0, \"color\": \"#a372d3\", \"hover\": \"123170.0\"}}, \"f0ZqIe9yBU4CTmvpdjn6JQ\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 185158.0, \"color\": \"#25a9a6\", \"hover\": \"185158.0\"}}, \"2lyFL4MZm9NN+aGet2M8Jg\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 37842.0, \"color\": \"#e4a1a2\", \"hover\": \"37842.0\"}}, \"x+e1f4UgQ10sORXUS0Q9Jg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 23029.0, \"color\": \"#1bd89a\", \"hover\": \"23029.0\"}}, \"ma5WzktOIRb2JmWJZwlEJg\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 106599.0, \"color\": \"#f3585b\", \"hover\": \"106599.0\"}}, \"+ukLSirK9Uz5XpuYpv9NJg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 69540.0, \"color\": \"#1bd89a\", \"hover\": \"69540.0\"}}, \"8LYpRks5YYQzVzoyQElSJg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 82963.0, \"color\": \"#2795b1\", \"hover\": \"82963.0\"}}, \"nAE3Iupt5EKxe3NeMz1aJg\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 60367.0, \"color\": \"#b1afe7\", \"hover\": \"60367.0\"}}, \"foxuEhGkEcv65q+C8blnJg\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 172027.0, \"color\": \"#5f53f0\", \"hover\": \"172027.0\"}}, \"il07b2ar2edXerhF1SttJg\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 30934.0, \"color\": \"#c1351e\", \"hover\": \"30934.0\"}}, \"jJ27Mbj4eUDidX1sAM9xJg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 45380.0, \"color\": \"#33b9bc\", \"hover\": \"45380.0\"}}, \"YyTqT6rBjf31jnAhbMJ1Jg\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 71604.0, \"color\": \"#c95b7f\", \"hover\": \"71604.0\"}}, \"ZT9+HaQ7EKCU9tgMRIiOJg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 87060.0, \"color\": \"#a372d3\", \"hover\": \"87060.0\"}}, \"HjKIWAxyw5ZDmfV2FRGgJg\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 77743.0, \"color\": \"#b896fe\", \"hover\": \"77743.0\"}}, \"ZpDdANbVisicDILeVLelJg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 179144.0, \"color\": \"#1bd89a\", \"hover\": \"179144.0\"}}, \"yIb+coN9LF9f+cIPj6+sJg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 11010.0, \"color\": \"#99b5fc\", \"hover\": \"11010.0\"}}, \"b3mYkaG76yXTbJpqkNq4Jg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 173535.0, \"color\": \"#2795b1\", \"hover\": \"173535.0\"}}, \"aLzg8ciVdKB4AnwO7AnNJg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 192354.0, \"color\": \"#99b5fc\", \"hover\": \"192354.0\"}}, \"IO3g2MwcyRgMWLIiPvDNJg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 77632.0, \"color\": \"#10d82f\", \"hover\": \"77632.0\"}}, \"jD2au3yiXlaWJnqGxkfkJg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 50168.0, \"color\": \"#2f82a1\", \"hover\": \"50168.0\"}}, \"eLFnutYUBbSaocV3w9P+Jg\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 116907.0, \"color\": \"#4b2fa5\", \"hover\": \"116907.0\"}}, \"yedb80Fwh6vLYA7MQBULJw\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 127614.0, \"color\": \"#f27280\", \"hover\": \"127614.0\"}}, \"8ec1JUzxjNL2uv25lY0xJw\": {\"metadata\": {\"community_id\": 271, \"customer_id\": 190887.0, \"color\": \"#52aadb\", \"hover\": \"190887.0\"}}, \"0G6punNxpIrXDMozaIw8Jw\": {\"metadata\": {\"community_id\": 272, \"customer_id\": 154193.0, \"color\": \"#b4bc10\", \"hover\": \"154193.0\"}}, \"QZOuiPvOdXLf0ipjpdZYJw\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 181938.0, \"color\": \"#e1aa5b\", \"hover\": \"181938.0\"}}, \"0XjQtad182c9lBYCcGV0Jw\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 198622.0, \"color\": \"#c830c7\", \"hover\": \"198622.0\"}}, \"W0nU23eN5tbdtlnxiPeyJw\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 148653.0, \"color\": \"#cf4ceb\", \"hover\": \"148653.0\"}}, \"PIdgmaizGZMoimTTuaXXJw\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 166089.0, \"color\": \"#511fd0\", \"hover\": \"166089.0\"}}, \"jMWqeq52If22Wh9PvQXaJw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 24832.0, \"color\": \"#4dcbac\", \"hover\": \"24832.0\"}}, \"Dubx0iEFkoMEvZDOOBcHKA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 176748.0, \"color\": \"#99b5fc\", \"hover\": \"176748.0\"}}, \"Bf47983ITZjl1tQpD7wJKA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 148967.0, \"color\": \"#d8dd94\", \"hover\": \"148967.0\"}}, \"0wrfmRz0bC4DiMMMjONHKA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 15333.0, \"color\": \"#b70fc0\", \"hover\": \"15333.0\"}}, \"VUm+A7X8eh0YdMFfZAhOKA\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 141362.0, \"color\": \"#e493a3\", \"hover\": \"141362.0\"}}, \"6xcSc7RWzxobCUZccCVzKA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 32588.0, \"color\": \"#78e968\", \"hover\": \"32588.0\"}}, \"DkeGauT8R8raKKUqw+qMKA\": {\"metadata\": {\"community_id\": 277, \"customer_id\": 123421.0, \"color\": \"#8ec8ec\", \"hover\": \"123421.0\"}}, \"G/kLdeAVerSIy1b0YS6PKA\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 197518.0, \"color\": \"#f6bf7b\", \"hover\": \"197518.0\"}}, \"LqjvcaTtiAIN4NXPRWqTKA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 142885.0, \"color\": \"#2795b1\", \"hover\": \"142885.0\"}}, \"in+YJvsOojXHH/Ob/Y2jKA\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 94619.0, \"color\": \"#a2b81a\", \"hover\": \"94619.0\"}}, \"iT8BNOTgOOsmg9/VThq0KA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 83223.0, \"color\": \"#99b5fc\", \"hover\": \"83223.0\"}}, \"KMEoeG0uw8FmOZpGW4S/KA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 147698.0, \"color\": \"#62fab8\", \"hover\": \"147698.0\"}}, \"wMcXwM/zQkUlZqpnLZzLKA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 14193.0, \"color\": \"#272dca\", \"hover\": \"14193.0\"}}, \"wA5CI2W0VKI1hEG1273UKA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 53097.0, \"color\": \"#81a8e3\", \"hover\": \"53097.0\"}}, \"K4GUwmOSE5EwoXkl6ifZKA\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 169655.0, \"color\": \"#67d2f9\", \"hover\": \"169655.0\"}}, \"ZkWd9g1H/KU363ma8jTeKA\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 39765.0, \"color\": \"#3c74fc\", \"hover\": \"39765.0\"}}, \"pNzciMw4meySKnwq5PrtKA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 138653.0, \"color\": \"#10d82f\", \"hover\": \"138653.0\"}}, \"iLaCIH3YHmDW8gCcgzHyKA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 169723.0, \"color\": \"#33b9bc\", \"hover\": \"169723.0\"}}, \"JvGAyyIDfzEvsCkSWPoZKQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 85417.0, \"color\": \"#c12abd\", \"hover\": \"85417.0\"}}, \"scCQ4EkEpjBP4kcbwAYeKQ\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 169599.0, \"color\": \"#0cd5fa\", \"hover\": \"169599.0\"}}, \"3E5FvfHnZOL7RkNiaiowKQ\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 61562.0, \"color\": \"#974bf4\", \"hover\": \"61562.0\"}}, \"k6uUP8gx74Dn1kQ5Q4I0KQ\": {\"metadata\": {\"community_id\": 279, \"customer_id\": 12873.0, \"color\": \"#73b2ef\", \"hover\": \"12873.0\"}}, \"cxmtn2AvCTzQcgJUg/JMKQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 27675.0, \"color\": \"#33b9bc\", \"hover\": \"27675.0\"}}, \"UBC/nd1zjAQ+97PFb05iKQ\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 125620.0, \"color\": \"#b21c5c\", \"hover\": \"125620.0\"}}, \"kejqF7PNFiVj0UUItLSbKQ\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 167132.0, \"color\": \"#f155a7\", \"hover\": \"167132.0\"}}, \"2126Ui5KZ62zr+niVdOrKQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 93251.0, \"color\": \"#99b5fc\", \"hover\": \"93251.0\"}}, \"HwgiKjwo1WqhyzyKSibIKQ\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 76906.0, \"color\": \"#d6f98a\", \"hover\": \"76906.0\"}}, \"+7yOA0qi+lD/BcsfzFjNKQ\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 65585.0, \"color\": \"#185cd8\", \"hover\": \"65585.0\"}}, \"5998ToEfo0L8YaszINfSKQ\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 159177.0, \"color\": \"#8ceceb\", \"hover\": \"159177.0\"}}, \"MXZNIAJ67ll379Nk+0n/KQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 72036.0, \"color\": \"#f6a0ef\", \"hover\": \"72036.0\"}}, \"3zEvoHEuEfGdg42FaZwNKg\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 193388.0, \"color\": \"#f31347\", \"hover\": \"193388.0\"}}, \"/4ACyr77rb+9baaVrT4iKg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 108581.0, \"color\": \"#2795b1\", \"hover\": \"108581.0\"}}, \"iFSG61RwkUqV0uuBHuopKg\": {\"metadata\": {\"community_id\": 224, \"customer_id\": 122734.0, \"color\": \"#5ae3c6\", \"hover\": \"122734.0\"}}, \"hLcKVFSDYzYhd3ukkH4rKg\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 35467.0, \"color\": \"#ab25a7\", \"hover\": \"35467.0\"}}, \"e4ROZ13ccxz2g26f45swKg\": {\"metadata\": {\"community_id\": 282, \"customer_id\": 137264.0, \"color\": \"#c05cf0\", \"hover\": \"137264.0\"}}, \"8n6srpqptj5FhuXzdPRNKg\": {\"metadata\": {\"community_id\": 283, \"customer_id\": 128223.0, \"color\": \"#f696af\", \"hover\": \"128223.0\"}}, \"0AV8XBG6I50yWsMa6N9pKg\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 16668.0, \"color\": \"#9bc430\", \"hover\": \"16668.0\"}}, \"i3MBq8W1fq88lPJPOWWDKg\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 94818.0, \"color\": \"#24d0d9\", \"hover\": \"94818.0\"}}, \"lBimwmPeqlrqfcBOBTWMKg\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 183076.0, \"color\": \"#e4f354\", \"hover\": \"183076.0\"}}, \"/19+KHblwik18G6UCCeQKg\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 55064.0, \"color\": \"#6acd09\", \"hover\": \"55064.0\"}}, \"7fjN0LsajQqPfVlvDEusKg\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 16935.0, \"color\": \"#d3da39\", \"hover\": \"16935.0\"}}, \"Ee+PzZHHk1pLNU6kTEnDKg\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 90819.0, \"color\": \"#33aac6\", \"hover\": \"90819.0\"}}, \"UU6wJSRbX+6ETKorOIDDKg\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 186377.0, \"color\": \"#dc1d4e\", \"hover\": \"186377.0\"}}, \"Cxa1mNdb+IH5+SvGvFzfKg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 116985.0, \"color\": \"#9ee08f\", \"hover\": \"116985.0\"}}, \"4OzUZqFa0qF+o6k0o3L/Kg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 27308.0, \"color\": \"#31ab2f\", \"hover\": \"27308.0\"}}, \"fMymeUFUsDkpl4syocYEKw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 194690.0, \"color\": \"#78e968\", \"hover\": \"194690.0\"}}, \"yHBDU4vBCfdsrU8X0BwMKw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 187062.0, \"color\": \"#1bd89a\", \"hover\": \"187062.0\"}}, \"KAKEOkFekajnA5P8iX0aKw\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 68348.0, \"color\": \"#11fc2e\", \"hover\": \"68348.0\"}}, \"jgf1Fvm43ANS9QKsAgIhKw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 76163.0, \"color\": \"#31ab2f\", \"hover\": \"76163.0\"}}, \"gONZ8FNFW+3XX1iIAp4hKw\": {\"metadata\": {\"community_id\": 20, \"customer_id\": 27147.0, \"color\": \"#11e6bf\", \"hover\": \"27147.0\"}}, \"oSOIcWuiSZPMHE5B5bBWKw\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 58935.0, \"color\": \"#8df20e\", \"hover\": \"58935.0\"}}, \"4HBQRQOTB6JvvuJWXm5vKw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 107893.0, \"color\": \"#272dca\", \"hover\": \"107893.0\"}}, \"hP1+cpOWd9uU9/r4Bl2dKw\": {\"metadata\": {\"community_id\": 287, \"customer_id\": 16806.0, \"color\": \"#28f3cb\", \"hover\": \"16806.0\"}}, \"pVlR0mvxmhXylIv/NOu8Kw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 145593.0, \"color\": \"#a6c704\", \"hover\": \"145593.0\"}}, \"zk77BSjWg14792evZRPLKw\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 49948.0, \"color\": \"#a7d52c\", \"hover\": \"49948.0\"}}, \"rWlJxrA/s72KH2o1oRTzKw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 197957.0, \"color\": \"#e0b23c\", \"hover\": \"197957.0\"}}, \"M8HxGRFCNypXwF/eIsH6Kw\": {\"metadata\": {\"community_id\": 289, \"customer_id\": 44099.0, \"color\": \"#5e77ec\", \"hover\": \"44099.0\"}}, \"VdfALO0gD1XZVZq4asFDLA\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 122589.0, \"color\": \"#67d2f9\", \"hover\": \"122589.0\"}}, \"A6Lm5QBypgDp8HuoTthILA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 114548.0, \"color\": \"#32bc93\", \"hover\": \"114548.0\"}}, \"9eRCLSKhdRxkjv0juzJPLA\": {\"metadata\": {\"community_id\": 290, \"customer_id\": 164696.0, \"color\": \"#80dea8\", \"hover\": \"164696.0\"}}, \"j7rR44Lsi82gyHRfHndPLA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 22819.0, \"color\": \"#33b9bc\", \"hover\": \"22819.0\"}}, \"pfshJY0SJSdlynrp5SpwLA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 11989.0, \"color\": \"#99b5fc\", \"hover\": \"11989.0\"}}, \"FcmC8FNud2LgsDFUfpN/LA\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 20649.0, \"color\": \"#a3b818\", \"hover\": \"20649.0\"}}, \"fgX7ya7V38qk7fE9/baWLA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 81775.0, \"color\": \"#2795b1\", \"hover\": \"81775.0\"}}, \"1YhAPzeWqGXyj0MJwKm5LA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 108241.0, \"color\": \"#e4f354\", \"hover\": \"108241.0\"}}, \"zcgO0wKMPX9rwh9b4B7XLA\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 192993.0, \"color\": \"#8ceceb\", \"hover\": \"192993.0\"}}, \"HrocpK+R2Xbz1ur0/JLxLA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 177583.0, \"color\": \"#0d14dc\", \"hover\": \"177583.0\"}}, \"jjcuIH+Rb4ZSTVL5/BcYLQ\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 190828.0, \"color\": \"#5937d3\", \"hover\": \"190828.0\"}}, \"b8xddkkcHYN8w22fuuUcLQ\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 19726.0, \"color\": \"#ed1e1d\", \"hover\": \"19726.0\"}}, \"3JF5d44TiQe135KITj8gLQ\": {\"metadata\": {\"community_id\": 292, \"customer_id\": 37880.0, \"color\": \"#cfafe6\", \"hover\": \"37880.0\"}}, \"IDGncZABpx7Dz7CreKwpLQ\": {\"metadata\": {\"community_id\": 293, \"customer_id\": 114683.0, \"color\": \"#fa90aa\", \"hover\": \"114683.0\"}}, \"CtDI2Ydifk/J2l6kEfI2LQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 177285.0, \"color\": \"#45f210\", \"hover\": \"177285.0\"}}, \"+abHxnRqRfh1nZS42+ZlLQ\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 63459.0, \"color\": \"#f3585b\", \"hover\": \"63459.0\"}}, \"hBaIymmn7uUX5Xp9RkaDLQ\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 62222.0, \"color\": \"#c95b7f\", \"hover\": \"62222.0\"}}, \"p6f1uKYuioXHNdpVxiiLLQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 101346.0, \"color\": \"#1bd89a\", \"hover\": \"101346.0\"}}, \"GN80cgRQzi3/LJyYVI2mLQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 97454.0, \"color\": \"#f6a0ef\", \"hover\": \"97454.0\"}}, \"laa31xOWPxkSz2RmR/OzLQ\": {\"metadata\": {\"community_id\": 294, \"customer_id\": 46529.0, \"color\": \"#bd10b4\", \"hover\": \"46529.0\"}}, \"eEtdS1uf44YPM0aRYMu2LQ\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 61394.0, \"color\": \"#d6b552\", \"hover\": \"61394.0\"}}, \"4ANIk4A9ljxROfdROPu4LQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 24332.0, \"color\": \"#32bc93\", \"hover\": \"24332.0\"}}, \"1dkRbCWZ/SjfQ1T81WrCLQ\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 172993.0, \"color\": \"#e0b23c\", \"hover\": \"172993.0\"}}, \"EeLZzQRqDNrmxT6Ry8jILQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 35079.0, \"color\": \"#a372d3\", \"hover\": \"35079.0\"}}, \"lotyYjcXgKfDBSZvdowGLg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 85132.0, \"color\": \"#f8a36c\", \"hover\": \"85132.0\"}}, \"9u9ObBHw0ZkLEIYDSjgPLg\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 76589.0, \"color\": \"#b6f88d\", \"hover\": \"76589.0\"}}, \"3gslUUOyf0AwJz5K9OMXLg\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 121373.0, \"color\": \"#be24cb\", \"hover\": \"121373.0\"}}, \"+x+3cuNFE2sMEo+dTzgtLg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 52652.0, \"color\": \"#33b9bc\", \"hover\": \"52652.0\"}}, \"foxrIAy0Xhl38FjWCJAvLg\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 169425.0, \"color\": \"#e9d844\", \"hover\": \"169425.0\"}}, \"SFALSDMtSkulgxrvfj4+Lg\": {\"metadata\": {\"community_id\": 298, \"customer_id\": 149573.0, \"color\": \"#5838b6\", \"hover\": \"149573.0\"}}, \"H8ospugtmYNAXA/jIiE/Lg\": {\"metadata\": {\"community_id\": 254, \"customer_id\": 40529.0, \"color\": \"#7c69d9\", \"hover\": \"40529.0\"}}, \"eyAGwsikTSRHjosKLqBeLg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 5776.0, \"color\": \"#c12abd\", \"hover\": \"5776.0\"}}, \"qAd6USNyWqskG4vch3uqLg\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 143808.0, \"color\": \"#e3a953\", \"hover\": \"143808.0\"}}, \"fc6IFrUFydQMo2hfHcOqLg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 27697.0, \"color\": \"#b58c2b\", \"hover\": \"27697.0\"}}, \"VGKshU5bzIdPYiX940SwLg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 195691.0, \"color\": \"#9a62ce\", \"hover\": \"195691.0\"}}, \"YhGi57jZutouXnsH9GfHLg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 11691.0, \"color\": \"#62fab8\", \"hover\": \"11691.0\"}}, \"5Of74SG9/W96DpqLkPXKLg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 55923.0, \"color\": \"#62fab8\", \"hover\": \"55923.0\"}}, \"y3Vmos9YspAQxCoqI6LuLg\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 139043.0, \"color\": \"#81a8e3\", \"hover\": \"139043.0\"}}, \"+frVo3muv6V06M/IKtzvLg\": {\"metadata\": {\"community_id\": 119, \"customer_id\": 105897.0, \"color\": \"#77c146\", \"hover\": \"105897.0\"}}, \"1Oon+nAU+Py1QICO0rL3Lg\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 63737.0, \"color\": \"#f7fb87\", \"hover\": \"63737.0\"}}, \"VARfV1bcE8iSgeX/DUgDLw\": {\"metadata\": {\"community_id\": 300, \"customer_id\": 77216.0, \"color\": \"#35db90\", \"hover\": \"77216.0\"}}, \"7pOwWLDQjqEZj812MoIMLw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 125392.0, \"color\": \"#32bc93\", \"hover\": \"125392.0\"}}, \"mrh7Q4e4jyxYkrYaHRIrLw\": {\"metadata\": {\"community_id\": 184, \"customer_id\": 184761.0, \"color\": \"#3554d0\", \"hover\": \"184761.0\"}}, \"wIe8AMmvGoVrHsQaNupMLw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 160041.0, \"color\": \"#e0b23c\", \"hover\": \"160041.0\"}}, \"RnBcJDQA/ghDLQ6v3nxjLw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 59448.0, \"color\": \"#31ab2f\", \"hover\": \"59448.0\"}}, \"hk5NHur/fG7YKEZ7C3poLw\": {\"metadata\": {\"community_id\": 301, \"customer_id\": 196285.0, \"color\": \"#cb08e0\", \"hover\": \"196285.0\"}}, \"oRsK7fnKlgVc1w5M9v2PLw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 36033.0, \"color\": \"#78e968\", \"hover\": \"36033.0\"}}, \"9rFAyGveDQdoTcKZUAqYLw\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 171788.0, \"color\": \"#b84038\", \"hover\": \"171788.0\"}}, \"deq3qSOiknCWsbVMWkjFLw\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 81879.0, \"color\": \"#25a9a6\", \"hover\": \"81879.0\"}}, \"qhjwK5yVFJXceVtxx9ARMA\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 171176.0, \"color\": \"#511fd0\", \"hover\": \"171176.0\"}}, \"QTNx6oL4X1f9yslPIOEfMA\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 13328.0, \"color\": \"#1bc070\", \"hover\": \"13328.0\"}}, \"E+2Xq5DDpUlkLdDvBpM6MA\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 181989.0, \"color\": \"#38cb21\", \"hover\": \"181989.0\"}}, \"Yo27tV3GL1QlPVO9Xgs8MA\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 43336.0, \"color\": \"#75fa8b\", \"hover\": \"43336.0\"}}, \"c1kd2WQP6EnqnEHUyx5AMA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 54418.0, \"color\": \"#62fab8\", \"hover\": \"54418.0\"}}, \"118lQL1ttP5xuIWkGz5JMA\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 95037.0, \"color\": \"#e5e372\", \"hover\": \"95037.0\"}}, \"T6DOy1T+b+BR6BskRAVMMA\": {\"metadata\": {\"community_id\": 307, \"customer_id\": 137911.0, \"color\": \"#995acd\", \"hover\": \"137911.0\"}}, \"4zizU9T3lsrxZyVd95tuMA\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 100441.0, \"color\": \"#b6f88d\", \"hover\": \"100441.0\"}}, \"+dvhAHBxRpcc3JD0l919MA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 144911.0, \"color\": \"#1bd89a\", \"hover\": \"144911.0\"}}, \"yUy3v6dGwda6RCUo5/KBMA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 85288.0, \"color\": \"#62fab8\", \"hover\": \"85288.0\"}}, \"ihRDb579O7VarQ0579yJMA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 101408.0, \"color\": \"#99ef99\", \"hover\": \"101408.0\"}}, \"TLWNjDgOrmFv4k8NQe+wMA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 34076.0, \"color\": \"#0d14dc\", \"hover\": \"34076.0\"}}, \"sgu2BdeSWV91ulWfcnHRMA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 177937.0, \"color\": \"#272dca\", \"hover\": \"177937.0\"}}, \"XWuOWtv1rRFGAv36ULTZMA\": {\"metadata\": {\"community_id\": 308, \"customer_id\": 40283.0, \"color\": \"#af86d6\", \"hover\": \"40283.0\"}}, \"TRMbN56JfWQj7mhdiELdMA\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 91111.0, \"color\": \"#4bdb47\", \"hover\": \"91111.0\"}}, \"QFKPk5ErCFl9tR5YYp31MA\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 145611.0, \"color\": \"#1e5cf7\", \"hover\": \"145611.0\"}}, \"eJYBaXb15Ay5PIUOGzwCMQ\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 133589.0, \"color\": \"#9e78f3\", \"hover\": \"133589.0\"}}, \"MVgPo1NwXZR+BngAq2QfMQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 187818.0, \"color\": \"#99ef99\", \"hover\": \"187818.0\"}}, \"GjYyHz4ObV6kmsjcMvQfMQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 46086.0, \"color\": \"#45f210\", \"hover\": \"46086.0\"}}, \"GJ//Aso190vpgiSuCMInMQ\": {\"metadata\": {\"community_id\": 310, \"customer_id\": 36448.0, \"color\": \"#89f08b\", \"hover\": \"36448.0\"}}, \"uUCzjxRkoKiyOiDmn6dJMQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 153294.0, \"color\": \"#1bd89a\", \"hover\": \"153294.0\"}}, \"VJ4miKmv2dvTOUuQo0FiMQ\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 148909.0, \"color\": \"#b5cd2e\", \"hover\": \"148909.0\"}}, \"UZ6y6lAusJZ6T6c1pzhxMQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 85635.0, \"color\": \"#a372d3\", \"hover\": \"85635.0\"}}, \"6HKS535LPpWhKpn2J6ajMQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 8424.0, \"color\": \"#272dca\", \"hover\": \"8424.0\"}}, \"zbj5HceitgxNgyxaCXK2MQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 30365.0, \"color\": \"#32bc93\", \"hover\": \"30365.0\"}}, \"Wk1nG7TWHHrjkW5jCMm2MQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 24622.0, \"color\": \"#99ef99\", \"hover\": \"24622.0\"}}, \"8M3rhKck0REhSjpNtC7YMQ\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 49941.0, \"color\": \"#e6dab1\", \"hover\": \"49941.0\"}}, \"xrJ3jQNVEYLKSG2wsIVQMg\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 167087.0, \"color\": \"#0cd5fa\", \"hover\": \"167087.0\"}}, \"E5RFxFLm0rwucZ8uZNlUMg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 44254.0, \"color\": \"#b58c2b\", \"hover\": \"44254.0\"}}, \"fwR6mM3NYfCOhSS0Vj1bMg\": {\"metadata\": {\"community_id\": 313, \"customer_id\": 154053.0, \"color\": \"#73ee57\", \"hover\": \"154053.0\"}}, \"l7I3lB3cXywY3HXs1bt9Mg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 138871.0, \"color\": \"#10d82f\", \"hover\": \"138871.0\"}}, \"3pLi4d+RCLq4lC3A772EMg\": {\"metadata\": {\"community_id\": 314, \"customer_id\": 107052.0, \"color\": \"#f0fb3c\", \"hover\": \"107052.0\"}}, \"yP6QOObDsAHs1VjRToyUMg\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 12455.0, \"color\": \"#a7e29b\", \"hover\": \"12455.0\"}}, \"pgCefxI2zE0FtD8nu6O0Mg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 68061.0, \"color\": \"#78e968\", \"hover\": \"68061.0\"}}, \"fNb6tc/91t7GAC/jctvKMg\": {\"metadata\": {\"community_id\": 316, \"customer_id\": 46931.0, \"color\": \"#de81b7\", \"hover\": \"46931.0\"}}, \"mmZH8gVBkIsf/WBYN3zaMg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 65413.0, \"color\": \"#0d14dc\", \"hover\": \"65413.0\"}}, \"zqCo80r14M+NVkN22VzcMg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 13113.0, \"color\": \"#99ef99\", \"hover\": \"13113.0\"}}, \"nYvgrk6azMPgtq4Gr5vcMg\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 80756.0, \"color\": \"#6acd09\", \"hover\": \"80756.0\"}}, \"M4N56iTz6LyhT1VwgSjoMg\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 102783.0, \"color\": \"#7d28ad\", \"hover\": \"102783.0\"}}, \"JBXEywy8jAIFIaaiea3oMg\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 170921.0, \"color\": \"#27b4b4\", \"hover\": \"170921.0\"}}, \"93f7IAVfiVHO+9CK8tAGMw\": {\"metadata\": {\"community_id\": 319, \"customer_id\": 20384.0, \"color\": \"#66d542\", \"hover\": \"20384.0\"}}, \"TkGzF0VtFvMZR00o+IYWMw\": {\"metadata\": {\"community_id\": 234, \"customer_id\": 59945.0, \"color\": \"#41f793\", \"hover\": \"59945.0\"}}, \"J7Ke/4dKti+GVxib2RxLMw\": {\"metadata\": {\"community_id\": 320, \"customer_id\": 191687.0, \"color\": \"#a4f59b\", \"hover\": \"191687.0\"}}, \"OrtYZ7zSrgx1JQwhYidPMw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 9862.0, \"color\": \"#62fab8\", \"hover\": \"9862.0\"}}, \"+NTLg1n/OAp1T/gBz+hZMw\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 105689.0, \"color\": \"#b896fe\", \"hover\": \"105689.0\"}}, \"49SU9wSH7GHxDjHGMs+yMw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 145511.0, \"color\": \"#b58c2b\", \"hover\": \"145511.0\"}}, \"rzFcxkmo/fUZ0TWEtvO2Mw\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 130845.0, \"color\": \"#e7419d\", \"hover\": \"130845.0\"}}, \"dfhJNnLn2T6N+DAzlIfGMw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 63049.0, \"color\": \"#10d82f\", \"hover\": \"63049.0\"}}, \"6OdEhQQhOWIlGA0ODNLMMw\": {\"metadata\": {\"community_id\": 209, \"customer_id\": 26833.0, \"color\": \"#f86ba7\", \"hover\": \"26833.0\"}}, \"MjI0xmfXGfCgfcHMPbDaMw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 2548.0, \"color\": \"#d6b552\", \"hover\": \"2548.0\"}}, \"dtYtPCCrTanY+AdLfGTzMw\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 57930.0, \"color\": \"#22b27d\", \"hover\": \"57930.0\"}}, \"QrdDL6JUD44vKE1FU/wgNA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 154133.0, \"color\": \"#33b9bc\", \"hover\": \"154133.0\"}}, \"Zh+0dGB/2opkTTQr5085NA\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 10731.0, \"color\": \"#d9480a\", \"hover\": \"10731.0\"}}, \"ouCOwW/QrzKxPCVjsHI6NA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 51363.0, \"color\": \"#d16060\", \"hover\": \"51363.0\"}}, \"Qcsa0of7TxrhoWN0jPxeNA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 40451.0, \"color\": \"#99b5fc\", \"hover\": \"40451.0\"}}, \"VZV+c0obhQy70SOsyW5vNA\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 93864.0, \"color\": \"#08dbec\", \"hover\": \"93864.0\"}}, \"kmTGPRz2k0yUZKHmEjiKNA\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 199328.0, \"color\": \"#511fd0\", \"hover\": \"199328.0\"}}, \"z8HESHrmU9pp0w+KLN2NNA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 24509.0, \"color\": \"#b70fc0\", \"hover\": \"24509.0\"}}, \"MZv1gsgN9o3VF/brc9GUNA\": {\"metadata\": {\"community_id\": 324, \"customer_id\": 182028.0, \"color\": \"#7ae9e9\", \"hover\": \"182028.0\"}}, \"TETkfceYjomyctQgahadNA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 73451.0, \"color\": \"#62fab8\", \"hover\": \"73451.0\"}}, \"KMleOwgXGNplcmZFeNWjNA\": {\"metadata\": {\"community_id\": 325, \"customer_id\": 72868.0, \"color\": \"#fb918f\", \"hover\": \"72868.0\"}}, \"yt8+YJQAZqCKOf5cVKWlNA\": {\"metadata\": {\"community_id\": 326, \"customer_id\": 11733.0, \"color\": \"#f7c28c\", \"hover\": \"11733.0\"}}, \"K1/A/RTcPKClvEGG70qqNA\": {\"metadata\": {\"community_id\": 52, \"customer_id\": 57559.0, \"color\": \"#abecde\", \"hover\": \"57559.0\"}}, \"d7cfpeFTwYWLuU7WK5u8NA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 198776.0, \"color\": \"#c12abd\", \"hover\": \"198776.0\"}}, \"vLFjoEu+CQIXNXB3XvnINA\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 18456.0, \"color\": \"#31e037\", \"hover\": \"18456.0\"}}, \"HbngqRZ1/oSZb7WR1lnUNA\": {\"metadata\": {\"community_id\": 272, \"customer_id\": 109486.0, \"color\": \"#b4bc10\", \"hover\": \"109486.0\"}}, \"zvGeU+VcJmW6QjWCy7rXNA\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 177346.0, \"color\": \"#08cad9\", \"hover\": \"177346.0\"}}, \"f24Xi8c/0Fdxk2+NzM7jNA\": {\"metadata\": {\"community_id\": 328, \"customer_id\": 140023.0, \"color\": \"#c7596d\", \"hover\": \"140023.0\"}}, \"rzJUaPiHt2NUPHoWWCfuNA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 52484.0, \"color\": \"#5dca06\", \"hover\": \"52484.0\"}}, \"Geq3alYhTi8s1rs4KRQkNQ\": {\"metadata\": {\"community_id\": 330, \"customer_id\": 48212.0, \"color\": \"#85bcfc\", \"hover\": \"48212.0\"}}, \"7Jz2tWyndpnXhKTatCg0NQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 144722.0, \"color\": \"#dcc694\", \"hover\": \"144722.0\"}}, \"PI1Us3jqDlTa6XXAUUM2NQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 133386.0, \"color\": \"#33b9bc\", \"hover\": \"133386.0\"}}, \"GzbwEpelVBu6aiwYm+Q7NQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 184003.0, \"color\": \"#b3df71\", \"hover\": \"184003.0\"}}, \"vcGMItDb18P4MiqQtBg9NQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 112482.0, \"color\": \"#9ee08f\", \"hover\": \"112482.0\"}}, \"VW/3wn1Ua34HQooLnX2bNQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 164845.0, \"color\": \"#7eddd4\", \"hover\": \"164845.0\"}}, \"y1ddPhWn8OawoC33VNunNQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 150742.0, \"color\": \"#9ee08f\", \"hover\": \"150742.0\"}}, \"wivzWNqrkkl8zEKhr6mwNQ\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 165604.0, \"color\": \"#192dda\", \"hover\": \"165604.0\"}}, \"8l4iqTxQwu+5R2t40Ua0NQ\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 21339.0, \"color\": \"#c95b7f\", \"hover\": \"21339.0\"}}, \"aTd06n7GzqvPoy04Amm/NQ\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 196885.0, \"color\": \"#8b9ce4\", \"hover\": \"196885.0\"}}, \"FocYZ2czD2rOLZNlCDLhNQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 88415.0, \"color\": \"#eba59b\", \"hover\": \"88415.0\"}}, \"GGG3GLyEkkn6TlX9FkYjNg\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 173132.0, \"color\": \"#58db13\", \"hover\": \"173132.0\"}}, \"+Rb0njpcOXDpaiJ6vmA4Ng\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 153019.0, \"color\": \"#32bc93\", \"hover\": \"153019.0\"}}, \"U3NKDsVT0UakD3a8oMZsNg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 145129.0, \"color\": \"#ae692e\", \"hover\": \"145129.0\"}}, \"yyo4QzO+toBAnp5zD/2MNg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 52472.0, \"color\": \"#62fab8\", \"hover\": \"52472.0\"}}, \"L8yNKzJqcqaVQqBU762QNg\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 35851.0, \"color\": \"#7a80f3\", \"hover\": \"35851.0\"}}, \"rXwmglMMZnc6Yf56zT6cNg\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 197829.0, \"color\": \"#6acd09\", \"hover\": \"197829.0\"}}, \"Ud/MzJXQJ6KFdZpM+gO1Ng\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 7731.0, \"color\": \"#8ceceb\", \"hover\": \"7731.0\"}}, \"o+1THDudDNgd5LeGu621Ng\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 29609.0, \"color\": \"#9ee08f\", \"hover\": \"29609.0\"}}, \"wlAJo/RlvognTYu62pnBNg\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 52453.0, \"color\": \"#e493a3\", \"hover\": \"52453.0\"}}, \"OI/ydWTogQ/yJqrsKqnXNg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 81319.0, \"color\": \"#33b9bc\", \"hover\": \"81319.0\"}}, \"0yaCMg5tnqv/eCXpc+syNw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 102025.0, \"color\": \"#7eddd4\", \"hover\": \"102025.0\"}}, \"blQQCVqfYrEIWYH4ZHQzNw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 74748.0, \"color\": \"#4bdb47\", \"hover\": \"74748.0\"}}, \"5Mnxw2ItqZFTnRcqOtQ/Nw\": {\"metadata\": {\"community_id\": 123, \"customer_id\": 66229.0, \"color\": \"#f2867f\", \"hover\": \"66229.0\"}}, \"Kd5jV4cKPchRaI9ODUGXNw\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 46729.0, \"color\": \"#a2b81a\", \"hover\": \"46729.0\"}}, \"JIIcZtdNc3gO1hbq4vDzNw\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 167973.0, \"color\": \"#14d13f\", \"hover\": \"167973.0\"}}, \"sIgfRFv7kfqGfRO0nED2Nw\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 147655.0, \"color\": \"#d53cea\", \"hover\": \"147655.0\"}}, \"u9tpxhNNcS/7dFt97stROA\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 58691.0, \"color\": \"#dbd839\", \"hover\": \"58691.0\"}}, \"7VxW5gODW0HzIt9IxfRVOA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 118794.0, \"color\": \"#10d82f\", \"hover\": \"118794.0\"}}, \"1yukRzWql92dVK/8H+xhOA\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 190031.0, \"color\": \"#fd72cc\", \"hover\": \"190031.0\"}}, \"eWoysQjmb1YXqETtx01uOA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 140251.0, \"color\": \"#99b5fc\", \"hover\": \"140251.0\"}}, \"WmX+Bd3+PspInoASh3GROA\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 132203.0, \"color\": \"#ab25a7\", \"hover\": \"132203.0\"}}, \"X9cbaOn+LnG2DAfiAe2aOA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 141968.0, \"color\": \"#b58c2b\", \"hover\": \"141968.0\"}}, \"HjbBXpRquXhoMGLikIGrOA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 31376.0, \"color\": \"#7eddd4\", \"hover\": \"31376.0\"}}, \"mrM4ROiVkGaCfKkD2OPCOA\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 88758.0, \"color\": \"#93c51c\", \"hover\": \"88758.0\"}}, \"ii3tszFdiAhbrHyv0f7DOA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 72630.0, \"color\": \"#eba59b\", \"hover\": \"72630.0\"}}, \"0ffo8htqDpK9tZnBD4THOA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 12274.0, \"color\": \"#b70fc0\", \"hover\": \"12274.0\"}}, \"4IorKL4CJGfv5Xy/10jaOA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 125331.0, \"color\": \"#62fab8\", \"hover\": \"125331.0\"}}, \"BpRR0QhEMrdljaEKAwDnOA\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 78722.0, \"color\": \"#d8c96d\", \"hover\": \"78722.0\"}}, \"jw3uDJbwqaXK2CElqcXwOA\": {\"metadata\": {\"community_id\": 227, \"customer_id\": 35575.0, \"color\": \"#d68d2b\", \"hover\": \"35575.0\"}}, \"XDch17TWpi6KnT3vVbMAOQ\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 109567.0, \"color\": \"#d53cea\", \"hover\": \"109567.0\"}}, \"hN89C2iTzaduKojIrKJAOQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 152799.0, \"color\": \"#32bc93\", \"hover\": \"152799.0\"}}, \"QFU2MEjXqNUYBodQv55IOQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 41409.0, \"color\": \"#10d82f\", \"hover\": \"41409.0\"}}, \"kVGEDdEcZATOkoKpVm9fOQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 102107.0, \"color\": \"#62fab8\", \"hover\": \"102107.0\"}}, \"TL5s/frCf3gd9X1oCJZ0OQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 82845.0, \"color\": \"#f8a36c\", \"hover\": \"82845.0\"}}, \"i3zgrHGhwU1ZCoHDBm6BOQ\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 149460.0, \"color\": \"#8b9ce4\", \"hover\": \"149460.0\"}}, \"f4qGvK6jVxaOQVXbKMmGOQ\": {\"metadata\": {\"community_id\": 335, \"customer_id\": 34308.0, \"color\": \"#79e4a6\", \"hover\": \"34308.0\"}}, \"DhizICH7mxQCp4zSzsSLOQ\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 82653.0, \"color\": \"#99f46c\", \"hover\": \"82653.0\"}}, \"7tbayrhcwEFuJlOLEUmPOQ\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 75886.0, \"color\": \"#e2d385\", \"hover\": \"75886.0\"}}, \"Ydq9OqivGkHhR4sOMxuSOQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 125983.0, \"color\": \"#272dca\", \"hover\": \"125983.0\"}}, \"U3CatnBWnxP2vm+b6lWnOQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 81293.0, \"color\": \"#b70fc0\", \"hover\": \"81293.0\"}}, \"sz1wpqB2jxUvK7682RnHOQ\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 26832.0, \"color\": \"#75fe54\", \"hover\": \"26832.0\"}}, \"VMHBJSbwjrpqQxe7xSHOOQ\": {\"metadata\": {\"community_id\": 338, \"customer_id\": 181984.0, \"color\": \"#2746c9\", \"hover\": \"181984.0\"}}, \"YKL0iF5OjEnX3U+aQiPxOQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 117453.0, \"color\": \"#5dca06\", \"hover\": \"117453.0\"}}, \"R20ccImKXtHGaosBHaEMOg\": {\"metadata\": {\"community_id\": 339, \"customer_id\": 25009.0, \"color\": \"#ceeea2\", \"hover\": \"25009.0\"}}, \"6z38xJT8PJ+OX2wGh3AZOg\": {\"metadata\": {\"community_id\": 277, \"customer_id\": 12113.0, \"color\": \"#8ec8ec\", \"hover\": \"12113.0\"}}, \"SDfPe+g+qKIRwCGUZ309Og\": {\"metadata\": {\"community_id\": 340, \"customer_id\": 69882.0, \"color\": \"#4d47e8\", \"hover\": \"69882.0\"}}, \"DVXpioDNFY1CEMdD0M1BOg\": {\"metadata\": {\"community_id\": 227, \"customer_id\": 77742.0, \"color\": \"#d68d2b\", \"hover\": \"77742.0\"}}, \"tBSpZbKt95ZOs+uKf3ZjOg\": {\"metadata\": {\"community_id\": 341, \"customer_id\": 92202.0, \"color\": \"#80f0ec\", \"hover\": \"92202.0\"}}, \"JTvwqLDX31+2hz07xl5yOg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 152084.0, \"color\": \"#99ef99\", \"hover\": \"152084.0\"}}, \"GrqrBuWDMZVbhSwmYox8Og\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 156681.0, \"color\": \"#48d68f\", \"hover\": \"156681.0\"}}, \"HIlgfYinDLoYqQs7OaamOg\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 142392.0, \"color\": \"#c36a1f\", \"hover\": \"142392.0\"}}, \"Os8EzZqwnhhmbmny3t/aOg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 95118.0, \"color\": \"#1bd89a\", \"hover\": \"95118.0\"}}, \"yB4nFjITPKoh7bEpLPDzOg\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 14575.0, \"color\": \"#d33b43\", \"hover\": \"14575.0\"}}, \"9kBqWNP1i1TjWuY6XIL7Og\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 64488.0, \"color\": \"#5dfc9d\", \"hover\": \"64488.0\"}}, \"+uAcgSKO2bNolKgqpWQIOw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 178410.0, \"color\": \"#33b9bc\", \"hover\": \"178410.0\"}}, \"lzG09nQSYpfLweqcxR9KOw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 177205.0, \"color\": \"#f6a0ef\", \"hover\": \"177205.0\"}}, \"/8YpjmS6ea+0tmqCIWNvOw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 139543.0, \"color\": \"#eba59b\", \"hover\": \"139543.0\"}}, \"pPWaOIY5snaVaOt3uiN1Ow\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 122240.0, \"color\": \"#eba59b\", \"hover\": \"122240.0\"}}, \"KsAKs7t7Z8NDli2Ph9N3Ow\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 95701.0, \"color\": \"#c70b3b\", \"hover\": \"95701.0\"}}, \"rt/IZulKGE61yudVPiWLOw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 109211.0, \"color\": \"#33b9bc\", \"hover\": \"109211.0\"}}, \"DK7xT9uf0LeeXUMjF5eeOw\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 105262.0, \"color\": \"#0f50c0\", \"hover\": \"105262.0\"}}, \"aUsB1m1dWOhCOv1IOrurOw\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 153514.0, \"color\": \"#e9d844\", \"hover\": \"153514.0\"}}, \"i+mEeURUNZMkwdukcXesOw\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 134166.0, \"color\": \"#b21c5c\", \"hover\": \"134166.0\"}}, \"wx8mXJPztJumhis0sY+tOw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 196997.0, \"color\": \"#b70fc0\", \"hover\": \"196997.0\"}}, \"PTd+448E4V6kEdjyxkzCOw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 50102.0, \"color\": \"#b58c2b\", \"hover\": \"50102.0\"}}, \"AAlv0/vwcPMrCI1zCwbfOw\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 3086.0, \"color\": \"#3a92b5\", \"hover\": \"3086.0\"}}, \"EwsQJO9BG79bRBbT6sbtOw\": {\"metadata\": {\"community_id\": 345, \"customer_id\": 1099.0, \"color\": \"#a9732d\", \"hover\": \"1099.0\"}}, \"kdyzdInEahDDJDFc45n6Ow\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 52799.0, \"color\": \"#33b9bc\", \"hover\": \"52799.0\"}}, \"NqG+c1a1lIoBlf+gygANPA\": {\"metadata\": {\"community_id\": 294, \"customer_id\": 159271.0, \"color\": \"#bd10b4\", \"hover\": \"159271.0\"}}, \"UMbT8esxzL0+gc3dtkQaPA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 197639.0, \"color\": \"#9a62ce\", \"hover\": \"197639.0\"}}, \"yomEKZktx2kx0s5Uz6Q5PA\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 194664.0, \"color\": \"#511fd0\", \"hover\": \"194664.0\"}}, \"tQITkugM/C3R1+isp/E6PA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 33069.0, \"color\": \"#a372d3\", \"hover\": \"33069.0\"}}, \"eU//jS/YGhjXUkc31H9SPA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 67741.0, \"color\": \"#33b9bc\", \"hover\": \"67741.0\"}}, \"WNsmKI9Jb0iXFNPu7hJ1PA\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 60667.0, \"color\": \"#49de50\", \"hover\": \"60667.0\"}}, \"+8ER2sMgrYPshQENDsp1PA\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 95687.0, \"color\": \"#d3da39\", \"hover\": \"95687.0\"}}, \"MLdSmvn3v1YguLOrXiSDPA\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 139655.0, \"color\": \"#a1cdf3\", \"hover\": \"139655.0\"}}, \"HXJ7/V8OtxHH2EN916GePA\": {\"metadata\": {\"community_id\": 92, \"customer_id\": 191295.0, \"color\": \"#6cf332\", \"hover\": \"191295.0\"}}, \"lxovHFLCK1G/Kp7GpW2jPA\": {\"metadata\": {\"community_id\": 347, \"customer_id\": 33001.0, \"color\": \"#49ec34\", \"hover\": \"33001.0\"}}, \"9Qmf5uaVlfG6fz+GqXbAPA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 160722.0, \"color\": \"#9ee08f\", \"hover\": \"160722.0\"}}, \"fiXjQ3gIe6eKQJNBSzjLPA\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 170115.0, \"color\": \"#8827b3\", \"hover\": \"170115.0\"}}, \"izLXj7XivmVFEI8heob6PA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 6270.0, \"color\": \"#1807f2\", \"hover\": \"6270.0\"}}, \"D5+KfnZfLerid2bgjR8uPQ\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 179692.0, \"color\": \"#c7de5b\", \"hover\": \"179692.0\"}}, \"InRmCKqhMYij+gzBJsA2PQ\": {\"metadata\": {\"community_id\": 271, \"customer_id\": 64229.0, \"color\": \"#52aadb\", \"hover\": \"64229.0\"}}, \"SuNo1A6pPVft9vfEaDA7PQ\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 11187.0, \"color\": \"#31f5c4\", \"hover\": \"11187.0\"}}, \"UpdDOZZ/nnNC6z5GD0lrPQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 80948.0, \"color\": \"#fe58fe\", \"hover\": \"80948.0\"}}, \"WC0EmD43hs84OV0WQld1PQ\": {\"metadata\": {\"community_id\": 348, \"customer_id\": 136374.0, \"color\": \"#eb9ca2\", \"hover\": \"136374.0\"}}, \"QfPcP1f2mG6CK6IQ/xOPPQ\": {\"metadata\": {\"community_id\": 349, \"customer_id\": 5462.0, \"color\": \"#f2e162\", \"hover\": \"5462.0\"}}, \"DlQJmZhrLcSFewBXCcWdPQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 124215.0, \"color\": \"#99ef99\", \"hover\": \"124215.0\"}}, \"ZwC6Jos8tXbLFjtN+qWqPQ\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 176903.0, \"color\": \"#4b2fa5\", \"hover\": \"176903.0\"}}, \"KteAmg/1DwFRDn3bRbuzPQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 13994.0, \"color\": \"#b70fc0\", \"hover\": \"13994.0\"}}, \"Tvk5iFzPudwpAjBrr/C3PQ\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 67206.0, \"color\": \"#7dd8f9\", \"hover\": \"67206.0\"}}, \"Z8jlpMCdujC4++qzmq3BPQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 50330.0, \"color\": \"#99b5fc\", \"hover\": \"50330.0\"}}, \"f3OysywHhD6Z8jwa/VbQPQ\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 185578.0, \"color\": \"#be821d\", \"hover\": \"185578.0\"}}, \"xTR0hple3jVx3DJEv73gPQ\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 177906.0, \"color\": \"#cb84ef\", \"hover\": \"177906.0\"}}, \"rfNNiCvdTiGlx3UokrcLPg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 179423.0, \"color\": \"#272dca\", \"hover\": \"179423.0\"}}, \"8NClRelN6TKhc2JQrXUPPg\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 139234.0, \"color\": \"#b4ea8c\", \"hover\": \"139234.0\"}}, \"VZDm4Fhi1cPeNnGwibUPPg\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 155806.0, \"color\": \"#71d3ce\", \"hover\": \"155806.0\"}}, \"bdXYpNo41ar0262WrMYoPg\": {\"metadata\": {\"community_id\": 352, \"customer_id\": 82986.0, \"color\": \"#f9be8d\", \"hover\": \"82986.0\"}}, \"4UwkwFD6vbUHvdt1KNwrPg\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 147368.0, \"color\": \"#8ceceb\", \"hover\": \"147368.0\"}}, \"hUAZT7kt1KUkZ4fbtDs/Pg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 66590.0, \"color\": \"#0d14dc\", \"hover\": \"66590.0\"}}, \"qdvG7gcskrjeWirNiH5iPg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 42321.0, \"color\": \"#10d82f\", \"hover\": \"42321.0\"}}, \"HF0jaPfeSJtgaaVfxuZmPg\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 103151.0, \"color\": \"#5970d7\", \"hover\": \"103151.0\"}}, \"v/fbMN99v35S6/2pLoiEPg\": {\"metadata\": {\"community_id\": 354, \"customer_id\": 5202.0, \"color\": \"#d27915\", \"hover\": \"5202.0\"}}, \"thNRJ+Ek8LABph+n40eNPg\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 100665.0, \"color\": \"#d8dd94\", \"hover\": \"100665.0\"}}, \"gx0mZi7s5KN1g7OHmM+XPg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 165617.0, \"color\": \"#99b5fc\", \"hover\": \"165617.0\"}}, \"fEuMTfxSadNfJoNM6t+XPg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 31804.0, \"color\": \"#99ef99\", \"hover\": \"31804.0\"}}, \"kX1AeJhRCfClQVM+CSaZPg\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 75788.0, \"color\": \"#c98e0a\", \"hover\": \"75788.0\"}}, \"egTXUYy7nfoHpJfpy2afPg\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 140999.0, \"color\": \"#fcce99\", \"hover\": \"140999.0\"}}, \"DH0rbjPPkEJYJ4iOLqWmPg\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 143920.0, \"color\": \"#10c118\", \"hover\": \"143920.0\"}}, \"L4+2ZMmnc8gTOu8mN1LjPg\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 144085.0, \"color\": \"#192dda\", \"hover\": \"144085.0\"}}, \"pgaiIo5Awks0fC4Gk+ABPw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 77577.0, \"color\": \"#eba59b\", \"hover\": \"77577.0\"}}, \"NPfCKgsf74P+xfBuYOkBPw\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 23734.0, \"color\": \"#be24cb\", \"hover\": \"23734.0\"}}, \"dC3LeDMaq+ZhSi3JoXcDPw\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 189573.0, \"color\": \"#0d14dc\", \"hover\": \"189573.0\"}}, \"PvFb6I9HEC3Jb5xbzEwLPw\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 23948.0, \"color\": \"#a192f1\", \"hover\": \"23948.0\"}}, \"/DasHcz9qDrGxipjpxZYPw\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 191405.0, \"color\": \"#7d88fb\", \"hover\": \"191405.0\"}}, \"EjYVLbjXyyFjMsvonN9ePw\": {\"metadata\": {\"community_id\": 357, \"customer_id\": 141544.0, \"color\": \"#d68246\", \"hover\": \"141544.0\"}}, \"kE/iXEylgaiZzGqa0NliPw\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 182331.0, \"color\": \"#8de1ae\", \"hover\": \"182331.0\"}}, \"DhYgYjdAip/3+eZn4S9qPw\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 70261.0, \"color\": \"#14d13f\", \"hover\": \"70261.0\"}}, \"nsXSmtJQKEtoW+A+WbRuPw\": {\"metadata\": {\"community_id\": 359, \"customer_id\": 142850.0, \"color\": \"#fa858b\", \"hover\": \"142850.0\"}}, \"4hZmMgnJIT+452lBnYuVPw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 163565.0, \"color\": \"#f6a0ef\", \"hover\": \"163565.0\"}}, \"dOitCDCE63Unt2Uz+02yPw\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 94673.0, \"color\": \"#33aac6\", \"hover\": \"94673.0\"}}, \"OUYfjK3qliQPxJkOHd/MPw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 153923.0, \"color\": \"#7eddd4\", \"hover\": \"153923.0\"}}, \"FE7mqW78yTU9wwMAC7HbPw\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 59555.0, \"color\": \"#04dbb3\", \"hover\": \"59555.0\"}}, \"EpddrIm7N5G8G23V6jMJQA\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 29584.0, \"color\": \"#04dbb3\", \"hover\": \"29584.0\"}}, \"xlm0G+Xzw41Rm+YvXlwZQA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 139414.0, \"color\": \"#7aefcb\", \"hover\": \"139414.0\"}}, \"6Ljl9ocEXnB7/rCeJuhBQA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 93826.0, \"color\": \"#45f210\", \"hover\": \"93826.0\"}}, \"lZJSocdEIWg2qfH2eRpeQA\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 91176.0, \"color\": \"#68c1d4\", \"hover\": \"91176.0\"}}, \"gdgrqfKRzrB2XWkXMYRgQA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 36660.0, \"color\": \"#c1351e\", \"hover\": \"36660.0\"}}, \"xVgSzLLJX7f2LxUQjaVnQA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 128852.0, \"color\": \"#b58c2b\", \"hover\": \"128852.0\"}}, \"3ysewCXPmGRHKwwmyptuQA\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 93169.0, \"color\": \"#b32f69\", \"hover\": \"93169.0\"}}, \"HjiL/TAGzcamF/nUBzeFQA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 148282.0, \"color\": \"#33b9bc\", \"hover\": \"148282.0\"}}, \"gt6r2GNUZyrgLRd88ouJQA\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 57973.0, \"color\": \"#25a9a6\", \"hover\": \"57973.0\"}}, \"Bvlmxnniuxc85ZjU+CuOQA\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 72804.0, \"color\": \"#aae3e3\", \"hover\": \"72804.0\"}}, \"LAnZCtjOl2bhcv2vZlGOQA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 109901.0, \"color\": \"#d2ab67\", \"hover\": \"109901.0\"}}, \"wSbdhtDL5S2z1K8YGhuQQA\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 164753.0, \"color\": \"#7a01d9\", \"hover\": \"164753.0\"}}, \"GshRXihzIo3/9uNPAYilQA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 15629.0, \"color\": \"#f8a36c\", \"hover\": \"15629.0\"}}, \"FVzQrHoO4Xmx/ObIjHGqQA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 13897.0, \"color\": \"#7eddd4\", \"hover\": \"13897.0\"}}, \"CfRf9yRZVZ42QN1Q6w/tQA\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 172390.0, \"color\": \"#eb7a31\", \"hover\": \"172390.0\"}}, \"9WCffFE9Mw7TEa6DHJwkQQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 61917.0, \"color\": \"#81a8e3\", \"hover\": \"61917.0\"}}, \"TH2nlEfNlTbfzWVGhDc3QQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 166960.0, \"color\": \"#33b9bc\", \"hover\": \"166960.0\"}}, \"ZzvzUT8crgIkBFwdFBBEQQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 174914.0, \"color\": \"#d8dd94\", \"hover\": \"174914.0\"}}, \"hUiWm2ZzAZ3XyhwYaMGGQQ\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 71241.0, \"color\": \"#f31347\", \"hover\": \"71241.0\"}}, \"GvVaeFtGWMdr6uDDVcKOQQ\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 73696.0, \"color\": \"#9c50d8\", \"hover\": \"73696.0\"}}, \"lM1KF8F6d89mNUIA002mQQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 159885.0, \"color\": \"#7aefcb\", \"hover\": \"159885.0\"}}, \"Svbu70DdkVOl27oKzxuvQQ\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 102165.0, \"color\": \"#cf8a18\", \"hover\": \"102165.0\"}}, \"nlX50aGPxITwrjO4N7TUQQ\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 31186.0, \"color\": \"#83aedd\", \"hover\": \"31186.0\"}}, \"OTAk+XizNExtptGmcZ/YQQ\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 142750.0, \"color\": \"#6bf189\", \"hover\": \"142750.0\"}}, \"+RbgpxXNqLHXHYiw+1f+QQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 21853.0, \"color\": \"#62fab8\", \"hover\": \"21853.0\"}}, \"NusVDiix1Smp76/E438NQg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 196232.0, \"color\": \"#b58c2b\", \"hover\": \"196232.0\"}}, \"mQ7tVUOG/uH2XHt3C1YnQg\": {\"metadata\": {\"community_id\": 308, \"customer_id\": 187812.0, \"color\": \"#af86d6\", \"hover\": \"187812.0\"}}, \"+YCMtJjW5r1HUEkrpuZIQg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 152741.0, \"color\": \"#ae692e\", \"hover\": \"152741.0\"}}, \"j4IK5nCCNuS7CCju09hlQg\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 111035.0, \"color\": \"#fe58fe\", \"hover\": \"111035.0\"}}, \"wpR4LPmkbscTQ47aqutyQg\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 55523.0, \"color\": \"#c7de5b\", \"hover\": \"55523.0\"}}, \"4ZZRg+v5JVI9y2rYz/arQg\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 136514.0, \"color\": \"#3a92b5\", \"hover\": \"136514.0\"}}, \"8QVDvYH9xxe4NWKCDrG2Qg\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 182261.0, \"color\": \"#4bdb47\", \"hover\": \"182261.0\"}}, \"nKe2lnx8Wl2cfijCKn+3Qg\": {\"metadata\": {\"community_id\": 367, \"customer_id\": 151330.0, \"color\": \"#d7e285\", \"hover\": \"151330.0\"}}, \"k0enGgElWRs9A+5NRNS8Qg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 51027.0, \"color\": \"#78e968\", \"hover\": \"51027.0\"}}, \"LWvoOHWcJwMOVIrQGvXLQg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 79090.0, \"color\": \"#99b5fc\", \"hover\": \"79090.0\"}}, \"DKAWdo6As2L2HUFCvXjbQg\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 19539.0, \"color\": \"#36dfc2\", \"hover\": \"19539.0\"}}, \"oMgttsFpag2MzaDeUJLmQg\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 122233.0, \"color\": \"#f29712\", \"hover\": \"122233.0\"}}, \"VWYTv+j475LNrLs7gCP9Qg\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 108663.0, \"color\": \"#7cec6a\", \"hover\": \"108663.0\"}}, \"eLVohINWQqpjz9ZXpnMOQw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 173615.0, \"color\": \"#33b9bc\", \"hover\": \"173615.0\"}}, \"muD2o32/rvJ6qO3uaY8vQw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 145243.0, \"color\": \"#7aefcb\", \"hover\": \"145243.0\"}}, \"ym1mmV/zdlaPSNH2NZRaQw\": {\"metadata\": {\"community_id\": 58, \"customer_id\": 2337.0, \"color\": \"#9fe5af\", \"hover\": \"2337.0\"}}, \"vjDrwdMF72php/TR16xxQw\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 80453.0, \"color\": \"#fc580c\", \"hover\": \"80453.0\"}}, \"iOb2c9ib1dpXVg05OiJzQw\": {\"metadata\": {\"community_id\": 368, \"customer_id\": 34134.0, \"color\": \"#8793dd\", \"hover\": \"34134.0\"}}, \"2NkehMA6nPR3sXPYqd12Qw\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 199342.0, \"color\": \"#309f40\", \"hover\": \"199342.0\"}}, \"NT51/BBSLEzC/YF2jxWkQw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 80722.0, \"color\": \"#d2ab67\", \"hover\": \"80722.0\"}}, \"22CPbcrrBAQIB6Uhv2CtQw\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 56051.0, \"color\": \"#dc1d4e\", \"hover\": \"56051.0\"}}, \"8fOcjVMM97bF0nHRwpmwQw\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 63941.0, \"color\": \"#d9480a\", \"hover\": \"63941.0\"}}, \"hvQCUOVVWEUK6absn+CyQw\": {\"metadata\": {\"community_id\": 370, \"customer_id\": 98518.0, \"color\": \"#d8577c\", \"hover\": \"98518.0\"}}, \"rXkCDNRNSVG5itmWEa+0Qw\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 94544.0, \"color\": \"#09ef53\", \"hover\": \"94544.0\"}}, \"Q8AlycToBKVFjB1QrFvIQw\": {\"metadata\": {\"community_id\": 372, \"customer_id\": 36176.0, \"color\": \"#53f592\", \"hover\": \"36176.0\"}}, \"J7dxhY+mTwsgrvRun4vIQw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 94419.0, \"color\": \"#78e968\", \"hover\": \"94419.0\"}}, \"NXtITLwY/XNBuvLK70PXQw\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 67519.0, \"color\": \"#dfd779\", \"hover\": \"67519.0\"}}, \"NMDpgfX8D3+RhKXJwIrfQw\": {\"metadata\": {\"community_id\": 373, \"customer_id\": 191576.0, \"color\": \"#9399ea\", \"hover\": \"191576.0\"}}, \"77iPv90BW5iJ8c7Iz2LuQw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 187936.0, \"color\": \"#87cefd\", \"hover\": \"187936.0\"}}, \"8iebXCqtG1eN+lGV7HH8Qw\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 152611.0, \"color\": \"#8ceceb\", \"hover\": \"152611.0\"}}, \"AHkiHkN1YD8HiUKcuM8DRA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 37375.0, \"color\": \"#1bd89a\", \"hover\": \"37375.0\"}}, \"rbgJY/m+OO8EhjJplaEWRA\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 131156.0, \"color\": \"#fe58fe\", \"hover\": \"131156.0\"}}, \"liBrYiJanb7tl/OaVcpARA\": {\"metadata\": {\"community_id\": 298, \"customer_id\": 23039.0, \"color\": \"#5838b6\", \"hover\": \"23039.0\"}}, \"EZajhl39OsXmqiSpuFxPRA\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 155215.0, \"color\": \"#dcc694\", \"hover\": \"155215.0\"}}, \"p49Fh3DpndPGDHlKDL5RRA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 178981.0, \"color\": \"#d16060\", \"hover\": \"178981.0\"}}, \"s5rYWe8YJ6DEhjCr4P5iRA\": {\"metadata\": {\"community_id\": 375, \"customer_id\": 118251.0, \"color\": \"#7bfc6a\", \"hover\": \"118251.0\"}}, \"5GNyvObSsBPX6MLHNtxyRA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 7834.0, \"color\": \"#99ef99\", \"hover\": \"7834.0\"}}, \"e66HgXZ0Dd9pxVG+Mc2JRA\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 23580.0, \"color\": \"#4b2fa5\", \"hover\": \"23580.0\"}}, \"QOy58Co3JRbiEU3GogWNRA\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 193935.0, \"color\": \"#b4ea8c\", \"hover\": \"193935.0\"}}, \"vyL9TIMjcuScOBNcE+ScRA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 142434.0, \"color\": \"#b3df71\", \"hover\": \"142434.0\"}}, \"FE4q4bQKSwYZK+FHrWWgRA\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 32217.0, \"color\": \"#f0f3a3\", \"hover\": \"32217.0\"}}, \"R9Lpgl8efAju6ZpoTg2iRA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 150224.0, \"color\": \"#99b5fc\", \"hover\": \"150224.0\"}}, \"imzcpoBNOLHSZyZXErylRA\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 197976.0, \"color\": \"#b356f5\", \"hover\": \"197976.0\"}}, \"VI26TkOgYTwvvdTzNROoRA\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 172741.0, \"color\": \"#08cad9\", \"hover\": \"172741.0\"}}, \"uKRVRvJ+p5AZp6PXEmbVRA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 126158.0, \"color\": \"#e0b23c\", \"hover\": \"126158.0\"}}, \"cJV6ZU5D/C9ybgB24bfVRA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 157767.0, \"color\": \"#d16060\", \"hover\": \"157767.0\"}}, \"Ux6au0DBAXaqHpV/RNnaRA\": {\"metadata\": {\"community_id\": 378, \"customer_id\": 191429.0, \"color\": \"#6c2ed7\", \"hover\": \"191429.0\"}}, \"aWgN5cqeT7YYPzmmF4rfRA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 154800.0, \"color\": \"#eba59b\", \"hover\": \"154800.0\"}}, \"O+V1EgwBZppu7hmH3BPzRA\": {\"metadata\": {\"community_id\": 379, \"customer_id\": 91579.0, \"color\": \"#ec9ede\", \"hover\": \"91579.0\"}}, \"Ui/0A3wBxzeKBPvoCCkYRQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 109859.0, \"color\": \"#33b9bc\", \"hover\": \"109859.0\"}}, \"kOMnWfmlMTJk3xPhEQgqRQ\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 17865.0, \"color\": \"#511fd0\", \"hover\": \"17865.0\"}}, \"J9jUserjmCZ39iAnKJZARQ\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 58793.0, \"color\": \"#6bf189\", \"hover\": \"58793.0\"}}, \"QNJ0t5GrRws4c5Ryv6lHRQ\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 146837.0, \"color\": \"#d53cea\", \"hover\": \"146837.0\"}}, \"imglETtywlrVcvzIwI5aRQ\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 177357.0, \"color\": \"#b896fe\", \"hover\": \"177357.0\"}}, \"AB6JX81ub1q0qaT/06h8RQ\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 96721.0, \"color\": \"#6bf189\", \"hover\": \"96721.0\"}}, \"IYgL0K/UrNk0p3Baa1N/RQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 90024.0, \"color\": \"#9a62ce\", \"hover\": \"90024.0\"}}, \"ihle6Lr2WCOEHf3ter6fRQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 119115.0, \"color\": \"#9a62ce\", \"hover\": \"119115.0\"}}, \"1FGUAXuCvr8NsxHFaO7ARQ\": {\"metadata\": {\"community_id\": 380, \"customer_id\": 144247.0, \"color\": \"#c54041\", \"hover\": \"144247.0\"}}, \"J53P0IkFKVfzsXe/Ta3CRQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 150744.0, \"color\": \"#2795b1\", \"hover\": \"150744.0\"}}, \"j2aDJCmt7q7D2VRoSB3JRQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 119327.0, \"color\": \"#eba59b\", \"hover\": \"119327.0\"}}, \"Jr47GnKDcqO8qnyRy6PSRQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 148638.0, \"color\": \"#e5e372\", \"hover\": \"148638.0\"}}, \"7t4SY1vCVINoIMbgrdPkRQ\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 146755.0, \"color\": \"#f3a1c6\", \"hover\": \"146755.0\"}}, \"CxXkjGu2Nlr/09RxlGrpRQ\": {\"metadata\": {\"community_id\": 106, \"customer_id\": 86165.0, \"color\": \"#5bfdd5\", \"hover\": \"86165.0\"}}, \"ALTewdivDV/ha76oe0fsRQ\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 164557.0, \"color\": \"#f0fe05\", \"hover\": \"164557.0\"}}, \"Qyug5sP5mhFfOqoC1UzsRQ\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 48784.0, \"color\": \"#d53e3e\", \"hover\": \"48784.0\"}}, \"e3PtXxVdlrus06SK1N/6RQ\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 33283.0, \"color\": \"#c273fd\", \"hover\": \"33283.0\"}}, \"uRBQkWEdVbeNQ9xfJLkIRg\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 138718.0, \"color\": \"#a6c54d\", \"hover\": \"138718.0\"}}, \"D8uBDEKTvYV7V2AXqdYNRg\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 139308.0, \"color\": \"#7caad5\", \"hover\": \"139308.0\"}}, \"S72IL4YSDnZZA425LPseRg\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 147768.0, \"color\": \"#15cf62\", \"hover\": \"147768.0\"}}, \"LO6Cn+YTpzSOAnEo9esvRg\": {\"metadata\": {\"community_id\": 139, \"customer_id\": 151972.0, \"color\": \"#5514ba\", \"hover\": \"151972.0\"}}, \"lqVFqi7mcd2hzZDi+SNGRg\": {\"metadata\": {\"community_id\": 384, \"customer_id\": 179576.0, \"color\": \"#a799e6\", \"hover\": \"179576.0\"}}, \"M1y5hXH0hVEApIW5iJ1HRg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 77456.0, \"color\": \"#78e968\", \"hover\": \"77456.0\"}}, \"ZXBZdqAF3xm7IzHq5J1VRg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 11488.0, \"color\": \"#31ab2f\", \"hover\": \"11488.0\"}}, \"DO1jzZFQdAAskqacb4ZeRg\": {\"metadata\": {\"community_id\": 385, \"customer_id\": 196835.0, \"color\": \"#05d2af\", \"hover\": \"196835.0\"}}, \"/p+phwA8hAMIeSUv3ihmRg\": {\"metadata\": {\"community_id\": 386, \"customer_id\": 89156.0, \"color\": \"#73e1bc\", \"hover\": \"89156.0\"}}, \"OTYw29EpzE8fZI954el3Rg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 46260.0, \"color\": \"#62fab8\", \"hover\": \"46260.0\"}}, \"LUmeD6EQPRf0Zw7B+iN6Rg\": {\"metadata\": {\"community_id\": 42, \"customer_id\": 33346.0, \"color\": \"#fbfe87\", \"hover\": \"33346.0\"}}, \"C0lM+vSEaaT/IWOghVGARg\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 30767.0, \"color\": \"#5ccd4e\", \"hover\": \"30767.0\"}}, \"NVczU2cHqw/8i0p//W2MRg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 191117.0, \"color\": \"#dfd779\", \"hover\": \"191117.0\"}}, \"bK6/ywJvHiPC8jeX0h2zRg\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 27007.0, \"color\": \"#9aa931\", \"hover\": \"27007.0\"}}, \"dBRqkyn6shmbpWrSZaHARg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 2442.0, \"color\": \"#b70fc0\", \"hover\": \"2442.0\"}}, \"EdEant+ae0LEoqOeV6jERg\": {\"metadata\": {\"community_id\": 256, \"customer_id\": 20823.0, \"color\": \"#cc18bd\", \"hover\": \"20823.0\"}}, \"jyjn/VXmPCyky36DAXHIRg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 27678.0, \"color\": \"#272dca\", \"hover\": \"27678.0\"}}, \"naXz8IWsp750AAUIcEzJRg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 113579.0, \"color\": \"#10d82f\", \"hover\": \"113579.0\"}}, \"CoryOarI0mEf4885yBnMRg\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 175777.0, \"color\": \"#a3ace6\", \"hover\": \"175777.0\"}}, \"LUjjh0xV0bKoEVWW1hnWRg\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 198053.0, \"color\": \"#c7de5b\", \"hover\": \"198053.0\"}}, \"Gan7ZZVQhOZ9l4LX4oznRg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 17216.0, \"color\": \"#33b9bc\", \"hover\": \"17216.0\"}}, \"mnk4NmT6j5Sgh6UeBYfuRg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 155974.0, \"color\": \"#272dca\", \"hover\": \"155974.0\"}}, \"KJEfvuLac+nSxhHuB/L7Rg\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 115071.0, \"color\": \"#99f46c\", \"hover\": \"115071.0\"}}, \"0tfzKiqfAXj9nFago+QBRw\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 18706.0, \"color\": \"#f7fb87\", \"hover\": \"18706.0\"}}, \"8r55dj/JwBrDybXJWyQSRw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 102581.0, \"color\": \"#f6a0ef\", \"hover\": \"102581.0\"}}, \"G7/xMwCxUY6aMLpdikocRw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 19386.0, \"color\": \"#e0b23c\", \"hover\": \"19386.0\"}}, \"oCOW0mRITDqwiopKqDIiRw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 124912.0, \"color\": \"#99ef99\", \"hover\": \"124912.0\"}}, \"SssatqK3hP1QznpmsvEoRw\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 30361.0, \"color\": \"#75fe54\", \"hover\": \"30361.0\"}}, \"pYlTvg387QEobSKG4JksRw\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 16516.0, \"color\": \"#d3da39\", \"hover\": \"16516.0\"}}, \"AgTa7bKh9MmBJAaiAAE6Rw\": {\"metadata\": {\"community_id\": 194, \"customer_id\": 193291.0, \"color\": \"#33d610\", \"hover\": \"193291.0\"}}, \"rXfvX3u/2hfcp3byjIJBRw\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 69270.0, \"color\": \"#c05c10\", \"hover\": \"69270.0\"}}, \"DJnQmC7rRNI9KohvnfZERw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 123241.0, \"color\": \"#d6b552\", \"hover\": \"123241.0\"}}, \"N3vEw/7LBzj7u0aepCJFRw\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 50862.0, \"color\": \"#c7de5b\", \"hover\": \"50862.0\"}}, \"jgVNAsOxee4qAIu4Pw17Rw\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 148169.0, \"color\": \"#aa28fe\", \"hover\": \"148169.0\"}}, \"zK2i3Ls/9w5NBkwfx7F7Rw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 155809.0, \"color\": \"#10d82f\", \"hover\": \"155809.0\"}}, \"pcAaJGkNoaKboOUIf7l9Rw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 199620.0, \"color\": \"#272dca\", \"hover\": \"199620.0\"}}, \"Y4HpFSDpB/pb5VCJTwiQRw\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 13655.0, \"color\": \"#fd72cc\", \"hover\": \"13655.0\"}}, \"JglA7absRTpBaoWEMEWXRw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 3040.0, \"color\": \"#10d82f\", \"hover\": \"3040.0\"}}, \"/5BFUkTesobt+C2GA42cRw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 64727.0, \"color\": \"#c12abd\", \"hover\": \"64727.0\"}}, \"/oz5D6qx21CJbLduu9mkRw\": {\"metadata\": {\"community_id\": 134, \"customer_id\": 34598.0, \"color\": \"#e7b35a\", \"hover\": \"34598.0\"}}, \"aZ9AyPjf2OgaKfRYk4KuRw\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 132984.0, \"color\": \"#fa6270\", \"hover\": \"132984.0\"}}, \"nSw0eUskiHWpYHPIy4zIRw\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 107818.0, \"color\": \"#ae692e\", \"hover\": \"107818.0\"}}, \"5hZtqsiLHbi1NqVfW5PKRw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 72977.0, \"color\": \"#87cefd\", \"hover\": \"72977.0\"}}, \"SNmVHg4+txr17tuDDEzSRw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 152897.0, \"color\": \"#45f210\", \"hover\": \"152897.0\"}}, \"eNm73uTArP4UKMj8vLHpRw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 75130.0, \"color\": \"#b3df71\", \"hover\": \"75130.0\"}}, \"CG15xx+fRRlt+sL6G1fqRw\": {\"metadata\": {\"community_id\": 390, \"customer_id\": 119095.0, \"color\": \"#9fb3f1\", \"hover\": \"119095.0\"}}, \"I1AeZzIB6CjfTTcTE7n+Rw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 114644.0, \"color\": \"#b58c2b\", \"hover\": \"114644.0\"}}, \"71iA9qV2BUl8sqhSgukASA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 155674.0, \"color\": \"#62fab8\", \"hover\": \"155674.0\"}}, \"tWOkiXBLW15DgKI96XQQSA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 107555.0, \"color\": \"#eba59b\", \"hover\": \"107555.0\"}}, \"0AvZ3yTTfxKv6PWjeYkiSA\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 1306.0, \"color\": \"#56fc81\", \"hover\": \"1306.0\"}}, \"8ZQvaCv1scRUhplnRb8mSA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 146940.0, \"color\": \"#7aefcb\", \"hover\": \"146940.0\"}}, \"tZ670LCRnqYmZFgy501YSA\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 74338.0, \"color\": \"#b38afe\", \"hover\": \"74338.0\"}}, \"/SXshfQ4e66loe29E5xgSA\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 154242.0, \"color\": \"#68c1d4\", \"hover\": \"154242.0\"}}, \"wtugXF+7qE82ez/dX8NvSA\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 8219.0, \"color\": \"#4df1e8\", \"hover\": \"8219.0\"}}, \"QcnP7E4XqR4YLJ2LdOJ9SA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 182338.0, \"color\": \"#33b9bc\", \"hover\": \"182338.0\"}}, \"JhqYKo/AXz59R4vLLyeJSA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 189470.0, \"color\": \"#33b9bc\", \"hover\": \"189470.0\"}}, \"8gDLDfXLxM28SJRP0dizSA\": {\"metadata\": {\"community_id\": 79, \"customer_id\": 107569.0, \"color\": \"#e46066\", \"hover\": \"107569.0\"}}, \"9F6DxcwNzhY3s6yudOTDSA\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 101066.0, \"color\": \"#99ea58\", \"hover\": \"101066.0\"}}, \"nXuX1q5CqzGnJV+eNRDISA\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 49631.0, \"color\": \"#9762ed\", \"hover\": \"49631.0\"}}, \"5/iIlMEl3Flhj0dFtY7JSA\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 15202.0, \"color\": \"#e66d6e\", \"hover\": \"15202.0\"}}, \"oV0tCAoy/67CcunzmRnpSA\": {\"metadata\": {\"community_id\": 391, \"customer_id\": 159403.0, \"color\": \"#963fd0\", \"hover\": \"159403.0\"}}, \"VwrOoBFsxcsMJpuOmUULSQ\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 1217.0, \"color\": \"#50c2ef\", \"hover\": \"1217.0\"}}, \"5htVZaN4DNSg5D/11IMaSQ\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 135779.0, \"color\": \"#b58c2b\", \"hover\": \"135779.0\"}}, \"lO9MQjl7ZdMuYQV0CokeSQ\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 128660.0, \"color\": \"#8fe89d\", \"hover\": \"128660.0\"}}, \"SECy+0u+2YtIyzgbZIcgSQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 51691.0, \"color\": \"#3ef95f\", \"hover\": \"51691.0\"}}, \"OG2o1vAj49gdK8LP2VooSQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 148732.0, \"color\": \"#e436ba\", \"hover\": \"148732.0\"}}, \"roNyJxmSzevCeoq7B4MwSQ\": {\"metadata\": {\"community_id\": 393, \"customer_id\": 137993.0, \"color\": \"#59d262\", \"hover\": \"137993.0\"}}, \"x9gxsxVegryFTUoduSA1SQ\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 67267.0, \"color\": \"#32fdb8\", \"hover\": \"67267.0\"}}, \"XU24yr/ZZYJLIUWRlyZPSQ\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 162105.0, \"color\": \"#5937d3\", \"hover\": \"162105.0\"}}, \"wbPAkwU7l5fq1Q4QU4xUSQ\": {\"metadata\": {\"community_id\": 395, \"customer_id\": 170282.0, \"color\": \"#1dc6bb\", \"hover\": \"170282.0\"}}, \"zu1oyAK0SZx27NVzxCVkSQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 166306.0, \"color\": \"#99b5fc\", \"hover\": \"166306.0\"}}, \"SBNtJnW3Lo3nbtXncDpmSQ\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 189.0, \"color\": \"#b84038\", \"hover\": \"189.0\"}}, \"GPneXxn/W3TbBC5am7l0SQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 186159.0, \"color\": \"#6bdba1\", \"hover\": \"186159.0\"}}, \"oGIy1SeOMj2/qGAyuTp1SQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 58300.0, \"color\": \"#31ab2f\", \"hover\": \"58300.0\"}}, \"5YGAR6dLsSNn1A529+x/SQ\": {\"metadata\": {\"community_id\": 396, \"customer_id\": 101498.0, \"color\": \"#a52fa6\", \"hover\": \"101498.0\"}}, \"MAxDghRGm9FTe6u+ICeTSQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 49581.0, \"color\": \"#62fab8\", \"hover\": \"49581.0\"}}, \"evFrRg0OxE/+9bIf43KaSQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 104360.0, \"color\": \"#c12abd\", \"hover\": \"104360.0\"}}, \"z30Gf3D0E1lDmg/K5I26SQ\": {\"metadata\": {\"community_id\": 397, \"customer_id\": 148529.0, \"color\": \"#dc389c\", \"hover\": \"148529.0\"}}, \"7Oho6Z20dihFORKOVpu6SQ\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 97116.0, \"color\": \"#fc580c\", \"hover\": \"97116.0\"}}, \"OSeyIFxuP+o3Yh/Hwo4aSg\": {\"metadata\": {\"community_id\": 244, \"customer_id\": 159981.0, \"color\": \"#8efabb\", \"hover\": \"159981.0\"}}, \"H6Q8EBjmrFQ71jp9fVgjSg\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 180686.0, \"color\": \"#511fd0\", \"hover\": \"180686.0\"}}, \"9mzsTI4zPBXs++IY6nIwSg\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 143837.0, \"color\": \"#a60aef\", \"hover\": \"143837.0\"}}, \"Q4z7ZXuTWCeHiSWjY/RLSg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 70566.0, \"color\": \"#99b5fc\", \"hover\": \"70566.0\"}}, \"7JHQoIsP0g4FS2VokidWSg\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 153641.0, \"color\": \"#4dcbac\", \"hover\": \"153641.0\"}}, \"VTOkVft5FrNUyE5fBt51Sg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 54388.0, \"color\": \"#25a9a6\", \"hover\": \"54388.0\"}}, \"0PwYW8mRbpa9Mpnu9DSNSg\": {\"metadata\": {\"community_id\": 399, \"customer_id\": 196102.0, \"color\": \"#78c4db\", \"hover\": \"196102.0\"}}, \"SmZUCSQkckSaD6bxuaqjSg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 82164.0, \"color\": \"#a372d3\", \"hover\": \"82164.0\"}}, \"h3tGHaX0JqWf6UeIgZeuSg\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 60858.0, \"color\": \"#e311d5\", \"hover\": \"60858.0\"}}, \"w/FcbfRxQvw1pK7Q0yqzSg\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 58089.0, \"color\": \"#c830c7\", \"hover\": \"58089.0\"}}, \"eo4vpF7nVaIftXjavEnGSg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 166478.0, \"color\": \"#99b5fc\", \"hover\": \"166478.0\"}}, \"uUCDilQXqpQUOOB0ZFjJSg\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 44424.0, \"color\": \"#f3585b\", \"hover\": \"44424.0\"}}, \"gAzw07bKPCnVDOF1lzf8Sg\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 155089.0, \"color\": \"#15cf62\", \"hover\": \"155089.0\"}}, \"4n9iCHRmvy7wi5E8w50CSw\": {\"metadata\": {\"community_id\": 401, \"customer_id\": 176278.0, \"color\": \"#10de28\", \"hover\": \"176278.0\"}}, \"k4BLc8VJPYj1HiQLZE0fSw\": {\"metadata\": {\"community_id\": 287, \"customer_id\": 98172.0, \"color\": \"#28f3cb\", \"hover\": \"98172.0\"}}, \"aWe7skIST5t4AzA77+EsSw\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 95812.0, \"color\": \"#a3b818\", \"hover\": \"95812.0\"}}, \"TCY550vk9vsifylpEHU9Sw\": {\"metadata\": {\"community_id\": 402, \"customer_id\": 108976.0, \"color\": \"#7fe1c7\", \"hover\": \"108976.0\"}}, \"hBTV8gHKW131TEj7XT9BSw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 103200.0, \"color\": \"#e493a3\", \"hover\": \"103200.0\"}}, \"L2ysSMWtWvLFNQcmBeFLSw\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 29952.0, \"color\": \"#08cad9\", \"hover\": \"29952.0\"}}, \"dAHx8sgeJ7beftxxEKR1Sw\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 15731.0, \"color\": \"#6acd09\", \"hover\": \"15731.0\"}}, \"9uuEGhRv+nnRtMzAzjB2Sw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 138104.0, \"color\": \"#eba59b\", \"hover\": \"138104.0\"}}, \"yFABn+VCmS63kgHUgUp9Sw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 161263.0, \"color\": \"#32bc93\", \"hover\": \"161263.0\"}}, \"WS2zfixx34S6YAYVqPuFSw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 97569.0, \"color\": \"#62fab8\", \"hover\": \"97569.0\"}}, \"SYg1UZl2xRlPu6/W05iOSw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 38842.0, \"color\": \"#eba59b\", \"hover\": \"38842.0\"}}, \"e2hKmTwsutq/a8SqkTmUSw\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 22255.0, \"color\": \"#378cc8\", \"hover\": \"22255.0\"}}, \"BBcjp3mKb0dkgN5rywu5Sw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 93507.0, \"color\": \"#99f46c\", \"hover\": \"93507.0\"}}, \"nQiQKsGxgxQbKUGv2pLTSw\": {\"metadata\": {\"community_id\": 403, \"customer_id\": 180253.0, \"color\": \"#48ddb5\", \"hover\": \"180253.0\"}}, \"BY1jEgFuwflESgCTbV/XSw\": {\"metadata\": {\"community_id\": 404, \"customer_id\": 138114.0, \"color\": \"#f114d5\", \"hover\": \"138114.0\"}}, \"lkzhROxDtXgOQX5cWdPhSw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 28551.0, \"color\": \"#d8dd94\", \"hover\": \"28551.0\"}}, \"CTCn3Fgh6h156cuq7dXkSw\": {\"metadata\": {\"community_id\": 405, \"customer_id\": 86114.0, \"color\": \"#f12155\", \"hover\": \"86114.0\"}}, \"tMN/g0oGryogyXQvhLf+Sw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 13918.0, \"color\": \"#4dcbac\", \"hover\": \"13918.0\"}}, \"wd8lEJNfPOaevsTPxygQTA\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 67983.0, \"color\": \"#99f46c\", \"hover\": \"67983.0\"}}, \"Vd7FOp9N0ziiH4xcw34vTA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 188473.0, \"color\": \"#b3df71\", \"hover\": \"188473.0\"}}, \"XeGKIwBj2l/BdnCHeKgxTA\": {\"metadata\": {\"community_id\": 294, \"customer_id\": 142039.0, \"color\": \"#bd10b4\", \"hover\": \"142039.0\"}}, \"Xo/JU3qR/3/wCmPN37SrTA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 144293.0, \"color\": \"#b9e04a\", \"hover\": \"144293.0\"}}, \"MbYMRdaNc3zs4dLbhIazTA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 66091.0, \"color\": \"#272dca\", \"hover\": \"66091.0\"}}, \"+Tr4VhOKdmGJNou32+26TA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 41553.0, \"color\": \"#5dca06\", \"hover\": \"41553.0\"}}, \"Z2Wr1N00QeD7yeo+jzHHTA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 139609.0, \"color\": \"#b3df71\", \"hover\": \"139609.0\"}}, \"pk5B0OVLBJS0AxojkgDPTA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 12346.0, \"color\": \"#c1351e\", \"hover\": \"12346.0\"}}, \"PiJmAxkbdCeOWOHSKl/zTA\": {\"metadata\": {\"community_id\": 319, \"customer_id\": 23244.0, \"color\": \"#66d542\", \"hover\": \"23244.0\"}}, \"p2QDiSm6RlYOAvJqDpb0TA\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 69243.0, \"color\": \"#a3b818\", \"hover\": \"69243.0\"}}, \"3twap36E2VebRsb5toQFTQ\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 30107.0, \"color\": \"#185cd8\", \"hover\": \"30107.0\"}}, \"KHMZW0HFBIMS9c1KqNoXTQ\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 76367.0, \"color\": \"#3505e3\", \"hover\": \"76367.0\"}}, \"ocP4qC/3EO7sFT+R6aIZTQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 48145.0, \"color\": \"#62fab8\", \"hover\": \"48145.0\"}}, \"ODH4G/1dGsJI0ltnCWxSTQ\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 199972.0, \"color\": \"#67d2f9\", \"hover\": \"199972.0\"}}, \"Aqj0URYRADum8//AEpFSTQ\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 78442.0, \"color\": \"#29a6ef\", \"hover\": \"78442.0\"}}, \"iqOPT8+OtBjqMEsIZx2STQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 165642.0, \"color\": \"#62fab8\", \"hover\": \"165642.0\"}}, \"S9DJVAo6zDaYb5A5jomrTQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 192437.0, \"color\": \"#31ab2f\", \"hover\": \"192437.0\"}}, \"coP2kJECHHeByJYNxousTQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 169454.0, \"color\": \"#e436ba\", \"hover\": \"169454.0\"}}, \"CFWuU/FXzLqvDkRrko+9TQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 146581.0, \"color\": \"#99ef99\", \"hover\": \"146581.0\"}}, \"UZtMHjAFyNCmnx136tTiTQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 147535.0, \"color\": \"#eba59b\", \"hover\": \"147535.0\"}}, \"SAnjE/h7IlLpDbjn5yTrTQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 148699.0, \"color\": \"#b70fc0\", \"hover\": \"148699.0\"}}, \"Wto8vJIj6WsdCigVs77sTQ\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 9287.0, \"color\": \"#dc1d4e\", \"hover\": \"9287.0\"}}, \"fqxr4U/A0rdSg8HIaSj3TQ\": {\"metadata\": {\"community_id\": 279, \"customer_id\": 43016.0, \"color\": \"#73b2ef\", \"hover\": \"43016.0\"}}, \"3cXQAbgNdDz/sNaHNM74TQ\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 186181.0, \"color\": \"#2a72e6\", \"hover\": \"186181.0\"}}, \"lkzI2Rx1MC72pWODaKz+TQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 18520.0, \"color\": \"#b3df71\", \"hover\": \"18520.0\"}}, \"0vdskl6n1tgJivLOYQUDTg\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 16295.0, \"color\": \"#f963e8\", \"hover\": \"16295.0\"}}, \"yepgno4n/p28H6591WQMTg\": {\"metadata\": {\"community_id\": 384, \"customer_id\": 100330.0, \"color\": \"#a799e6\", \"hover\": \"100330.0\"}}, \"YUMbaFzgJYeU3f4B//ckTg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 83683.0, \"color\": \"#b70fc0\", \"hover\": \"83683.0\"}}, \"xOM0gzz1LKYOC78FcTpKTg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 152408.0, \"color\": \"#45f210\", \"hover\": \"152408.0\"}}, \"aS/j8kZ+FFHiJeK+4iBrTg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 52358.0, \"color\": \"#62fab8\", \"hover\": \"52358.0\"}}, \"0yjqf58zkAQzd+DJ0YVrTg\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 180970.0, \"color\": \"#14c9e9\", \"hover\": \"180970.0\"}}, \"deCbWH/yBvku8SIrHZFsTg\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 21703.0, \"color\": \"#f27249\", \"hover\": \"21703.0\"}}, \"c8YTUXnfbNhnroJsMeNvTg\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 6628.0, \"color\": \"#9cdc65\", \"hover\": \"6628.0\"}}, \"8PbUOjV/HGRgJS2xNNuMTg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 57791.0, \"color\": \"#7eddd4\", \"hover\": \"57791.0\"}}, \"4xdm24WVWkGKofY1jbq5Tg\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 80031.0, \"color\": \"#80df70\", \"hover\": \"80031.0\"}}, \"cTkKFRE9ldy7qptah1XVTg\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 23959.0, \"color\": \"#9c50d8\", \"hover\": \"23959.0\"}}, \"JAC8a1Q+hochqr5jsbLVTg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 6513.0, \"color\": \"#08cad9\", \"hover\": \"6513.0\"}}, \"aQooP03pBVj41aWCxfDcTg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 123705.0, \"color\": \"#33b9bc\", \"hover\": \"123705.0\"}}, \"5XK5uESvVd9GptLA6xQbTw\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 92445.0, \"color\": \"#72f75d\", \"hover\": \"92445.0\"}}, \"n1X4/KHhJoXEHcu2C8kfTw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 21796.0, \"color\": \"#32bc93\", \"hover\": \"21796.0\"}}, \"amjJXGmeCcKNQx7MWIwyTw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 118019.0, \"color\": \"#f6a0ef\", \"hover\": \"118019.0\"}}, \"s1UQaN0Z9EukrsqUTC9QTw\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 110789.0, \"color\": \"#b4ea8c\", \"hover\": \"110789.0\"}}, \"rsPQmgY+do4/UOdN5mFlTw\": {\"metadata\": {\"community_id\": 410, \"customer_id\": 112891.0, \"color\": \"#e963e7\", \"hover\": \"112891.0\"}}, \"ie6msI2TYud/Jyyog2mBTw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 40944.0, \"color\": \"#78e968\", \"hover\": \"40944.0\"}}, \"c9jP3tBKcgKqgs7kLyiHTw\": {\"metadata\": {\"community_id\": 411, \"customer_id\": 94226.0, \"color\": \"#97fdf0\", \"hover\": \"94226.0\"}}, \"O66Wkht0x+Gx+BpLls2hTw\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 143149.0, \"color\": \"#11fc2e\", \"hover\": \"143149.0\"}}, \"e1URD8x/rbvMsJPCYU+iTw\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 90399.0, \"color\": \"#c36a1f\", \"hover\": \"90399.0\"}}, \"/b0x2nU/CBynvjL3VeytTw\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 63319.0, \"color\": \"#08cad9\", \"hover\": \"63319.0\"}}, \"1A50rC9DmpBJi2Rzbw+wTw\": {\"metadata\": {\"community_id\": 106, \"customer_id\": 143566.0, \"color\": \"#5bfdd5\", \"hover\": \"143566.0\"}}, \"gs3RLxMx0umpkYbzZnTATw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 83687.0, \"color\": \"#45f210\", \"hover\": \"83687.0\"}}, \"rHM9RQATp1jHQEMKoPrBTw\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 25575.0, \"color\": \"#e4f354\", \"hover\": \"25575.0\"}}, \"dIOeiHNYRJZ2wusE/rvlTw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 66751.0, \"color\": \"#e436ba\", \"hover\": \"66751.0\"}}, \"mmjXNMU5LKHfipb9N8jlTw\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 62709.0, \"color\": \"#e66d6e\", \"hover\": \"62709.0\"}}, \"IBSjXE/BZwDBw+/y9M/xTw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 129955.0, \"color\": \"#62fab8\", \"hover\": \"129955.0\"}}, \"2yyjPHHujpqv9H3nU+D7Tw\": {\"metadata\": {\"community_id\": 313, \"customer_id\": 168263.0, \"color\": \"#73ee57\", \"hover\": \"168263.0\"}}, \"haibKGg3Ak8S09mApb0CUA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 13984.0, \"color\": \"#31ab2f\", \"hover\": \"13984.0\"}}, \"mTMmy/NAdwV89W4WJPIDUA\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 110217.0, \"color\": \"#ade5d7\", \"hover\": \"110217.0\"}}, \"sGb1o4in+YADYHRotfA/UA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 58184.0, \"color\": \"#62fab8\", \"hover\": \"58184.0\"}}, \"KRbWUou+wGv9McaxQY5CUA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 100387.0, \"color\": \"#7aefcb\", \"hover\": \"100387.0\"}}, \"WNgnbHrT1w6mws7dn7ZEUA\": {\"metadata\": {\"community_id\": 412, \"customer_id\": 188601.0, \"color\": \"#7e48c2\", \"hover\": \"188601.0\"}}, \"/e/C4D3oo7qUojV0ezVHUA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 77530.0, \"color\": \"#c12abd\", \"hover\": \"77530.0\"}}, \"HJnZCVM1Suydwko0rNZiUA\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 49758.0, \"color\": \"#b896fe\", \"hover\": \"49758.0\"}}, \"+7mhXK/ObCSwV/qE+rxsUA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 115004.0, \"color\": \"#f8a36c\", \"hover\": \"115004.0\"}}, \"NZGxHLsNhMltwN0o1OpzUA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 195206.0, \"color\": \"#27b4b4\", \"hover\": \"195206.0\"}}, \"tTO1LQu/M4nsk0dADel4UA\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 65644.0, \"color\": \"#a2b81a\", \"hover\": \"65644.0\"}}, \"l8yihHYF3jYLqYPs4PnAUA\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 127438.0, \"color\": \"#80df70\", \"hover\": \"127438.0\"}}, \"gkorgH/UGPyBdCL13IruUA\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 140804.0, \"color\": \"#ab25a7\", \"hover\": \"140804.0\"}}, \"K0pUol7h3ozvqSJCzt/0UA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 72611.0, \"color\": \"#9a62ce\", \"hover\": \"72611.0\"}}, \"1ThrLo2r7sbGKGToF5D/UA\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 109483.0, \"color\": \"#e4a1a2\", \"hover\": \"109483.0\"}}, \"0HqZ+gKQEfBndFGw6c8NUQ\": {\"metadata\": {\"community_id\": 339, \"customer_id\": 20368.0, \"color\": \"#ceeea2\", \"hover\": \"20368.0\"}}, \"4mos+N852EkXkPJhdwEaUQ\": {\"metadata\": {\"community_id\": 413, \"customer_id\": 49934.0, \"color\": \"#f3657e\", \"hover\": \"49934.0\"}}, \"X67JQd6BDRfyuEz1nK08UQ\": {\"metadata\": {\"community_id\": 197, \"customer_id\": 144237.0, \"color\": \"#a48fdd\", \"hover\": \"144237.0\"}}, \"U2FTpl/umiF3aEY5yyFBUQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 19008.0, \"color\": \"#dcc694\", \"hover\": \"19008.0\"}}, \"ra/QjUDbZ1C23TLGAV9BUQ\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 73269.0, \"color\": \"#b2e3a4\", \"hover\": \"73269.0\"}}, \"xrfWfyWvrn2oZzLIjT1bUQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 10836.0, \"color\": \"#4bdb47\", \"hover\": \"10836.0\"}}, \"0KoYr1/sBKYT1rfW8DhgUQ\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 54210.0, \"color\": \"#72f75d\", \"hover\": \"54210.0\"}}, \"UOeum7MZGHUNQopudJNtUQ\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 83311.0, \"color\": \"#b4ea8c\", \"hover\": \"83311.0\"}}, \"cDrqV5O9SkmmDl0mmuF2UQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 23468.0, \"color\": \"#45f210\", \"hover\": \"23468.0\"}}, \"7eOLDy+7tMw6Uf8HgmmSUQ\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 147819.0, \"color\": \"#22b27d\", \"hover\": \"147819.0\"}}, \"So39yTeC3xz+XFDiEbKrUQ\": {\"metadata\": {\"community_id\": 403, \"customer_id\": 65846.0, \"color\": \"#48ddb5\", \"hover\": \"65846.0\"}}, \"Gbr8vIeA/iN+DDLrM2WsUQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 137859.0, \"color\": \"#d8dd94\", \"hover\": \"137859.0\"}}, \"DfFk7TlxB0SKkRl+KSWwUQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 85054.0, \"color\": \"#272dca\", \"hover\": \"85054.0\"}}, \"XwwhNgQzRMen644eZD7KUQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 112887.0, \"color\": \"#45f210\", \"hover\": \"112887.0\"}}, \"2OOBe7bONoWbO75n1P7PUQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 106449.0, \"color\": \"#62fab8\", \"hover\": \"106449.0\"}}, \"Yzj89dd8zQuXn/2N5QvYUQ\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 7788.0, \"color\": \"#c95b7f\", \"hover\": \"7788.0\"}}, \"hvLxb+HIIMnAXb5rrsTYUQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 143614.0, \"color\": \"#33b9bc\", \"hover\": \"143614.0\"}}, \"xr0BKa4pvuxbmEAUMl/lUQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 6664.0, \"color\": \"#7eddd4\", \"hover\": \"6664.0\"}}, \"FTOR0zQk/QrNO8A3N7P8UQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 66490.0, \"color\": \"#6bdba1\", \"hover\": \"66490.0\"}}, \"+cJX4tUrBIaK7+EkSfsAUg\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 165965.0, \"color\": \"#81a8e3\", \"hover\": \"165965.0\"}}, \"uAvywguLcy7TEJ62HqUCUg\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 184308.0, \"color\": \"#5dfc9d\", \"hover\": \"184308.0\"}}, \"X60IMjZAXkAUxMSqc1sFUg\": {\"metadata\": {\"community_id\": 253, \"customer_id\": 195296.0, \"color\": \"#39c8c3\", \"hover\": \"195296.0\"}}, \"Dv4zoru8CYXEoSA9TYIdUg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 144403.0, \"color\": \"#0d14dc\", \"hover\": \"144403.0\"}}, \"NRtep0ikkpPpFE4deg0kUg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 4335.0, \"color\": \"#99b5fc\", \"hover\": \"4335.0\"}}, \"BFKorU/ZsAaR2zzN1iAkUg\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 176376.0, \"color\": \"#d8dd17\", \"hover\": \"176376.0\"}}, \"fOMm6Ou37Z2W7aJSC+0sUg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 36260.0, \"color\": \"#9ee08f\", \"hover\": \"36260.0\"}}, \"RChrb4rJ7Ifl6jZk2ttSUg\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 103692.0, \"color\": \"#a41adf\", \"hover\": \"103692.0\"}}, \"HnEC6Xs9NMQdLmJhPfdnUg\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 29049.0, \"color\": \"#f9c58d\", \"hover\": \"29049.0\"}}, \"A3oYY2V68Bkc4zN29dZqUg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 19265.0, \"color\": \"#92e5be\", \"hover\": \"19265.0\"}}, \"JLJ/TFle8PFG1cHz1E1uUg\": {\"metadata\": {\"community_id\": 417, \"customer_id\": 163052.0, \"color\": \"#2465ae\", \"hover\": \"163052.0\"}}, \"7ldQ2Bb1e9My15lZ+EByUg\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 167537.0, \"color\": \"#6bdba1\", \"hover\": \"167537.0\"}}, \"sWKWSenk2C9eaWrxecV1Ug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 91841.0, \"color\": \"#99b5fc\", \"hover\": \"91841.0\"}}, \"djPc9CUQxRvQdtbRzAyjUg\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 80934.0, \"color\": \"#aae3e3\", \"hover\": \"80934.0\"}}, \"/H0ynYgQrKSlcy6FNPCqUg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 150444.0, \"color\": \"#b3df71\", \"hover\": \"150444.0\"}}, \"sAbMJ4JNtrkiNxfJM/22Ug\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 17776.0, \"color\": \"#b1afe7\", \"hover\": \"17776.0\"}}, \"suSw4S5oHiaXj/kWA7m4Ug\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 81420.0, \"color\": \"#98d0f5\", \"hover\": \"81420.0\"}}, \"5azXQZMF5UTinlXaZIC7Ug\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 164133.0, \"color\": \"#974bf4\", \"hover\": \"164133.0\"}}, \"mTB/opsLISz/IYCbZWnQUg\": {\"metadata\": {\"community_id\": 419, \"customer_id\": 161918.0, \"color\": \"#ee82a4\", \"hover\": \"161918.0\"}}, \"WmyNCi3UI7xVfgyEgQTfUg\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 96467.0, \"color\": \"#d53cea\", \"hover\": \"96467.0\"}}, \"bjgiBt1reGHjsHTW+QP1Ug\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 78765.0, \"color\": \"#e6c381\", \"hover\": \"78765.0\"}}, \"ck6ssgoFVr2rk/XKn1AnUw\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 38317.0, \"color\": \"#404dcf\", \"hover\": \"38317.0\"}}, \"1ECPLScyImUDmwsrLCs5Uw\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 155368.0, \"color\": \"#5dedcd\", \"hover\": \"155368.0\"}}, \"UnMVJbIAOTybaBsAyfxQUw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 16839.0, \"color\": \"#78e968\", \"hover\": \"16839.0\"}}, \"WRVIPJmmW1C9askKNNRiUw\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 165940.0, \"color\": \"#59e09f\", \"hover\": \"165940.0\"}}, \"402+Q4nAghzmmhzcXv9sUw\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 91508.0, \"color\": \"#9bc430\", \"hover\": \"91508.0\"}}, \"9vM/M/R88223PZSDUnV8Uw\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 156696.0, \"color\": \"#92e5be\", \"hover\": \"156696.0\"}}, \"Ciq4M1yRMrhQLd85nBeOUw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 139370.0, \"color\": \"#dcc694\", \"hover\": \"139370.0\"}}, \"/sG+lWv0qnoQuVdyd5KUUw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 127862.0, \"color\": \"#7aefcb\", \"hover\": \"127862.0\"}}, \"vD9s1XC8nMshE2yQpfmXUw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 133275.0, \"color\": \"#99ef99\", \"hover\": \"133275.0\"}}, \"n/wtIbSj4hJctHmq4SrGUw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 190662.0, \"color\": \"#7eddd4\", \"hover\": \"190662.0\"}}, \"61eleyxtAaRL9cz885XIUw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 40563.0, \"color\": \"#b70fc0\", \"hover\": \"40563.0\"}}, \"F9CMSEB+Yw3UKbZKivXiUw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 1659.0, \"color\": \"#99ef99\", \"hover\": \"1659.0\"}}, \"bv3PChfP/0t22LDSCoYRVA\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 129316.0, \"color\": \"#8317fe\", \"hover\": \"129316.0\"}}, \"NQ2Kua1CDQH1/zRWd1YaVA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 9622.0, \"color\": \"#e436ba\", \"hover\": \"9622.0\"}}, \"MvO9GEb2B9OFQ1vFyxccVA\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 178207.0, \"color\": \"#cb84ef\", \"hover\": \"178207.0\"}}, \"VzXB6IJaLXEXJ8d8MMJbVA\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 177834.0, \"color\": \"#9762ed\", \"hover\": \"177834.0\"}}, \"BJbJMVQIq8Prb7R9KmqRVA\": {\"metadata\": {\"community_id\": 420, \"customer_id\": 171124.0, \"color\": \"#89e0bd\", \"hover\": \"171124.0\"}}, \"AFbeOfS8Fhf7S6zrL2GYVA\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 196069.0, \"color\": \"#99f46c\", \"hover\": \"196069.0\"}}, \"ODOfjCoQGHXAkZ+DJzahVA\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 4791.0, \"color\": \"#96fa14\", \"hover\": \"4791.0\"}}, \"z+l8ckU+S5XnZDQNlVahVA\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 55009.0, \"color\": \"#23d695\", \"hover\": \"55009.0\"}}, \"Gf88tDhAetc/OxboxVK8VA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 159761.0, \"color\": \"#272dca\", \"hover\": \"159761.0\"}}, \"I7hEb7oVDnJItkadyKrCVA\": {\"metadata\": {\"community_id\": 422, \"customer_id\": 131929.0, \"color\": \"#e33440\", \"hover\": \"131929.0\"}}, \"7iLqJ+rwS9A/DZ3vrRjTVA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 170584.0, \"color\": \"#d53e3e\", \"hover\": \"170584.0\"}}, \"/FbYCEQvYjAF7sxBwUvWVA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 90520.0, \"color\": \"#78e968\", \"hover\": \"90520.0\"}}, \"IibzINOrT7+RADphvGLbVA\": {\"metadata\": {\"community_id\": 423, \"customer_id\": 198736.0, \"color\": \"#78e0aa\", \"hover\": \"198736.0\"}}, \"57lEGqv3yMd/4KTgvYbdVA\": {\"metadata\": {\"community_id\": 424, \"customer_id\": 189934.0, \"color\": \"#9654fa\", \"hover\": \"189934.0\"}}, \"Cqan0D3Fg33T/2CdKx/gVA\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 111073.0, \"color\": \"#d74a1b\", \"hover\": \"111073.0\"}}, \"/XdeD6LQuOcKj3zG8GDqVA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 75864.0, \"color\": \"#b70fc0\", \"hover\": \"75864.0\"}}, \"pb73mVNEl7N+Chk55BH2VA\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 188168.0, \"color\": \"#9e78f3\", \"hover\": \"188168.0\"}}, \"P7GmEF9OEFNMiorXM0//VA\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 174481.0, \"color\": \"#a6c704\", \"hover\": \"174481.0\"}}, \"mfNb4PePcIOAfwupmedlVQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 2650.0, \"color\": \"#33b9bc\", \"hover\": \"2650.0\"}}, \"YrrsQS8pOEwx8jIkOi12VQ\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 155676.0, \"color\": \"#6acd09\", \"hover\": \"155676.0\"}}, \"FKCFaiakBcRnTlkVYzyIVQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 13839.0, \"color\": \"#272dca\", \"hover\": \"13839.0\"}}, \"bjM1RTxMkbo9D2ZgF6+JVQ\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 95403.0, \"color\": \"#ee2bd7\", \"hover\": \"95403.0\"}}, \"FvJM048TPlichlBDXcGLVQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 109979.0, \"color\": \"#10d82f\", \"hover\": \"109979.0\"}}, \"B5o2moO+zZgiWlvKn6eUVQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 171892.0, \"color\": \"#b6f88d\", \"hover\": \"171892.0\"}}, \"lgCoz88OaqYPJJTBOXurVQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 104477.0, \"color\": \"#33b9bc\", \"hover\": \"104477.0\"}}, \"efrUM+KiMZNcsDhX4gXcVQ\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 57423.0, \"color\": \"#4037bc\", \"hover\": \"57423.0\"}}, \"dSSZ+HP6teRDlmQgSqDoVQ\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 17959.0, \"color\": \"#14d13f\", \"hover\": \"17959.0\"}}, \"hGEk18My+bGDzPUGuGj1VQ\": {\"metadata\": {\"community_id\": 289, \"customer_id\": 3644.0, \"color\": \"#5e77ec\", \"hover\": \"3644.0\"}}, \"D32fNkXbGb8JntDyIq0DVg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 111269.0, \"color\": \"#1bd89a\", \"hover\": \"111269.0\"}}, \"Ae9DRMtLdxRiRvwoQZcWVg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 15324.0, \"color\": \"#b70fc0\", \"hover\": \"15324.0\"}}, \"KaWuVUZ3E9K5pqffOyoaVg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 84522.0, \"color\": \"#272dca\", \"hover\": \"84522.0\"}}, \"93HOrLa/6emnc4Mf45A8Vg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 116224.0, \"color\": \"#45f210\", \"hover\": \"116224.0\"}}, \"TJyQjmH+Od59eoQ7hHxGVg\": {\"metadata\": {\"community_id\": 426, \"customer_id\": 160958.0, \"color\": \"#cf3f1e\", \"hover\": \"160958.0\"}}, \"UzNqOCgoTFGUyAk8syFNVg\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 180866.0, \"color\": \"#4bdb47\", \"hover\": \"180866.0\"}}, \"Of3cqqWX3hgee7b+lotWVg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 156464.0, \"color\": \"#1bd89a\", \"hover\": \"156464.0\"}}, \"imqM2tAn9iI3UoMOfiJ9Vg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 50527.0, \"color\": \"#e0b23c\", \"hover\": \"50527.0\"}}, \"PAOaHKlVSzf3ntsoHnOGVg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 131751.0, \"color\": \"#99ef99\", \"hover\": \"131751.0\"}}, \"6s1uAbZCzoVJ6MCikPyIVg\": {\"metadata\": {\"community_id\": 257, \"customer_id\": 87056.0, \"color\": \"#b68efb\", \"hover\": \"87056.0\"}}, \"NqzCCjAYhYA57dD9FeKWVg\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 10180.0, \"color\": \"#5dca06\", \"hover\": \"10180.0\"}}, \"v6OGQ3IGrh7t1+9Pc5ClVg\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 193984.0, \"color\": \"#7aefcb\", \"hover\": \"193984.0\"}}, \"Howi1yXCwy8xQvfqMDCwVg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 58969.0, \"color\": \"#f8a36c\", \"hover\": \"58969.0\"}}, \"NHOlG6qRJsYm8dvs+h/UVg\": {\"metadata\": {\"community_id\": 427, \"customer_id\": 15181.0, \"color\": \"#bd9917\", \"hover\": \"15181.0\"}}, \"xJHtdpGIDLHQjNe8T6/tVg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 3375.0, \"color\": \"#f6a0ef\", \"hover\": \"3375.0\"}}, \"C0NnqLBhV+x4qrVn6I0TVw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 162324.0, \"color\": \"#dcc694\", \"hover\": \"162324.0\"}}, \"9/jm2PrbMRIBoEk4C/ojVw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 44757.0, \"color\": \"#7aefcb\", \"hover\": \"44757.0\"}}, \"KBvffIWk1pKZrIIrmmUtVw\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 137219.0, \"color\": \"#11fc2e\", \"hover\": \"137219.0\"}}, \"ENFraASWg5RdTlQ8G8E6Vw\": {\"metadata\": {\"community_id\": 428, \"customer_id\": 179554.0, \"color\": \"#f77a0a\", \"hover\": \"179554.0\"}}, \"1c9qdGnhBhonltEFNBk+Vw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 88911.0, \"color\": \"#eba59b\", \"hover\": \"88911.0\"}}, \"eCws2fVFKsN6qLY70X9GVw\": {\"metadata\": {\"community_id\": 429, \"customer_id\": 150992.0, \"color\": \"#a02ea4\", \"hover\": \"150992.0\"}}, \"48shU8rWkVDv9ux1mYNJVw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 54641.0, \"color\": \"#78e968\", \"hover\": \"54641.0\"}}, \"gYTNxn8CAsLGcly8ASpLVw\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 97410.0, \"color\": \"#f27249\", \"hover\": \"97410.0\"}}, \"SToRdrEwGm/BztKtepZaVw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 75395.0, \"color\": \"#7aefcb\", \"hover\": \"75395.0\"}}, \"LAr9yFll6jcyvIbcPNFfVw\": {\"metadata\": {\"community_id\": 429, \"customer_id\": 118725.0, \"color\": \"#a02ea4\", \"hover\": \"118725.0\"}}, \"xSijYTPxbvF64cPzbe9oVw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 49945.0, \"color\": \"#10d82f\", \"hover\": \"49945.0\"}}, \"ju2FdjnvEwJERaFrBSF1Vw\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 111573.0, \"color\": \"#50c2ef\", \"hover\": \"111573.0\"}}, \"TsyJJhx24NuArVGKSiK9Vw\": {\"metadata\": {\"community_id\": 153, \"customer_id\": 151333.0, \"color\": \"#9b36d1\", \"hover\": \"151333.0\"}}, \"1eS0SAabJx3xGSCwWSbPVw\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 103817.0, \"color\": \"#d53e3e\", \"hover\": \"103817.0\"}}, \"WPY/12VLyv/ZGCMOGvjPVw\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 110338.0, \"color\": \"#f3a1c6\", \"hover\": \"110338.0\"}}, \"34hValFnV2+dT4B4gubXVw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 137205.0, \"color\": \"#eba59b\", \"hover\": \"137205.0\"}}, \"ztcyThZuB1bSoMVv35vfVw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 100431.0, \"color\": \"#f6a0ef\", \"hover\": \"100431.0\"}}, \"ulMN+MhAnO/xSs9XqSD1Vw\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 39253.0, \"color\": \"#dfb962\", \"hover\": \"39253.0\"}}, \"rOaXdLN11aUlsObk+Cn8Vw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 58229.0, \"color\": \"#f6a0ef\", \"hover\": \"58229.0\"}}, \"cq9Ea27BfLntD/Il3YYHWA\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 196498.0, \"color\": \"#c7de5b\", \"hover\": \"196498.0\"}}, \"sZQt0HcBdAnBVufRutAdWA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 66271.0, \"color\": \"#7eddd4\", \"hover\": \"66271.0\"}}, \"1zegi/QAelz/NhbUIXIkWA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 157589.0, \"color\": \"#33b9bc\", \"hover\": \"157589.0\"}}, \"72sWJrEiMlL0pIoWjHY5WA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 107501.0, \"color\": \"#c12abd\", \"hover\": \"107501.0\"}}, \"qkDwhgegxr+4Q7DZidQ+WA\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 178811.0, \"color\": \"#99ea58\", \"hover\": \"178811.0\"}}, \"qvgHYr//5UeK5A/rGOI+WA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 193636.0, \"color\": \"#0d14dc\", \"hover\": \"193636.0\"}}, \"01UXGd9bYhs21penRlNEWA\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 130797.0, \"color\": \"#974bf4\", \"hover\": \"130797.0\"}}, \"2l287p85LameY/XlSjFLWA\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 149640.0, \"color\": \"#e66d6e\", \"hover\": \"149640.0\"}}, \"9otxW3iqkb6mUsVibfZLWA\": {\"metadata\": {\"community_id\": 431, \"customer_id\": 135776.0, \"color\": \"#feb381\", \"hover\": \"135776.0\"}}, \"L4R7iZWb3a4kArkl2EZPWA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 191673.0, \"color\": \"#d53e3e\", \"hover\": \"191673.0\"}}, \"wwgZ4aqOeVTXMNCdUON5WA\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 24414.0, \"color\": \"#de86e2\", \"hover\": \"24414.0\"}}, \"aIIgb7T9OT5k+4MjasF9WA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 9886.0, \"color\": \"#78e968\", \"hover\": \"9886.0\"}}, \"W6goBNVWB0Ihs8xMQ0iGWA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 76195.0, \"color\": \"#9ee08f\", \"hover\": \"76195.0\"}}, \"kbys4oCqW7mu52nFXjihWA\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 197921.0, \"color\": \"#d33b43\", \"hover\": \"197921.0\"}}, \"jSN7JY5CiEq76H/IKAPBWA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 122715.0, \"color\": \"#7eddd4\", \"hover\": \"122715.0\"}}, \"rTMHQmIf07jtnjcUShfGWA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 183280.0, \"color\": \"#c12abd\", \"hover\": \"183280.0\"}}, \"COZSAihw0piprQZNqhPTWA\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 116786.0, \"color\": \"#b621e2\", \"hover\": \"116786.0\"}}, \"3fUOLgr8CbZwWyLGmWvaWA\": {\"metadata\": {\"community_id\": 433, \"customer_id\": 44103.0, \"color\": \"#23bcae\", \"hover\": \"44103.0\"}}, \"gUFSWzIUmsXeT+D4FdTbWA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 66146.0, \"color\": \"#a372d3\", \"hover\": \"66146.0\"}}, \"VjjH8fRdx0M/KrNVGsogWQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 127582.0, \"color\": \"#9a62ce\", \"hover\": \"127582.0\"}}, \"7Qw8vIzjf/i1LCT9VUE8WQ\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 178089.0, \"color\": \"#2575dd\", \"hover\": \"178089.0\"}}, \"rK+9r/bJqlMdwX6xNutDWQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 198339.0, \"color\": \"#7eddd4\", \"hover\": \"198339.0\"}}, \"y/EwmqIjSs3C9CuihUtVWQ\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 96479.0, \"color\": \"#f790f0\", \"hover\": \"96479.0\"}}, \"sTbdtccB3oN5Rz44Z2paWQ\": {\"metadata\": {\"community_id\": 435, \"customer_id\": 38665.0, \"color\": \"#b330ae\", \"hover\": \"38665.0\"}}, \"CY1ASUvL41NMGfDtdMFmWQ\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 36531.0, \"color\": \"#b58c2b\", \"hover\": \"36531.0\"}}, \"SbGcVcraYDc/7ZlQ7SJ3WQ\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 149424.0, \"color\": \"#3b61cf\", \"hover\": \"149424.0\"}}, \"RTckRKEGiClaU/kOghmIWQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 54113.0, \"color\": \"#81a8e3\", \"hover\": \"54113.0\"}}, \"2qeJ2xkq8iCVJMJx6+6KWQ\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 179851.0, \"color\": \"#bdea14\", \"hover\": \"179851.0\"}}, \"6NRZyNIXOo0yh70A0I2iWQ\": {\"metadata\": {\"community_id\": 437, \"customer_id\": 46753.0, \"color\": \"#7a5cdc\", \"hover\": \"46753.0\"}}, \"Fq7qvVEGpK+4BKNxxNn7WQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 7290.0, \"color\": \"#f6a0ef\", \"hover\": \"7290.0\"}}, \"kkXV8yqVeCt4dSV3PqIJWg\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 62173.0, \"color\": \"#10f433\", \"hover\": \"62173.0\"}}, \"h8KNYZHf0bxUHrr8W4MKWg\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 59644.0, \"color\": \"#7bfa46\", \"hover\": \"59644.0\"}}, \"ehhpQk8GXvQZRIxOZggVWg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 102367.0, \"color\": \"#62fab8\", \"hover\": \"102367.0\"}}, \"eUot1iW5hlu7RiRC2m4gWg\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 71724.0, \"color\": \"#c57051\", \"hover\": \"71724.0\"}}, \"YRplCx8z9GNMnXrPdwUkWg\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 41073.0, \"color\": \"#fa6270\", \"hover\": \"41073.0\"}}, \"oz8+VHSy77Ift85Thf8zWg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 34583.0, \"color\": \"#62fab8\", \"hover\": \"34583.0\"}}, \"0MLR6jlBtVCGZVRTpK9XWg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 181554.0, \"color\": \"#ee2a13\", \"hover\": \"181554.0\"}}, \"/aM4gHYQGmLOHeMeBo9xWg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 26246.0, \"color\": \"#33b9bc\", \"hover\": \"26246.0\"}}, \"OYH5ske6RuFozNHIa7hzWg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 138314.0, \"color\": \"#f8a36c\", \"hover\": \"138314.0\"}}, \"/2rrq0GcdJM54Cu4x7d4Wg\": {\"metadata\": {\"community_id\": 439, \"customer_id\": 62565.0, \"color\": \"#6474e9\", \"hover\": \"62565.0\"}}, \"wuWhg4Yw6D8Ry0qr0sGCWg\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 73203.0, \"color\": \"#9fe4a3\", \"hover\": \"73203.0\"}}, \"VHmR3tDa7EGSZ8FpyTy4Wg\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 180893.0, \"color\": \"#05b7da\", \"hover\": \"180893.0\"}}, \"YWjU6xATC2Q0iWOLiX/MWg\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 20218.0, \"color\": \"#7aefcb\", \"hover\": \"20218.0\"}}, \"nPeh2fAxx1RfouYcbSPfWg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 186505.0, \"color\": \"#9ee08f\", \"hover\": \"186505.0\"}}, \"G61pOLo45+GyyS5e8k3vWg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 179331.0, \"color\": \"#99b5fc\", \"hover\": \"179331.0\"}}, \"4G0IR8MZNUMbPoD8p68XWw\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 70751.0, \"color\": \"#0cd5fa\", \"hover\": \"70751.0\"}}, \"LMiOnh18K5J2ysJ7jEkoWw\": {\"metadata\": {\"community_id\": 440, \"customer_id\": 35470.0, \"color\": \"#d71edf\", \"hover\": \"35470.0\"}}, \"0l/H5+6WdS+zglOIO0swWw\": {\"metadata\": {\"community_id\": 441, \"customer_id\": 43435.0, \"color\": \"#e4e769\", \"hover\": \"43435.0\"}}, \"cjaT01wvS95eIsEKQUdEWw\": {\"metadata\": {\"community_id\": 6, \"customer_id\": 184563.0, \"color\": \"#e2c37b\", \"hover\": \"184563.0\"}}, \"ruqNFuUB6tHVOz0EcqpPWw\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 43161.0, \"color\": \"#e6c381\", \"hover\": \"43161.0\"}}, \"X9jduueKJ+ghpIqAdXSLWw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 17819.0, \"color\": \"#1bd89a\", \"hover\": \"17819.0\"}}, \"navgg+2v2IpcTItMEGeWWw\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 143733.0, \"color\": \"#7cec6a\", \"hover\": \"143733.0\"}}, \"9BqTzf+HI3o6WFXzcgP6Ww\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 32609.0, \"color\": \"#6bdba1\", \"hover\": \"32609.0\"}}, \"cjBusNr5IUANno8M2pAeXA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 130860.0, \"color\": \"#27b4b4\", \"hover\": \"130860.0\"}}, \"r822x+ZsDaqU9LZ1qUcvXA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 166290.0, \"color\": \"#1bd89a\", \"hover\": \"166290.0\"}}, \"AXXDOz0vS2tmKhyIhXZEXA\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 85468.0, \"color\": \"#7dd8f9\", \"hover\": \"85468.0\"}}, \"MX1iQXm9JIumNefXUd9PXA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 67843.0, \"color\": \"#a372d3\", \"hover\": \"67843.0\"}}, \"74bZRN5X5IW1TnM8MGtaXA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 158917.0, \"color\": \"#b70fc0\", \"hover\": \"158917.0\"}}, \"wxNjDbtynlXPoy/Q5D2AXA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 172045.0, \"color\": \"#9a62ce\", \"hover\": \"172045.0\"}}, \"qIoEZ9sS5H1dN+Jo7fCcXA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 11255.0, \"color\": \"#33b9bc\", \"hover\": \"11255.0\"}}, \"HKsqt90NplyxlSg6LyWgXA\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 197814.0, \"color\": \"#b5d851\", \"hover\": \"197814.0\"}}, \"r23aQzJKO9y3d2dOK0ijXA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 165709.0, \"color\": \"#6bdba1\", \"hover\": \"165709.0\"}}, \"mDhEd8i5IRTiz5zzp+nHXA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 127079.0, \"color\": \"#33b9bc\", \"hover\": \"127079.0\"}}, \"oFQNBM4xI+HgY5Q9FrzhXA\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 23583.0, \"color\": \"#b896fe\", \"hover\": \"23583.0\"}}, \"V+s32xIiYLwU4mBWjW8iXQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 116686.0, \"color\": \"#f73d92\", \"hover\": \"116686.0\"}}, \"fTIctR0vW2sc4q6ZyMg6XQ\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 29343.0, \"color\": \"#8e21cf\", \"hover\": \"29343.0\"}}, \"WVpCA2eA54bnl3oSospTXQ\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 101338.0, \"color\": \"#ae692e\", \"hover\": \"101338.0\"}}, \"claAW9BD3Hw/5DoSlbSKXQ\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 12779.0, \"color\": \"#e2d385\", \"hover\": \"12779.0\"}}, \"PcXLA8V21+Wb46Z5bgKSXQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 179367.0, \"color\": \"#d8c96d\", \"hover\": \"179367.0\"}}, \"ogQ/15xsZTPagM0jd0GpXQ\": {\"metadata\": {\"community_id\": 444, \"customer_id\": 65045.0, \"color\": \"#b960d9\", \"hover\": \"65045.0\"}}, \"UQUtbMtXhRdVUpHFPw/mXQ\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 106334.0, \"color\": \"#d74a1b\", \"hover\": \"106334.0\"}}, \"LoiEF56LLlDPf+Us5wX/XQ\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 24852.0, \"color\": \"#c36a1f\", \"hover\": \"24852.0\"}}, \"aKkEMSzcA3tK7Ey9aHwJXg\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 197080.0, \"color\": \"#b9e04a\", \"hover\": \"197080.0\"}}, \"KCJwaDRWgE9q3q7OmKEJXg\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 186827.0, \"color\": \"#65e08d\", \"hover\": \"186827.0\"}}, \"wRRfjVSXW26fS6X5yakhXg\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 88809.0, \"color\": \"#b621e2\", \"hover\": \"88809.0\"}}, \"85ApQUxq0xx83S44A+NLXg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 40421.0, \"color\": \"#10d82f\", \"hover\": \"40421.0\"}}, \"IEvjI9DghsvK8rqHLAZbXg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 125325.0, \"color\": \"#92e5be\", \"hover\": \"125325.0\"}}, \"JqM77VUcNwh2YpJxMTdfXg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 15027.0, \"color\": \"#08cad9\", \"hover\": \"15027.0\"}}, \"C0Wtey5jUwozMtZQ/zCGXg\": {\"metadata\": {\"community_id\": 189, \"customer_id\": 145770.0, \"color\": \"#eb91d5\", \"hover\": \"145770.0\"}}, \"vL+/RI7kdpbY/Np/ysigXg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 175658.0, \"color\": \"#b3df71\", \"hover\": \"175658.0\"}}, \"nL/ewA9/7hfFwMYmieKsXg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 141300.0, \"color\": \"#33b9bc\", \"hover\": \"141300.0\"}}, \"N5rUu9Z9APXGiNRDfx7hXg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 10462.0, \"color\": \"#2f82a1\", \"hover\": \"10462.0\"}}, \"+WN1SyOPTILYm74gipLlXg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 22.0, \"color\": \"#45f210\", \"hover\": \"22.0\"}}, \"wneYD+VDwhkmw532fW7qXg\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 79152.0, \"color\": \"#14c9e9\", \"hover\": \"79152.0\"}}, \"llovrNhzEbhUrsORmDYEXw\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 11607.0, \"color\": \"#99ea58\", \"hover\": \"11607.0\"}}, \"mt56Y7tQ3sCIsVJj4zkXXw\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 197990.0, \"color\": \"#2795b1\", \"hover\": \"197990.0\"}}, \"AFFAXTu2gNkQUc+It6w8Xw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 181375.0, \"color\": \"#c12abd\", \"hover\": \"181375.0\"}}, \"hu8ICB4fKw3AVpjcGUhZXw\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 49477.0, \"color\": \"#7a01d9\", \"hover\": \"49477.0\"}}, \"1wbch8nHNaJm78RwT0NdXw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 146533.0, \"color\": \"#4bdb47\", \"hover\": \"146533.0\"}}, \"s933IHR2SOYkrslDC3JgXw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 53914.0, \"color\": \"#1bd89a\", \"hover\": \"53914.0\"}}, \"O6j0sHDBfrnArqvkE5CKXw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 122349.0, \"color\": \"#c12abd\", \"hover\": \"122349.0\"}}, \"2q/2mxK7z5s4ow/GfXubXw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 55358.0, \"color\": \"#dcc694\", \"hover\": \"55358.0\"}}, \"pslubpS6aAxQnPsj4LiuXw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 56838.0, \"color\": \"#c12abd\", \"hover\": \"56838.0\"}}, \"QL8CggzdkKjyhEKfupbCXw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 113837.0, \"color\": \"#45f210\", \"hover\": \"113837.0\"}}, \"hW366XCp/i7HQnhv+RXHXw\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 87511.0, \"color\": \"#d3da39\", \"hover\": \"87511.0\"}}, \"iwHVSQbCvnI2VmbeHJzpXw\": {\"metadata\": {\"community_id\": 263, \"customer_id\": 63774.0, \"color\": \"#e47c2c\", \"hover\": \"63774.0\"}}, \"9DtTLKdp0pHZCbYalxQFYA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 70078.0, \"color\": \"#d53cea\", \"hover\": \"70078.0\"}}, \"KFHWcKdMUM2lpGAGG5QHYA\": {\"metadata\": {\"community_id\": 445, \"customer_id\": 140512.0, \"color\": \"#6ae164\", \"hover\": \"140512.0\"}}, \"fiycSpGQtRIfH6qDzzcOYA\": {\"metadata\": {\"community_id\": 446, \"customer_id\": 44309.0, \"color\": \"#da6ec4\", \"hover\": \"44309.0\"}}, \"mg8Nu7Q5bKwFsnbmTm8hYA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 190830.0, \"color\": \"#62fab8\", \"hover\": \"190830.0\"}}, \"qnfy1S5fbWxIZW6Zb7k6YA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 93037.0, \"color\": \"#33b9bc\", \"hover\": \"93037.0\"}}, \"kuBx2V5/s9xhPbFh+oNQYA\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 105586.0, \"color\": \"#80df70\", \"hover\": \"105586.0\"}}, \"js8Y0lf08jWreDJNejVvYA\": {\"metadata\": {\"community_id\": 405, \"customer_id\": 11517.0, \"color\": \"#f12155\", \"hover\": \"11517.0\"}}, \"0i+8vwHItC+FNSCN6RN8YA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 6705.0, \"color\": \"#b3df71\", \"hover\": \"6705.0\"}}, \"KqHNtZd2xUrZodIDS0CcYA\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 47247.0, \"color\": \"#b129ec\", \"hover\": \"47247.0\"}}, \"iCmnZi9CFvdYvyiq1vugYA\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 22393.0, \"color\": \"#ef7529\", \"hover\": \"22393.0\"}}, \"xYBnEJB+6rnvZzZiDcWrYA\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 81004.0, \"color\": \"#fcce99\", \"hover\": \"81004.0\"}}, \"9lPR2cQoicAzSOP9+WO8YA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 160348.0, \"color\": \"#c1351e\", \"hover\": \"160348.0\"}}, \"89h2vLD4vEBZ5Cp2urzkYA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 75134.0, \"color\": \"#32bc93\", \"hover\": \"75134.0\"}}, \"CfMMoO/qZjDVZ7RWqmTmYA\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 62202.0, \"color\": \"#99f46c\", \"hover\": \"62202.0\"}}, \"TPUTckho+StrbYBpi7L0YA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 57876.0, \"color\": \"#99ef99\", \"hover\": \"57876.0\"}}, \"z+8oF1aKjRu86R3aUjcFYQ\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 184394.0, \"color\": \"#c98e0a\", \"hover\": \"184394.0\"}}, \"ZdnDVxJ8lr+5jJxYfk8HYQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 129096.0, \"color\": \"#10d82f\", \"hover\": \"129096.0\"}}, \"96ej3oz+rX9j51QcdY4qYQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 177279.0, \"color\": \"#99b5fc\", \"hover\": \"177279.0\"}}, \"hddOV5f0YEFb3ePvE1FUYQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 70068.0, \"color\": \"#7aefcb\", \"hover\": \"70068.0\"}}, \"Tkjte2I8ttkrymdWYWyFYQ\": {\"metadata\": {\"community_id\": 448, \"customer_id\": 37924.0, \"color\": \"#f1959a\", \"hover\": \"37924.0\"}}, \"sHv2V4ZuvehzCwHPCnOQYQ\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 29066.0, \"color\": \"#aa28fe\", \"hover\": \"29066.0\"}}, \"A8RHRlYqsCVKm8quwQqhYQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 101206.0, \"color\": \"#33b9bc\", \"hover\": \"101206.0\"}}, \"1TdVU0dsTMlPESXgZHGtYQ\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 167644.0, \"color\": \"#f091c1\", \"hover\": \"167644.0\"}}, \"KF/ggkreIF0LsX56a0nTYQ\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 53301.0, \"color\": \"#81fdc7\", \"hover\": \"53301.0\"}}, \"h8PJ8ykifxVNLeHWFe/lYQ\": {\"metadata\": {\"community_id\": 449, \"customer_id\": 181206.0, \"color\": \"#baf398\", \"hover\": \"181206.0\"}}, \"Rr9emPI1nLHqljrbD4DvYQ\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 53674.0, \"color\": \"#f9c58d\", \"hover\": \"53674.0\"}}, \"pejzevFVc+aG7TCaqhshYg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 80555.0, \"color\": \"#c12abd\", \"hover\": \"80555.0\"}}, \"IXdPVWFghod/SBOsAt1aYg\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 92342.0, \"color\": \"#9c50d8\", \"hover\": \"92342.0\"}}, \"81/t15zn23kc/9M+VRloYg\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 11932.0, \"color\": \"#72f75d\", \"hover\": \"11932.0\"}}, \"/i+pP6jIG4qaUe+SGq5pYg\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 151693.0, \"color\": \"#b621e2\", \"hover\": \"151693.0\"}}, \"HCQKKS5z1h7eYqav2fhzYg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 49889.0, \"color\": \"#33b9bc\", \"hover\": \"49889.0\"}}, \"xI1aLjQUZ7LtO3/xEnJ+Yg\": {\"metadata\": {\"community_id\": 450, \"customer_id\": 191269.0, \"color\": \"#34979f\", \"hover\": \"191269.0\"}}, \"8eST8m92csATI1mdEtKGYg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 8440.0, \"color\": \"#b3df71\", \"hover\": \"8440.0\"}}, \"uSDlN/LPFKzTcwmARYOSYg\": {\"metadata\": {\"community_id\": 451, \"customer_id\": 68905.0, \"color\": \"#d07c5b\", \"hover\": \"68905.0\"}}, \"dyG5yCEuXNa7zINq/JKjYg\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 23202.0, \"color\": \"#eda379\", \"hover\": \"23202.0\"}}, \"T9flAVJsWQvGQcCuP9ajYg\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 99189.0, \"color\": \"#eb7a31\", \"hover\": \"99189.0\"}}, \"EMY6LHYwmd0QTiRrnsetYg\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 91325.0, \"color\": \"#68e09d\", \"hover\": \"91325.0\"}}, \"cS/bpu52WCU9X+jUmZu+Yg\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 28763.0, \"color\": \"#14d13f\", \"hover\": \"28763.0\"}}, \"J+ybODI7/elM6CANxmPBYg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 137520.0, \"color\": \"#c12abd\", \"hover\": \"137520.0\"}}, \"DhHo3HeMfTGX/H0KDyMNYw\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 17012.0, \"color\": \"#c7de5b\", \"hover\": \"17012.0\"}}, \"OJf7EQPGS6EnYbiBM5pSYw\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 109705.0, \"color\": \"#f8a36c\", \"hover\": \"109705.0\"}}, \"olk1QAFpHTZg1V+12hNUYw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 119873.0, \"color\": \"#7eddd4\", \"hover\": \"119873.0\"}}, \"Ow3h3bI7n0amMosQn3tVYw\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 53869.0, \"color\": \"#31e037\", \"hover\": \"53869.0\"}}, \"GnAbts15yBTBPSTHzQh7Yw\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 61024.0, \"color\": \"#09ef53\", \"hover\": \"61024.0\"}}, \"1THmiGWj4fAKDegLXyKkYw\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 135635.0, \"color\": \"#f091c1\", \"hover\": \"135635.0\"}}, \"TECaccIMdVH1O/B8fm3MYw\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 148884.0, \"color\": \"#d9480a\", \"hover\": \"148884.0\"}}, \"vD6OZSkKU8GFj6Hs3gPXYw\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 145506.0, \"color\": \"#32fdb8\", \"hover\": \"145506.0\"}}, \"F5HRLcAVvtui7yRoAlPYYw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 59161.0, \"color\": \"#e493a3\", \"hover\": \"59161.0\"}}, \"PYoMtmsPFxpKNYEV4SDZYw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 85162.0, \"color\": \"#b3df71\", \"hover\": \"85162.0\"}}, \"e/1HN0Ox0h0DrOXmQ7b/Yw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 99438.0, \"color\": \"#272dca\", \"hover\": \"99438.0\"}}, \"ZvBzxChZplZxvBcbRvQNZA\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 198931.0, \"color\": \"#eb06bc\", \"hover\": \"198931.0\"}}, \"XLl7+jPIy0KntxXZsFAjZA\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 75109.0, \"color\": \"#e6dab1\", \"hover\": \"75109.0\"}}, \"eQM+KwEzGGQwXa5pfTsnZA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 131388.0, \"color\": \"#5dca06\", \"hover\": \"131388.0\"}}, \"gvm93D0ferkbDxApCNsyZA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 190732.0, \"color\": \"#99ef99\", \"hover\": \"190732.0\"}}, \"+JdY8sLhBcaEI+2fsGZAZA\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 175446.0, \"color\": \"#b1afe7\", \"hover\": \"175446.0\"}}, \"LkM0/MtyKDGvzCG666tvZA\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 93259.0, \"color\": \"#5937d3\", \"hover\": \"93259.0\"}}, \"vD7RLkl2lIfpCxXIygFzZA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 153883.0, \"color\": \"#9a62ce\", \"hover\": \"153883.0\"}}, \"tgEPD4FvU264xMKgydt9ZA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 108398.0, \"color\": \"#2795b1\", \"hover\": \"108398.0\"}}, \"SVozJ8XW8FPd0iHVZjCBZA\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 151747.0, \"color\": \"#d74a1b\", \"hover\": \"151747.0\"}}, \"PSO2XmC4lzxblJbq6YuYZA\": {\"metadata\": {\"community_id\": 386, \"customer_id\": 165568.0, \"color\": \"#73e1bc\", \"hover\": \"165568.0\"}}, \"BZ7Hiow+j1NpeSNm7razZA\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 108308.0, \"color\": \"#f957df\", \"hover\": \"108308.0\"}}, \"8CMoYUu+332sDGqV2kLCZA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 61690.0, \"color\": \"#272dca\", \"hover\": \"61690.0\"}}, \"XLIYgIjAAid/Qw1RCyL2ZA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 193572.0, \"color\": \"#e4f354\", \"hover\": \"193572.0\"}}, \"oovK5xsuIoYuG1M/X4IYZQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 150640.0, \"color\": \"#b6f88d\", \"hover\": \"150640.0\"}}, \"1BEj44DRcK5n6B3ptY4zZQ\": {\"metadata\": {\"community_id\": 453, \"customer_id\": 119076.0, \"color\": \"#ab93ef\", \"hover\": \"119076.0\"}}, \"zexMlqrIwQf2AHpu4iZCZQ\": {\"metadata\": {\"community_id\": 454, \"customer_id\": 1130.0, \"color\": \"#eda98f\", \"hover\": \"1130.0\"}}, \"SVncppnuBWX66nGOzF5GZQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 172606.0, \"color\": \"#dcc694\", \"hover\": \"172606.0\"}}, \"9x3ved1T7wjAWcFR2XFOZQ\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 152060.0, \"color\": \"#f957df\", \"hover\": \"152060.0\"}}, \"pwFegFZIy5bhsBwci3trZQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 192435.0, \"color\": \"#eba59b\", \"hover\": \"192435.0\"}}, \"5VUgL1dwfNm5AVOz+sx4ZQ\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 83490.0, \"color\": \"#b621e2\", \"hover\": \"83490.0\"}}, \"WzOSjHpZKSZojzA4iL99ZQ\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 21585.0, \"color\": \"#6acd09\", \"hover\": \"21585.0\"}}, \"5apR11MR0AvAuPyXKe+BZQ\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 41547.0, \"color\": \"#e0b23c\", \"hover\": \"41547.0\"}}, \"3kCb/KZ8/abI4WHLBJ7HZQ\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 5915.0, \"color\": \"#b84038\", \"hover\": \"5915.0\"}}, \"4vGANuz0+6hyot70AcHRZQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 70478.0, \"color\": \"#b70fc0\", \"hover\": \"70478.0\"}}, \"z/Vc98OXYInOmO1oD+PRZQ\": {\"metadata\": {\"community_id\": 455, \"customer_id\": 27067.0, \"color\": \"#e3f293\", \"hover\": \"27067.0\"}}, \"yGAvhgaNrM/b3CFteWTrZQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 151407.0, \"color\": \"#d8dd94\", \"hover\": \"151407.0\"}}, \"4CjMN3w9g2bQx0m7+UELZg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 111893.0, \"color\": \"#272dca\", \"hover\": \"111893.0\"}}, \"C4iU4YuGrw2y7Sbvl5ANZg\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 97940.0, \"color\": \"#fa6270\", \"hover\": \"97940.0\"}}, \"t20xkxierOcBE/o0aSAdZg\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 80007.0, \"color\": \"#378cc8\", \"hover\": \"80007.0\"}}, \"G2x4mpYTKaEwCFfOF/MpZg\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 146549.0, \"color\": \"#c242c1\", \"hover\": \"146549.0\"}}, \"uTX3fyUcUp+b6NWtu4o0Zg\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 176912.0, \"color\": \"#5dca06\", \"hover\": \"176912.0\"}}, \"Z+Df51fCeSuCjkjYnEc8Zg\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 152517.0, \"color\": \"#3c74fc\", \"hover\": \"152517.0\"}}, \"6A0X+/4dUpd8rUBixdZYZg\": {\"metadata\": {\"community_id\": 457, \"customer_id\": 110220.0, \"color\": \"#b495ee\", \"hover\": \"110220.0\"}}, \"oTiCLEa9X0uHTa1BlilnZg\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 122885.0, \"color\": \"#f06b92\", \"hover\": \"122885.0\"}}, \"MevGjFG48jL1EP+uRx5xZg\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 82683.0, \"color\": \"#ee2bd7\", \"hover\": \"82683.0\"}}, \"VMCQwzdpsrbNN/t27liDZg\": {\"metadata\": {\"community_id\": 459, \"customer_id\": 179739.0, \"color\": \"#b13174\", \"hover\": \"179739.0\"}}, \"vsoziab71WlVH4X6m9+FZg\": {\"metadata\": {\"community_id\": 455, \"customer_id\": 12011.0, \"color\": \"#e3f293\", \"hover\": \"12011.0\"}}, \"f0mUmJg46NO2Wq++aSKWZg\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 196661.0, \"color\": \"#e493a3\", \"hover\": \"196661.0\"}}, \"7Ye5q+ZygboyV90IkLK0Zg\": {\"metadata\": {\"community_id\": 460, \"customer_id\": 190571.0, \"color\": \"#1108d1\", \"hover\": \"190571.0\"}}, \"VywXO7h+uJoHcQ2zWV+7Zg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 11126.0, \"color\": \"#a6c704\", \"hover\": \"11126.0\"}}, \"68Q7ajA1itdZfaO6FmPPZg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 8800.0, \"color\": \"#7eddd4\", \"hover\": \"8800.0\"}}, \"dEZXBUvT5+bmK/KeFiTjZg\": {\"metadata\": {\"community_id\": 461, \"customer_id\": 19854.0, \"color\": \"#a7e2ce\", \"hover\": \"19854.0\"}}, \"NJTaln+qmZxCCN/Hx5IDZw\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 108562.0, \"color\": \"#29f3a8\", \"hover\": \"108562.0\"}}, \"HYymt0lDvgI53eZlSzAjZw\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 44070.0, \"color\": \"#f8a36c\", \"hover\": \"44070.0\"}}, \"dTkENAnFlFXuxJCq9UEvZw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 1874.0, \"color\": \"#10d82f\", \"hover\": \"1874.0\"}}, \"yHCcWJQDbIob4E9ckP4/Zw\": {\"metadata\": {\"community_id\": 462, \"customer_id\": 120760.0, \"color\": \"#e4afda\", \"hover\": \"120760.0\"}}, \"l0Jn5R0PeAMlVCjBWql4Zw\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 78772.0, \"color\": \"#8df20e\", \"hover\": \"78772.0\"}}, \"q1K2qTkP+36lkCo+WF+UZw\": {\"metadata\": {\"community_id\": 463, \"customer_id\": 65532.0, \"color\": \"#ca4ca2\", \"hover\": \"65532.0\"}}, \"VTFcc+n6qFLhfTxVnmyXZw\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 138861.0, \"color\": \"#5831d3\", \"hover\": \"138861.0\"}}, \"zN1upeQhUgH8ySChSc2hZw\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 116859.0, \"color\": \"#404dcf\", \"hover\": \"116859.0\"}}, \"mgg/lhrwL5Rtr3eKy9uiZw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 189160.0, \"color\": \"#45f210\", \"hover\": \"189160.0\"}}, \"ZQL4xUI0Lik7CwBB2L6kZw\": {\"metadata\": {\"community_id\": 465, \"customer_id\": 66968.0, \"color\": \"#cd4e5b\", \"hover\": \"66968.0\"}}, \"blqYEvP+cEm13ZzWBP2yZw\": {\"metadata\": {\"community_id\": 466, \"customer_id\": 63553.0, \"color\": \"#f2806d\", \"hover\": \"63553.0\"}}, \"8wqfLFNes7JUPFwY54jBZw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 24093.0, \"color\": \"#b3df71\", \"hover\": \"24093.0\"}}, \"bBf/i8CpRj7/MKQGf3PcZw\": {\"metadata\": {\"community_id\": 290, \"customer_id\": 93434.0, \"color\": \"#80dea8\", \"hover\": \"93434.0\"}}, \"O/gDisntYgEbfhuQHG3dZw\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 24593.0, \"color\": \"#8df20e\", \"hover\": \"24593.0\"}}, \"knFzwzP5e4R9p7/JRtP1Zw\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 193228.0, \"color\": \"#d3da39\", \"hover\": \"193228.0\"}}, \"bsdaANpcjpHWpeczatoMaA\": {\"metadata\": {\"community_id\": 134, \"customer_id\": 94265.0, \"color\": \"#e7b35a\", \"hover\": \"94265.0\"}}, \"Q0MjucCUh+7hOM6ESTwQaA\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 171443.0, \"color\": \"#f06b92\", \"hover\": \"171443.0\"}}, \"YzTYwzGBsaucgy6itdISaA\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 52356.0, \"color\": \"#f73d92\", \"hover\": \"52356.0\"}}, \"39tEVdjFayXjM/S2U1YbaA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 118642.0, \"color\": \"#b58c2b\", \"hover\": \"118642.0\"}}, \"iPRckEZ+9fRyg2mbWpNZaA\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 73621.0, \"color\": \"#ee2a13\", \"hover\": \"73621.0\"}}, \"5jKIs3ds0x1ZmVoyo9FaaA\": {\"metadata\": {\"community_id\": 246, \"customer_id\": 195480.0, \"color\": \"#82a22d\", \"hover\": \"195480.0\"}}, \"k55CIte3Gp7p6qcb3qdhaA\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 8862.0, \"color\": \"#8827b3\", \"hover\": \"8862.0\"}}, \"wKp/+GpkbgJu8Y1W+8t2aA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 57892.0, \"color\": \"#e0b23c\", \"hover\": \"57892.0\"}}, \"pFJxA6EP5BLy+6YQ9ZTIaA\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 4983.0, \"color\": \"#a2e3bf\", \"hover\": \"4983.0\"}}, \"3CAi1BHCJ4F6GOSyN9ndaA\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 137117.0, \"color\": \"#a6c704\", \"hover\": \"137117.0\"}}, \"XvFXpKAybOJaTrHjTz/raA\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 121129.0, \"color\": \"#d8dd17\", \"hover\": \"121129.0\"}}, \"8kqbzDvYbTAr7mFfFJfxaA\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 162137.0, \"color\": \"#4451e7\", \"hover\": \"162137.0\"}}, \"0yNF6u5zyDfG/4h5/Uz0aA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 43849.0, \"color\": \"#e4f354\", \"hover\": \"43849.0\"}}, \"DUr4X9Dd3Yw1TKmF0wT6aA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 115353.0, \"color\": \"#27b4b4\", \"hover\": \"115353.0\"}}, \"T34SlORyNdAitBu1jVAVaQ\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 6693.0, \"color\": \"#11fc2e\", \"hover\": \"6693.0\"}}, \"NOgXNpFsliy0bzyuE6EfaQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 133751.0, \"color\": \"#9ee08f\", \"hover\": \"133751.0\"}}, \"EpfkuD4XamCx7taDA1QtaQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 159837.0, \"color\": \"#d8c96d\", \"hover\": \"159837.0\"}}, \"NIgmiC1e5egjTL/hoRRzaQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 149245.0, \"color\": \"#62fab8\", \"hover\": \"149245.0\"}}, \"2oENxDAeO3msBRvThWGNaQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 138597.0, \"color\": \"#9ee08f\", \"hover\": \"138597.0\"}}, \"LR0o1Gp5Q/56VArLa5GfaQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 180075.0, \"color\": \"#dcc694\", \"hover\": \"180075.0\"}}, \"AGdleYZfLD0f2H9xzK+zaQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 91666.0, \"color\": \"#e4f354\", \"hover\": \"91666.0\"}}, \"MP2QXYF3sENxb7Uc+MG2aQ\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 58577.0, \"color\": \"#a7e29b\", \"hover\": \"58577.0\"}}, \"u8wMRBA97dXpAFjbPoTBaQ\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 68025.0, \"color\": \"#68e09d\", \"hover\": \"68025.0\"}}, \"OybZPZewW/5uo77pf5EOag\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 95931.0, \"color\": \"#bdea14\", \"hover\": \"95931.0\"}}, \"4GJpnaHGtLQaFFP0ev8oag\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 81687.0, \"color\": \"#b70fc0\", \"hover\": \"81687.0\"}}, \"vaGjZfTrhaqBV96NI8ZAag\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 176221.0, \"color\": \"#c12abd\", \"hover\": \"176221.0\"}}, \"AGqG5c/VWKGwOacxedtJag\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 147307.0, \"color\": \"#1bd89a\", \"hover\": \"147307.0\"}}, \"InCEqoKCHEMy7JVnqgiDag\": {\"metadata\": {\"community_id\": 468, \"customer_id\": 87211.0, \"color\": \"#74f374\", \"hover\": \"87211.0\"}}, \"i1FG2HVaFaWVKq8Gmr+Fag\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 66551.0, \"color\": \"#b58c2b\", \"hover\": \"66551.0\"}}, \"GPxTZE2+n5xhFFsIWTiSag\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 149231.0, \"color\": \"#8c25b7\", \"hover\": \"149231.0\"}}, \"FaeXygmksygb2560fsqvag\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 2180.0, \"color\": \"#c830c7\", \"hover\": \"2180.0\"}}, \"t//zurDsECjhkSF+dDy3ag\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 71380.0, \"color\": \"#b9e04a\", \"hover\": \"71380.0\"}}, \"CfL6ulaZMR+EipbGh9u3ag\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 107145.0, \"color\": \"#31ab2f\", \"hover\": \"107145.0\"}}, \"oGVIZCXdUXvIMETXa+zMag\": {\"metadata\": {\"community_id\": 445, \"customer_id\": 9146.0, \"color\": \"#6ae164\", \"hover\": \"9146.0\"}}, \"qMV0wqJZhGOHoZqSaUvaag\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 30555.0, \"color\": \"#9aa92e\", \"hover\": \"30555.0\"}}, \"scx4zJSDGqh6BG0zTMf3ag\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 49064.0, \"color\": \"#99ef99\", \"hover\": \"49064.0\"}}, \"gsc5I5v27i46ZSFXLzgsaw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 151079.0, \"color\": \"#45f210\", \"hover\": \"151079.0\"}}, \"XBVUEkaFxyRusIcv+usuaw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 164386.0, \"color\": \"#eda379\", \"hover\": \"164386.0\"}}, \"LLqUTf2C7DiwEPqO9IAzaw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 15666.0, \"color\": \"#272dca\", \"hover\": \"15666.0\"}}, \"hyPvCBbOFv+5NE6yWVE/aw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 185249.0, \"color\": \"#32bc93\", \"hover\": \"185249.0\"}}, \"4CO33mHHgJhhEMark/hFaw\": {\"metadata\": {\"community_id\": 460, \"customer_id\": 140431.0, \"color\": \"#1108d1\", \"hover\": \"140431.0\"}}, \"Kp/uA317xD3ySXD3jBdRaw\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 189515.0, \"color\": \"#6acd09\", \"hover\": \"189515.0\"}}, \"6fa0BGC1aByXuIyb1BZZaw\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 18953.0, \"color\": \"#e880f5\", \"hover\": \"18953.0\"}}, \"rDPPMTD4vnxKGOpF+2Zlaw\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 29858.0, \"color\": \"#b621e2\", \"hover\": \"29858.0\"}}, \"1PEOSb2TBTMGMiYjdZK2aw\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 19563.0, \"color\": \"#1e5cf7\", \"hover\": \"19563.0\"}}, \"nl3iba56oz4+Ct7sc/zDaw\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 55467.0, \"color\": \"#1bc070\", \"hover\": \"55467.0\"}}, \"sqqi1xhWXx4zcDMSSSnHaw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 73425.0, \"color\": \"#31ab2f\", \"hover\": \"73425.0\"}}, \"CwpEQuIi8zSScd15Vffgaw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 9380.0, \"color\": \"#eba59b\", \"hover\": \"9380.0\"}}, \"gaZz3FRaKrrPotJgszj/aw\": {\"metadata\": {\"community_id\": 267, \"customer_id\": 143201.0, \"color\": \"#f5fa0c\", \"hover\": \"143201.0\"}}, \"K53b7HORgyhLUuQ9WN0kbA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 23664.0, \"color\": \"#32bc93\", \"hover\": \"23664.0\"}}, \"w2jFy/pE8Fy943fFYEonbA\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 82573.0, \"color\": \"#29f3a8\", \"hover\": \"82573.0\"}}, \"EKGxuN6zNqEuBdsNTTQ2bA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 134737.0, \"color\": \"#1807f2\", \"hover\": \"134737.0\"}}, \"BbkarsI6ax7N0cDQt6BIbA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 60237.0, \"color\": \"#a372d3\", \"hover\": \"60237.0\"}}, \"opm/9DV54pobtdoC3kNUbA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 55516.0, \"color\": \"#7a80f3\", \"hover\": \"55516.0\"}}, \"DFjBfWb05mwJPNpOXP+ubA\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 61824.0, \"color\": \"#b5d851\", \"hover\": \"61824.0\"}}, \"7waZWOlEZD3wAUOfyTK/bA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 24402.0, \"color\": \"#c12abd\", \"hover\": \"24402.0\"}}, \"xqgM3rfoMtsn1TX/WLjvbA\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 55289.0, \"color\": \"#dc1d4e\", \"hover\": \"55289.0\"}}, \"BNzwQD1dzf4lnoWRJxD1bA\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 123963.0, \"color\": \"#417dfc\", \"hover\": \"123963.0\"}}, \"FDPwNBUTwho2jWg6cpf7bA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 136661.0, \"color\": \"#9a62ce\", \"hover\": \"136661.0\"}}, \"8825VNagmfuRs5bexVc1bQ\": {\"metadata\": {\"community_id\": 470, \"customer_id\": 21685.0, \"color\": \"#0083dc\", \"hover\": \"21685.0\"}}, \"2d2hzbOfsjmEbK+aYDo/bQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 121350.0, \"color\": \"#eba59b\", \"hover\": \"121350.0\"}}, \"OyTztUYnRhTYYxoLBI9FbQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 70664.0, \"color\": \"#d8c96d\", \"hover\": \"70664.0\"}}, \"o+m2QQS9epHCXQOZQQFibQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 142147.0, \"color\": \"#e436ba\", \"hover\": \"142147.0\"}}, \"PwyhAzA0omnIl03SygN+bQ\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 34045.0, \"color\": \"#f963e8\", \"hover\": \"34045.0\"}}, \"+qwToh+fbgIAa8uOXduCbQ\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 137710.0, \"color\": \"#14ace5\", \"hover\": \"137710.0\"}}, \"Xlz0x8DwRxDmhPVIPBGTbQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 195112.0, \"color\": \"#6bdba1\", \"hover\": \"195112.0\"}}, \"ZIy/WsAB3wJpL965LjmTbQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 197314.0, \"color\": \"#b70fc0\", \"hover\": \"197314.0\"}}, \"jZp0wulp0qyqJdux+qWZbQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 184049.0, \"color\": \"#99ef99\", \"hover\": \"184049.0\"}}, \"swE/d75dr8jLE+X9IPWubQ\": {\"metadata\": {\"community_id\": 437, \"customer_id\": 112214.0, \"color\": \"#7a5cdc\", \"hover\": \"112214.0\"}}, \"AfC+yExwuC/ENoHJ7zWxbQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 50622.0, \"color\": \"#c0ea5e\", \"hover\": \"50622.0\"}}, \"vWcvRByQP51uOlZDbmbUbQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 159344.0, \"color\": \"#2795b1\", \"hover\": \"159344.0\"}}, \"TkBKnFxeFnG+2hBRM5TjbQ\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 117033.0, \"color\": \"#b621e2\", \"hover\": \"117033.0\"}}, \"AAdsS+Z6oVUTY7oLucX8bQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 75055.0, \"color\": \"#e4f354\", \"hover\": \"75055.0\"}}, \"ldrAqDxNlz3Q/ph+om39bQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 36753.0, \"color\": \"#33b9bc\", \"hover\": \"36753.0\"}}, \"CsBrCPcDPAJEOxlYUpn/bQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 47683.0, \"color\": \"#99ef99\", \"hover\": \"47683.0\"}}, \"L49IPcN2EYZ4HFO7oiofbg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 87279.0, \"color\": \"#31ab2f\", \"hover\": \"87279.0\"}}, \"Z1owg5XRBMZ+UZarVUEvbg\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 165624.0, \"color\": \"#5937d3\", \"hover\": \"165624.0\"}}, \"j2myGcumhmoz/9p4EAE2bg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 32350.0, \"color\": \"#31ab2f\", \"hover\": \"32350.0\"}}, \"295KUQrNgS524KdPjhY2bg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 103406.0, \"color\": \"#c2fe3c\", \"hover\": \"103406.0\"}}, \"OK7AnboiWZ7PRgIMjmpHbg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 100358.0, \"color\": \"#62fab8\", \"hover\": \"100358.0\"}}, \"pgQHSJE9LdFJ4JX4uLFkbg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 8104.0, \"color\": \"#f6a0ef\", \"hover\": \"8104.0\"}}, \"1iE3IfSpcAwr1GJpuN1wbg\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 186790.0, \"color\": \"#8fe89d\", \"hover\": \"186790.0\"}}, \"dXQRUJXsvJSlmLomDmF3bg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 29822.0, \"color\": \"#25a9a6\", \"hover\": \"29822.0\"}}, \"6rVzMgD/kufbnz2W3Qp6bg\": {\"metadata\": {\"community_id\": 472, \"customer_id\": 59264.0, \"color\": \"#a78d24\", \"hover\": \"59264.0\"}}, \"vGKrdKXZtH3UV90EhYaebg\": {\"metadata\": {\"community_id\": 370, \"customer_id\": 162406.0, \"color\": \"#d8577c\", \"hover\": \"162406.0\"}}, \"d7hMwlTj5Ir1NfCOJZinbg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 185224.0, \"color\": \"#c12abd\", \"hover\": \"185224.0\"}}, \"qsZtcjv/Pr7Ps1rIbC+obg\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 101355.0, \"color\": \"#6bdba1\", \"hover\": \"101355.0\"}}, \"wf9PwOKlrt0/GTUhJmPSbg\": {\"metadata\": {\"community_id\": 473, \"customer_id\": 23514.0, \"color\": \"#64d9e0\", \"hover\": \"23514.0\"}}, \"L2R99MXyAwQ7moUkSDjUbg\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 137420.0, \"color\": \"#bdea14\", \"hover\": \"137420.0\"}}, \"ENvW+sJ6QytVUMPBHRsybw\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 159746.0, \"color\": \"#a7e29b\", \"hover\": \"159746.0\"}}, \"KXmPvXyy4ZqMu2NJW680bw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 58193.0, \"color\": \"#a6c704\", \"hover\": \"58193.0\"}}, \"u+59gZNV53zMJQVuIatFbw\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 118078.0, \"color\": \"#d46da8\", \"hover\": \"118078.0\"}}, \"RMQXn+wpC1BAUZ8mxJZebw\": {\"metadata\": {\"community_id\": 475, \"customer_id\": 25493.0, \"color\": \"#1fb0f2\", \"hover\": \"25493.0\"}}, \"HWZAYVBnOATRXMF9hCxmbw\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 23128.0, \"color\": \"#2795b1\", \"hover\": \"23128.0\"}}, \"A7DMC5xh2BOv+DzA5zFtbw\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 14515.0, \"color\": \"#a7e29b\", \"hover\": \"14515.0\"}}, \"s/iJc9+3ONWQha7FBfKMbw\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 158457.0, \"color\": \"#b4ea8c\", \"hover\": \"158457.0\"}}, \"OgPOP14AXvUmCvsSYLWvbw\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 183832.0, \"color\": \"#dfd779\", \"hover\": \"183832.0\"}}, \"zW9OFngqkdFLKaWtIXKwbw\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 4508.0, \"color\": \"#29f3a8\", \"hover\": \"4508.0\"}}, \"ibKgv6nUXTOjrleyRQKzbw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 159107.0, \"color\": \"#4b2fa5\", \"hover\": \"159107.0\"}}, \"59SqJ30Y4ewJfCaPESjibw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 101437.0, \"color\": \"#272dca\", \"hover\": \"101437.0\"}}, \"jDNhsvbjunwQKLmvhy38bw\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 49017.0, \"color\": \"#e9d844\", \"hover\": \"49017.0\"}}, \"As5V4Gv3sXDtJd09xlVJcA\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 82279.0, \"color\": \"#4b2fa5\", \"hover\": \"82279.0\"}}, \"88NA5Yp9ZlnX1Wm69tZScA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 37497.0, \"color\": \"#7a80f3\", \"hover\": \"37497.0\"}}, \"nT9sAxVshwusku821xJacA\": {\"metadata\": {\"community_id\": 476, \"customer_id\": 109213.0, \"color\": \"#e35cbc\", \"hover\": \"109213.0\"}}, \"0RJgJMYTybpAEfPhQMBfcA\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 11346.0, \"color\": \"#7d28ad\", \"hover\": \"11346.0\"}}, \"Y+G3nXp82AZ2n2QjEgtncA\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 198820.0, \"color\": \"#abf295\", \"hover\": \"198820.0\"}}, \"FVDkPmeCBusht6HcouaOcA\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 191037.0, \"color\": \"#2aee21\", \"hover\": \"191037.0\"}}, \"vSJWqBZbFjSkYqQRa1OlcA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 94028.0, \"color\": \"#5dca06\", \"hover\": \"94028.0\"}}, \"yn7/uMKk6kJRsbDh+tSncA\": {\"metadata\": {\"community_id\": 6, \"customer_id\": 78440.0, \"color\": \"#e2c37b\", \"hover\": \"78440.0\"}}, \"g/R1uTvqZfKj5drIlOC1cA\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 135677.0, \"color\": \"#f27249\", \"hover\": \"135677.0\"}}, \"Bk5yEVdT2xlTxi/P+2TucA\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 96204.0, \"color\": \"#e1de3c\", \"hover\": \"96204.0\"}}, \"tfw90wbD4QM/PpDbMLj6cA\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 14358.0, \"color\": \"#f091c1\", \"hover\": \"14358.0\"}}, \"IeJ7QCNZxGb/t4BwOpkGcQ\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 186418.0, \"color\": \"#f06b92\", \"hover\": \"186418.0\"}}, \"KpuI9ZyZiW/bVAiiQ+AScQ\": {\"metadata\": {\"community_id\": 478, \"customer_id\": 130391.0, \"color\": \"#21f558\", \"hover\": \"130391.0\"}}, \"ZTZGPr12qhPT39K3XPATcQ\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 18932.0, \"color\": \"#68e09d\", \"hover\": \"18932.0\"}}, \"vLCqCMMOYK7bZQa0iDw1cQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 28284.0, \"color\": \"#b6f88d\", \"hover\": \"28284.0\"}}, \"rc9cGHeo4/6jfGrrxTE3cQ\": {\"metadata\": {\"community_id\": 479, \"customer_id\": 189918.0, \"color\": \"#4fdddb\", \"hover\": \"189918.0\"}}, \"jhsBQMeLZl7h/WCH+CBTcQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 129821.0, \"color\": \"#10d82f\", \"hover\": \"129821.0\"}}, \"gKWDlf3LZCGgS60wxil8cQ\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 128595.0, \"color\": \"#eb06bc\", \"hover\": \"128595.0\"}}, \"klquQJ0Jl9OUmVEJRbqZcQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 92121.0, \"color\": \"#62fab8\", \"hover\": \"92121.0\"}}, \"mIrtzl5yLLagVORQq8OocQ\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 195841.0, \"color\": \"#c05c10\", \"hover\": \"195841.0\"}}, \"HT8WzeCrcJmlevEIilDccQ\": {\"metadata\": {\"community_id\": 213, \"customer_id\": 38032.0, \"color\": \"#30b16e\", \"hover\": \"38032.0\"}}, \"UInmirHyfIxrNstUKFfycQ\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 27911.0, \"color\": \"#0920dc\", \"hover\": \"27911.0\"}}, \"heKhrRBgLEzQGdjEiVb4cQ\": {\"metadata\": {\"community_id\": 463, \"customer_id\": 139189.0, \"color\": \"#ca4ca2\", \"hover\": \"139189.0\"}}, \"C3i2f3Tc4fbceLtEVoj8cQ\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 149196.0, \"color\": \"#e0b23c\", \"hover\": \"149196.0\"}}, \"SHfZgdFBroXem8lXNwkJcg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 134161.0, \"color\": \"#25a9a6\", \"hover\": \"134161.0\"}}, \"0QxdZHIr10eUjJDIe0wOcg\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 179204.0, \"color\": \"#ee8afd\", \"hover\": \"179204.0\"}}, \"vb3iPzp4Mxw4ldK8eS8fcg\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 58230.0, \"color\": \"#c32841\", \"hover\": \"58230.0\"}}, \"XkYOl3ks1X2aSgiy+kcncg\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 67371.0, \"color\": \"#b9e04a\", \"hover\": \"67371.0\"}}, \"wQSV256APV//sMgwNlozcg\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 20929.0, \"color\": \"#81a8e3\", \"hover\": \"20929.0\"}}, \"q+Kqu3d3s3abK4QbQdM2cg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 14231.0, \"color\": \"#272dca\", \"hover\": \"14231.0\"}}, \"pdr20bR379SCSQrEwtRfcg\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 186921.0, \"color\": \"#ee8afd\", \"hover\": \"186921.0\"}}, \"3buh1bQHBjYvBLTs3k1pcg\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 30620.0, \"color\": \"#7cec6a\", \"hover\": \"30620.0\"}}, \"mnfai98sLmWktUK5TjaVcg\": {\"metadata\": {\"community_id\": 417, \"customer_id\": 100848.0, \"color\": \"#2465ae\", \"hover\": \"100848.0\"}}, \"fvLIVlHEmcDCxxbt9TS0cg\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 162915.0, \"color\": \"#abf295\", \"hover\": \"162915.0\"}}, \"7h9Fg1B195k0e5jbUGH+cg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 151081.0, \"color\": \"#2f82a1\", \"hover\": \"151081.0\"}}, \"2a+0fWSXMHaZ2Hov9wcXcw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 190667.0, \"color\": \"#1bd89a\", \"hover\": \"190667.0\"}}, \"rDXjhpwwH1xRUqGN59Ikcw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 183582.0, \"color\": \"#4dcbac\", \"hover\": \"183582.0\"}}, \"bDdU/0byIvyGkNcVnGcpcw\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 69406.0, \"color\": \"#49de50\", \"hover\": \"69406.0\"}}, \"RXvDBU82q16Pw9nStf8zcw\": {\"metadata\": {\"community_id\": 340, \"customer_id\": 58623.0, \"color\": \"#4d47e8\", \"hover\": \"58623.0\"}}, \"2fLiXD3Oi+ti5kp4tkA5cw\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 136905.0, \"color\": \"#7d88fb\", \"hover\": \"136905.0\"}}, \"H8DT+1a16Vl5KIs2uBGBcw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 1415.0, \"color\": \"#f6a0ef\", \"hover\": \"1415.0\"}}, \"Nk2/mu/0OeJQu+AFrLKfcw\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 142933.0, \"color\": \"#0d14dc\", \"hover\": \"142933.0\"}}, \"4iidBzFOnffMhDtuDP6vcw\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 149279.0, \"color\": \"#cb84ef\", \"hover\": \"149279.0\"}}, \"GFLSiVWZGF82QrEToTu6cw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 103640.0, \"color\": \"#87cefd\", \"hover\": \"103640.0\"}}, \"72DKQaPaO96hRQn8R8y7cw\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 145709.0, \"color\": \"#a32d58\", \"hover\": \"145709.0\"}}, \"oU7VQtJtQKoDumxH+arzcw\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 105985.0, \"color\": \"#185cd8\", \"hover\": \"105985.0\"}}, \"heu1DWdPZrJDexWytU/+cw\": {\"metadata\": {\"community_id\": 483, \"customer_id\": 22075.0, \"color\": \"#3c6abe\", \"hover\": \"22075.0\"}}, \"QpOXviT1zeIlL17B/cUDdA\": {\"metadata\": {\"community_id\": 339, \"customer_id\": 39554.0, \"color\": \"#ceeea2\", \"hover\": \"39554.0\"}}, \"HkyJqonOnWVZWmP5+cUodA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 143511.0, \"color\": \"#c12abd\", \"hover\": \"143511.0\"}}, \"nOP4S0nytASLUL4bvWE0dA\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 18167.0, \"color\": \"#c093fc\", \"hover\": \"18167.0\"}}, \"hJkECJ2HLr0UQKVZy7OAdA\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 47716.0, \"color\": \"#a41adf\", \"hover\": \"47716.0\"}}, \"VtkRrPYhEQerNJ9qrGuGdA\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 58721.0, \"color\": \"#08dbec\", \"hover\": \"58721.0\"}}, \"vnyniFSktkOEVu5IMtWNdA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 112443.0, \"color\": \"#45f210\", \"hover\": \"112443.0\"}}, \"zEUlGrpc2A8953RQVcuadA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 164428.0, \"color\": \"#62fab8\", \"hover\": \"164428.0\"}}, \"9RMeAtKVYJRuO+o0RzSsdA\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 24224.0, \"color\": \"#961ac7\", \"hover\": \"24224.0\"}}, \"kp36vTNmEWarycaRrpDadA\": {\"metadata\": {\"community_id\": 485, \"customer_id\": 136515.0, \"color\": \"#d09264\", \"hover\": \"136515.0\"}}, \"cdtm284VM0XW/UkAuEnudA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 156159.0, \"color\": \"#6bdba1\", \"hover\": \"156159.0\"}}, \"Skc+Mdjm58tEJezDmDP8dA\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 124539.0, \"color\": \"#09ef53\", \"hover\": \"124539.0\"}}, \"H51lkjTGo0qqwQ7sEroFdQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 14642.0, \"color\": \"#33b9bc\", \"hover\": \"14642.0\"}}, \"3+LDwxMue3XlbersVpJYdQ\": {\"metadata\": {\"community_id\": 486, \"customer_id\": 160257.0, \"color\": \"#6fdfb0\", \"hover\": \"160257.0\"}}, \"2HdF9Vrsld08yjF+lXBrdQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 165125.0, \"color\": \"#33b9bc\", \"hover\": \"165125.0\"}}, \"FbZPBgWRbURp0aLL0Ad4dQ\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 84632.0, \"color\": \"#c788df\", \"hover\": \"84632.0\"}}, \"up9psA1MqaBe3U64WLyMdQ\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 18209.0, \"color\": \"#c98e0a\", \"hover\": \"18209.0\"}}, \"VGoT3pblWNeNvo3RyQyadQ\": {\"metadata\": {\"community_id\": 203, \"customer_id\": 52162.0, \"color\": \"#97b8ef\", \"hover\": \"52162.0\"}}, \"wUJVdpgD0n69bX8KbhSmdQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 33825.0, \"color\": \"#d2ab67\", \"hover\": \"33825.0\"}}, \"HQ5PLb8USOfOCBh65VitdQ\": {\"metadata\": {\"community_id\": 399, \"customer_id\": 4294.0, \"color\": \"#78c4db\", \"hover\": \"4294.0\"}}, \"v+ezx4sOZJKr7IIWcKfGdQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 139628.0, \"color\": \"#c12abd\", \"hover\": \"139628.0\"}}, \"pTUiejm1wpNhKBFOzILidQ\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 50345.0, \"color\": \"#ae692e\", \"hover\": \"50345.0\"}}, \"xj4TkhnOXAJQcnNkii8Hdg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 168900.0, \"color\": \"#31ab2f\", \"hover\": \"168900.0\"}}, \"xdb7EalTUhFl41uzMWYMdg\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 4951.0, \"color\": \"#7f4bec\", \"hover\": \"4951.0\"}}, \"koIW9iwU5uZe/6B7Rj8bdg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 80147.0, \"color\": \"#32bc93\", \"hover\": \"80147.0\"}}, \"D0PcKw6Dd0cPukvB5boldg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 53373.0, \"color\": \"#62fab8\", \"hover\": \"53373.0\"}}, \"BN+YmIxT+3E9xyYfA94pdg\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 142559.0, \"color\": \"#c1351e\", \"hover\": \"142559.0\"}}, \"WAP9f1egYnZin84aLSc0dg\": {\"metadata\": {\"community_id\": 241, \"customer_id\": 153623.0, \"color\": \"#d2517f\", \"hover\": \"153623.0\"}}, \"W9820uGVNNrihcyqAVBEdg\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 12989.0, \"color\": \"#eb06bc\", \"hover\": \"12989.0\"}}, \"n6dIyXbT6o6OBFNHTaJkdg\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 48244.0, \"color\": \"#a41adf\", \"hover\": \"48244.0\"}}, \"efFeB1sBxrXang8mpgSWdg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 151853.0, \"color\": \"#9ee08f\", \"hover\": \"151853.0\"}}, \"QDWv7h3lOsHFQ1F5qRaXdg\": {\"metadata\": {\"community_id\": 120, \"customer_id\": 151338.0, \"color\": \"#8c1bbd\", \"hover\": \"151338.0\"}}, \"1ZSXt9jbtVvWUxZ8Cm+kdg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 195609.0, \"color\": \"#9ee08f\", \"hover\": \"195609.0\"}}, \"rv9CCzm9yv3/yk7JavW0dg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 23891.0, \"color\": \"#45f210\", \"hover\": \"23891.0\"}}, \"wtljH1bOIKRg3l1tzqq9dg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 69664.0, \"color\": \"#32bc93\", \"hover\": \"69664.0\"}}, \"OmSfnOYOTGiS6crbu4XSdg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 3809.0, \"color\": \"#99b5fc\", \"hover\": \"3809.0\"}}, \"E1+WI9OuYxMGF9bKHnDWdg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 109948.0, \"color\": \"#272dca\", \"hover\": \"109948.0\"}}, \"kD0Flo+4T5a+cZgS2c3wdg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 161605.0, \"color\": \"#62fab8\", \"hover\": \"161605.0\"}}, \"qIj/x2KLaVJKHUV1/qf0dg\": {\"metadata\": {\"community_id\": 487, \"customer_id\": 27317.0, \"color\": \"#df6580\", \"hover\": \"27317.0\"}}, \"WfCuGqTioXh9WvVwOoX3dg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 73365.0, \"color\": \"#9ee08f\", \"hover\": \"73365.0\"}}, \"m+eJkUkV2waU1kg+shQUdw\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 161741.0, \"color\": \"#9ee08f\", \"hover\": \"161741.0\"}}, \"tRJwNHh9csMWQV2GvAFjdw\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 75225.0, \"color\": \"#b21c5c\", \"hover\": \"75225.0\"}}, \"4VZ10HmA8GdBbgDi2qppdw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 85861.0, \"color\": \"#99ef99\", \"hover\": \"85861.0\"}}, \"DiTNRzvHxe9KujjLA7t6dw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 42792.0, \"color\": \"#f6a0ef\", \"hover\": \"42792.0\"}}, \"E0dFImBZ43XFNFgdbt+udw\": {\"metadata\": {\"community_id\": 459, \"customer_id\": 105242.0, \"color\": \"#b13174\", \"hover\": \"105242.0\"}}, \"neUebpMrrYX3e5BjAvyzdw\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 30408.0, \"color\": \"#c36a1f\", \"hover\": \"30408.0\"}}, \"okyPJsnutK0dtiCAaMf5dw\": {\"metadata\": {\"community_id\": 488, \"customer_id\": 71952.0, \"color\": \"#9f8cd9\", \"hover\": \"71952.0\"}}, \"0pyXxMZeE/GIVMGUOpgBeA\": {\"metadata\": {\"community_id\": 325, \"customer_id\": 61537.0, \"color\": \"#fb918f\", \"hover\": \"61537.0\"}}, \"6qLyFjJCSb5H4btWpQA2eA\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 162246.0, \"color\": \"#e4a1a2\", \"hover\": \"162246.0\"}}, \"499FzlfKPXgh1Wu0DvB6eA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 52319.0, \"color\": \"#272dca\", \"hover\": \"52319.0\"}}, \"Pog8kgYwJacWPRhW1D2FeA\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 129129.0, \"color\": \"#d80bad\", \"hover\": \"129129.0\"}}, \"rv1QjpEbuSQW+45lpZSGeA\": {\"metadata\": {\"community_id\": 449, \"customer_id\": 5961.0, \"color\": \"#baf398\", \"hover\": \"5961.0\"}}, \"SZlsdfqqOK9cfUzLjo+PeA\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 144270.0, \"color\": \"#5831d3\", \"hover\": \"144270.0\"}}, \"p4G/w3mNcdDVKXnZE6KmeA\": {\"metadata\": {\"community_id\": 490, \"customer_id\": 4221.0, \"color\": \"#f59cb2\", \"hover\": \"4221.0\"}}, \"HIvlvNgs59hiOwj2O06peA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 30203.0, \"color\": \"#31ab2f\", \"hover\": \"30203.0\"}}, \"9lplDmateBrR+nSpSFW2eA\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 87038.0, \"color\": \"#fc580c\", \"hover\": \"87038.0\"}}, \"Kii3w+OpNXvyJU7mN5vIeA\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 17460.0, \"color\": \"#2aee21\", \"hover\": \"17460.0\"}}, \"ZZJDKMc/Vgqe1yTcnDfOeA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 101307.0, \"color\": \"#32bc93\", \"hover\": \"101307.0\"}}, \"QBIN35QPRhWmSIUTJVMHeQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 64122.0, \"color\": \"#99b5fc\", \"hover\": \"64122.0\"}}, \"gKSpp6rNIVNrN6mTLjkJeQ\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 34383.0, \"color\": \"#f3979c\", \"hover\": \"34383.0\"}}, \"jT41S00SsjFOo6Y4qaYaeQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 198494.0, \"color\": \"#f6a0ef\", \"hover\": \"198494.0\"}}, \"7K8cFM5yp8Sw9JTNMhxteQ\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 78583.0, \"color\": \"#a41adf\", \"hover\": \"78583.0\"}}, \"wxurhkLtKTUYBM/ptT12eQ\": {\"metadata\": {\"community_id\": 492, \"customer_id\": 177761.0, \"color\": \"#e23f89\", \"hover\": \"177761.0\"}}, \"CLSpACpTt/VOa/AJlK2HeQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 821.0, \"color\": \"#45f210\", \"hover\": \"821.0\"}}, \"+0BvGvmt4QbfLkDdaZmPeQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 175303.0, \"color\": \"#9a62ce\", \"hover\": \"175303.0\"}}, \"/naWOtKyFnAFT5TWtQeieQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 139108.0, \"color\": \"#7aefcb\", \"hover\": \"139108.0\"}}, \"f+E8VIalbsW65FQq5Z+peQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 189095.0, \"color\": \"#5dedcd\", \"hover\": \"189095.0\"}}, \"z9SQ8Yfw19I4E86iEKyweQ\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 121535.0, \"color\": \"#78e968\", \"hover\": \"121535.0\"}}, \"EyFl/rmMefeFDR3ZPbq9eQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 74400.0, \"color\": \"#31ab2f\", \"hover\": \"74400.0\"}}, \"aLpHxNNDNRGUvBG7y5bCeQ\": {\"metadata\": {\"community_id\": 237, \"customer_id\": 80125.0, \"color\": \"#b943c7\", \"hover\": \"80125.0\"}}, \"4KZxx1hXO+Ed7jMGA0XGeQ\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 26229.0, \"color\": \"#c093fc\", \"hover\": \"26229.0\"}}, \"2/lkZHTivYSEytZl2ubteQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 107919.0, \"color\": \"#272dca\", \"hover\": \"107919.0\"}}, \"iFjI4Rd3CKYVzlxd3JT7eQ\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 44814.0, \"color\": \"#56fc81\", \"hover\": \"44814.0\"}}, \"NRnlOwVe+amgRrIlq5b9eQ\": {\"metadata\": {\"community_id\": 159, \"customer_id\": 41060.0, \"color\": \"#2073eb\", \"hover\": \"41060.0\"}}, \"YyQl1eJdobquxuw0oBQZeg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 107652.0, \"color\": \"#e0b23c\", \"hover\": \"107652.0\"}}, \"7P2CnvCzpPTOvj19qNgoeg\": {\"metadata\": {\"community_id\": 493, \"customer_id\": 18637.0, \"color\": \"#d99916\", \"hover\": \"18637.0\"}}, \"k8C+/RAYosn3Aj3IE4M0eg\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 83975.0, \"color\": \"#e5e372\", \"hover\": \"83975.0\"}}, \"osRoK7EJhp/uYrUewqNieg\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 59305.0, \"color\": \"#8c25b7\", \"hover\": \"59305.0\"}}, \"yJIJ7wkgqGm/P0x11wpmeg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 154711.0, \"color\": \"#32bc93\", \"hover\": \"154711.0\"}}, \"Hrftt1kQzCVPx8AxEdZneg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 24764.0, \"color\": \"#1bd89a\", \"hover\": \"24764.0\"}}, \"1cFc0SNcjc0CTgGlR8iCeg\": {\"metadata\": {\"community_id\": 494, \"customer_id\": 126467.0, \"color\": \"#f54a3c\", \"hover\": \"126467.0\"}}, \"85AtVP7rVmeJpWphnOyLeg\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 71013.0, \"color\": \"#76c7fc\", \"hover\": \"71013.0\"}}, \"wnGOX2Ohd0MS41aad4+jeg\": {\"metadata\": {\"community_id\": 496, \"customer_id\": 189363.0, \"color\": \"#ba8939\", \"hover\": \"189363.0\"}}, \"AiBoaQxP8X4ZGTH7DL/geg\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 108299.0, \"color\": \"#9aa931\", \"hover\": \"108299.0\"}}, \"NXaF4wgnso10h1wD9sQQew\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 178911.0, \"color\": \"#7a01d9\", \"hover\": \"178911.0\"}}, \"vb55pYg/AOTWKfMFbVM7ew\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 39201.0, \"color\": \"#2f82a1\", \"hover\": \"39201.0\"}}, \"tMYQJ9GjNmp4dSHdunw7ew\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 47907.0, \"color\": \"#f6bf7b\", \"hover\": \"47907.0\"}}, \"st4pZAhzBQKvT58+t+JCew\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 3182.0, \"color\": \"#1bd89a\", \"hover\": \"3182.0\"}}, \"191Ea/Jawze72ts2Yv9mew\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 87798.0, \"color\": \"#e0b23c\", \"hover\": \"87798.0\"}}, \"0+rvvOXJDQjr7VAdZsx7ew\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 26440.0, \"color\": \"#6bdba1\", \"hover\": \"26440.0\"}}, \"HAOzB/UXYT43MrMLWyx9ew\": {\"metadata\": {\"community_id\": 368, \"customer_id\": 47244.0, \"color\": \"#8793dd\", \"hover\": \"47244.0\"}}, \"+zyhG4nujadKknUVwouJew\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 99381.0, \"color\": \"#99ef99\", \"hover\": \"99381.0\"}}, \"1dO0VYT01GcVIwHyIyaOew\": {\"metadata\": {\"community_id\": 497, \"customer_id\": 28089.0, \"color\": \"#dba26b\", \"hover\": \"28089.0\"}}, \"XJcqpIcy69YD5Aees5ecew\": {\"metadata\": {\"community_id\": 450, \"customer_id\": 132865.0, \"color\": \"#34979f\", \"hover\": \"132865.0\"}}, \"gKIU7Gl4oIeRvEvPu/O/ew\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 98901.0, \"color\": \"#62fab8\", \"hover\": \"98901.0\"}}, \"zs/qGBZegqxG9zpefbXLew\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 159898.0, \"color\": \"#eda379\", \"hover\": \"159898.0\"}}, \"oxHMD6A4LMydU8u3KxvNew\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 66594.0, \"color\": \"#f06655\", \"hover\": \"66594.0\"}}, \"itkq/JLDZHb1t8KZDUjOew\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 10063.0, \"color\": \"#8bd742\", \"hover\": \"10063.0\"}}, \"cbMQ/mrbiirmV3vrCBzVew\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 172076.0, \"color\": \"#961ac7\", \"hover\": \"172076.0\"}}, \"BMl2T4INigVgCJo/c67Yew\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 73936.0, \"color\": \"#a60aef\", \"hover\": \"73936.0\"}}, \"OHRmMm9MoQrhWchvhvLgew\": {\"metadata\": {\"community_id\": 500, \"customer_id\": 69002.0, \"color\": \"#d4dd50\", \"hover\": \"69002.0\"}}, \"eg9iTlZdkaMzSWySu9YNfA\": {\"metadata\": {\"community_id\": 501, \"customer_id\": 63397.0, \"color\": \"#9c31c8\", \"hover\": \"63397.0\"}}, \"KZtvq/LYMl5NR+CL3I0cfA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 122051.0, \"color\": \"#b9e04a\", \"hover\": \"122051.0\"}}, \"6PmG+WOw26Drh15tZVs1fA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 180524.0, \"color\": \"#99ef99\", \"hover\": \"180524.0\"}}, \"Hq0dfG8heMrt8RqXXqpDfA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 178311.0, \"color\": \"#e0b23c\", \"hover\": \"178311.0\"}}, \"bUR856SolxjVuhh51iNJfA\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 142163.0, \"color\": \"#22b27d\", \"hover\": \"142163.0\"}}, \"bXuzTviHiDvMf/HlellLfA\": {\"metadata\": {\"community_id\": 194, \"customer_id\": 94220.0, \"color\": \"#33d610\", \"hover\": \"94220.0\"}}, \"0UT4NffRLCfe0ltowmFefA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 124245.0, \"color\": \"#dfd779\", \"hover\": \"124245.0\"}}, \"qh37fflxH4crnFBSNG1ffA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 138998.0, \"color\": \"#eba59b\", \"hover\": \"138998.0\"}}, \"hM8yiIQ7+esJXnbg0aGGfA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 150556.0, \"color\": \"#9ee08f\", \"hover\": \"150556.0\"}}, \"Pa0w5caR90aooguYcb2JfA\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 102983.0, \"color\": \"#65e8e1\", \"hover\": \"102983.0\"}}, \"NzlMJMnlHuCbxGhinyGmfA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 118222.0, \"color\": \"#99ef99\", \"hover\": \"118222.0\"}}, \"4JS9z+LuF7i6jaW2OUysfA\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 131566.0, \"color\": \"#e3e59b\", \"hover\": \"131566.0\"}}, \"Lsm4YXngM+SdFC/A8mDKfA\": {\"metadata\": {\"community_id\": 235, \"customer_id\": 183776.0, \"color\": \"#f376f8\", \"hover\": \"183776.0\"}}, \"ZtDbhNjj6nHmZgeG3NXffA\": {\"metadata\": {\"community_id\": 494, \"customer_id\": 122446.0, \"color\": \"#f54a3c\", \"hover\": \"122446.0\"}}, \"LOSl8aE9nEoPZ/lS3NzlfA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 120667.0, \"color\": \"#5dca06\", \"hover\": \"120667.0\"}}, \"gIxrZCDuvc5b7R0ldO3ofA\": {\"metadata\": {\"community_id\": 66, \"customer_id\": 151803.0, \"color\": \"#f647b0\", \"hover\": \"151803.0\"}}, \"dQJc1MumJDhkpndnjaPvfA\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 97477.0, \"color\": \"#5ccd4e\", \"hover\": \"97477.0\"}}, \"IIyzz7785kpQU9iuynoZfQ\": {\"metadata\": {\"community_id\": 479, \"customer_id\": 132047.0, \"color\": \"#4fdddb\", \"hover\": \"132047.0\"}}, \"3vO6fTiJWeBW8Ovt00gmfQ\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 30424.0, \"color\": \"#d74a1b\", \"hover\": \"30424.0\"}}, \"ca50n8gu7GeZJp8RRhk0fQ\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 81782.0, \"color\": \"#f06655\", \"hover\": \"81782.0\"}}, \"T03vnlhpoiPKW+i4msNpfQ\": {\"metadata\": {\"community_id\": 422, \"customer_id\": 70773.0, \"color\": \"#e33440\", \"hover\": \"70773.0\"}}, \"byLzCXNaqxT/CDt05ruSfQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 72083.0, \"color\": \"#272dca\", \"hover\": \"72083.0\"}}, \"/d5n79emA1gmv3Otf5+nfQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 3820.0, \"color\": \"#c12abd\", \"hover\": \"3820.0\"}}, \"VrJZ30qKInj1L/u4OmCrfQ\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 99284.0, \"color\": \"#b38afe\", \"hover\": \"99284.0\"}}, \"9+UpStn+i+Z+AhdJplnWfQ\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 67339.0, \"color\": \"#40fd29\", \"hover\": \"67339.0\"}}, \"zSnw+wtmM+4SOAAYxPTifQ\": {\"metadata\": {\"community_id\": 502, \"customer_id\": 92094.0, \"color\": \"#cfcb49\", \"hover\": \"92094.0\"}}, \"xrWu5aeUX9Np83JY2t36fQ\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 29023.0, \"color\": \"#e2d385\", \"hover\": \"29023.0\"}}, \"hpWsF97VyPcb0sPpYMwZfg\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 81483.0, \"color\": \"#eba59b\", \"hover\": \"81483.0\"}}, \"/+tEWbza2NMQ+0GqgeYlfg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 125450.0, \"color\": \"#9a62ce\", \"hover\": \"125450.0\"}}, \"XmgJm7ulMhmz4WN52CFLfg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 121081.0, \"color\": \"#99b5fc\", \"hover\": \"121081.0\"}}, \"xsZ3QoOsiYVsocqIeU1Yfg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 91137.0, \"color\": \"#b58c2b\", \"hover\": \"91137.0\"}}, \"40znihu3LPMCNVYXPwxqfg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 32635.0, \"color\": \"#c12abd\", \"hover\": \"32635.0\"}}, \"G5Uzi+Wb4tL6BY/O1Xt6fg\": {\"metadata\": {\"community_id\": 503, \"customer_id\": 58238.0, \"color\": \"#de8a63\", \"hover\": \"58238.0\"}}, \"BqVAoi3vwE1iMVUXAiWGfg\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 102947.0, \"color\": \"#dbd839\", \"hover\": \"102947.0\"}}, \"vpHUCpSg+ZkJ7DgCJ4ePfg\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 46673.0, \"color\": \"#cf4ceb\", \"hover\": \"46673.0\"}}, \"n4Wjg3fw8S/ocGI9gGSqfg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 127142.0, \"color\": \"#404dcf\", \"hover\": \"127142.0\"}}, \"N43YIvZdED2amMBcfCuvfg\": {\"metadata\": {\"community_id\": 504, \"customer_id\": 64368.0, \"color\": \"#d088da\", \"hover\": \"64368.0\"}}, \"Emni82nbGNjkVtShNsS7fg\": {\"metadata\": {\"community_id\": 279, \"customer_id\": 64004.0, \"color\": \"#73b2ef\", \"hover\": \"64004.0\"}}, \"Phron2p9O2Ta3MB1nqnQfg\": {\"metadata\": {\"community_id\": 11, \"customer_id\": 21996.0, \"color\": \"#3c48dd\", \"hover\": \"21996.0\"}}, \"/6AIdDDUcu7WAdktrPjYfg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 47417.0, \"color\": \"#1bd89a\", \"hover\": \"47417.0\"}}, \"yZj53swFyts7fWbyvsPafg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 167115.0, \"color\": \"#c12abd\", \"hover\": \"167115.0\"}}, \"DUG1RSltevasAkSeJQrffg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 27488.0, \"color\": \"#7eddd4\", \"hover\": \"27488.0\"}}, \"m+d2LV5NUpBGnNEZWOrgfg\": {\"metadata\": {\"community_id\": 150, \"customer_id\": 189745.0, \"color\": \"#2ddbb5\", \"hover\": \"189745.0\"}}, \"o2CKozplhIEEwPMwuJwHfw\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 106717.0, \"color\": \"#e6dab1\", \"hover\": \"106717.0\"}}, \"5RDTYztzVBjOOGuLnfYJfw\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 161006.0, \"color\": \"#08dbec\", \"hover\": \"161006.0\"}}, \"ZsxjhsAD6Sv1A0bFckkNfw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 94134.0, \"color\": \"#62fab8\", \"hover\": \"94134.0\"}}, \"Mv/Oa4soOpXSvQQaWX1bfw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 146133.0, \"color\": \"#b3df71\", \"hover\": \"146133.0\"}}, \"Lkgw2dolfwaJQyooYYppfw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 147210.0, \"color\": \"#99b5fc\", \"hover\": \"147210.0\"}}, \"xOvTZEopT/cbeclaxyRyfw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 20716.0, \"color\": \"#45f210\", \"hover\": \"20716.0\"}}, \"iCmJjgRRw00iNyTBA5WEfw\": {\"metadata\": {\"community_id\": 11, \"customer_id\": 28590.0, \"color\": \"#3c48dd\", \"hover\": \"28590.0\"}}, \"Z40sY+dpymk2VZt++4Odfw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 42587.0, \"color\": \"#d6b552\", \"hover\": \"42587.0\"}}, \"ZU6/wYRtpnWbayzt0gCnfw\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 116340.0, \"color\": \"#8b9ce4\", \"hover\": \"116340.0\"}}, \"S5qMzFe0Ze5xFvVuhWerfw\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 110184.0, \"color\": \"#a461cc\", \"hover\": \"110184.0\"}}, \"09toO23JoZDM1eQNPC65fw\": {\"metadata\": {\"community_id\": 506, \"customer_id\": 12537.0, \"color\": \"#df2e9c\", \"hover\": \"12537.0\"}}, \"9Gwg2EmcZbMB7v8/o0Xbfw\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 178802.0, \"color\": \"#3c74fc\", \"hover\": \"178802.0\"}}, \"as1AvPNQ1U3vjyhWZXXbfw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 197819.0, \"color\": \"#4b2fa5\", \"hover\": \"197819.0\"}}, \"ABNMMdHuqvyWm6YJkjwegA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 120918.0, \"color\": \"#6bdba1\", \"hover\": \"120918.0\"}}, \"oRE0AvTcLVRIeRdSc98jgA\": {\"metadata\": {\"community_id\": 507, \"customer_id\": 80177.0, \"color\": \"#7d13d9\", \"hover\": \"80177.0\"}}, \"mf/sQ2DSs0ULStqjM3UzgA\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 189334.0, \"color\": \"#3a92b5\", \"hover\": \"189334.0\"}}, \"SzOCs7c2CI/xNi9n68tDgA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 100042.0, \"color\": \"#c12abd\", \"hover\": \"100042.0\"}}, \"43LU6BgGpBXwOzgEUBR5gA\": {\"metadata\": {\"community_id\": 485, \"customer_id\": 98344.0, \"color\": \"#d09264\", \"hover\": \"98344.0\"}}, \"xJiz3I1kHzo5E+2oylh5gA\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 8467.0, \"color\": \"#c98e0a\", \"hover\": \"8467.0\"}}, \"ZWpyM5rMePFwPpv5CF6JgA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 119044.0, \"color\": \"#272dca\", \"hover\": \"119044.0\"}}, \"DykH5PpzRDCrHn459hWegA\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 212.0, \"color\": \"#2f55bf\", \"hover\": \"212.0\"}}, \"KWWMpirq65RWiugWtSapgA\": {\"metadata\": {\"community_id\": 508, \"customer_id\": 84409.0, \"color\": \"#6385d5\", \"hover\": \"84409.0\"}}, \"6/iAnL6duYjqsI6xQ8y1gA\": {\"metadata\": {\"community_id\": 509, \"customer_id\": 91000.0, \"color\": \"#b2fc98\", \"hover\": \"91000.0\"}}, \"LyS4NoG1akOcBiR9Y4fkgA\": {\"metadata\": {\"community_id\": 266, \"customer_id\": 101502.0, \"color\": \"#6bc6f1\", \"hover\": \"101502.0\"}}, \"SFY3Ky0iR7dV6QrHD34ggQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 193508.0, \"color\": \"#b3df71\", \"hover\": \"193508.0\"}}, \"53NfwwUwa8dZBEjNAOYzgQ\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 55895.0, \"color\": \"#8bd742\", \"hover\": \"55895.0\"}}, \"MsJMsnfAPOMulh3NVLhMgQ\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 180599.0, \"color\": \"#7f4bec\", \"hover\": \"180599.0\"}}, \"2FUWUn57d9WkTiJeBNJWgQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 8501.0, \"color\": \"#33b9bc\", \"hover\": \"8501.0\"}}, \"hZDdVGpM32AGBnhx8b1lgQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 87391.0, \"color\": \"#0f50c0\", \"hover\": \"87391.0\"}}, \"ul28Dil0Q9FmcB3y/n13gQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 176525.0, \"color\": \"#99ef99\", \"hover\": \"176525.0\"}}, \"9xlQC1cVGGA060Zj7md5gQ\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 57699.0, \"color\": \"#99f46c\", \"hover\": \"57699.0\"}}, \"KB7edPf4DYwXNqs6bTZ+gQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 192776.0, \"color\": \"#99b5fc\", \"hover\": \"192776.0\"}}, \"SpFHLZG1AQhFGxOLcTCBgQ\": {\"metadata\": {\"community_id\": 465, \"customer_id\": 63906.0, \"color\": \"#cd4e5b\", \"hover\": \"63906.0\"}}, \"CDlP7HSYXLmFaiyN5IqYgQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 85535.0, \"color\": \"#9ee08f\", \"hover\": \"85535.0\"}}, \"Bql4aQyUJhajEaLPowiggQ\": {\"metadata\": {\"community_id\": 196, \"customer_id\": 120347.0, \"color\": \"#97ce4b\", \"hover\": \"120347.0\"}}, \"XRXBu87tOvpos1ClJ6ajgQ\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 183028.0, \"color\": \"#511fd0\", \"hover\": \"183028.0\"}}, \"GdAR33PKO7t7itLwkcSkgQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 56740.0, \"color\": \"#4bdb47\", \"hover\": \"56740.0\"}}, \"sRWsct1emvL0oeoGMbmogQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 63368.0, \"color\": \"#9ee08f\", \"hover\": \"63368.0\"}}, \"VQWWWRLbO/6gR2x5xDP3gQ\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 155801.0, \"color\": \"#15cf62\", \"hover\": \"155801.0\"}}, \"kZJvIqFrqBfAlh05aHf6gQ\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 123904.0, \"color\": \"#e275e7\", \"hover\": \"123904.0\"}}, \"3pBelMFKaSd2kR58ooYagg\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 3154.0, \"color\": \"#eda379\", \"hover\": \"3154.0\"}}, \"pQvmcHKlsQVD46e4shkngg\": {\"metadata\": {\"community_id\": 427, \"customer_id\": 180764.0, \"color\": \"#bd9917\", \"hover\": \"180764.0\"}}, \"OEXsyZle1VYYL8uWesEogg\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 59862.0, \"color\": \"#d33b43\", \"hover\": \"59862.0\"}}, \"27Jts6i+ZslYObeJLVoygg\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 125397.0, \"color\": \"#3505e3\", \"hover\": \"125397.0\"}}, \"DfJsJTOjR+NX+PmleFU+gg\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 16852.0, \"color\": \"#0cd5fa\", \"hover\": \"16852.0\"}}, \"1Tlrs/pYCh/l3xCFOlNOgg\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 48065.0, \"color\": \"#4bdb47\", \"hover\": \"48065.0\"}}, \"46aKlHUWbk6T7f6FIOuAgg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 75809.0, \"color\": \"#33b9bc\", \"hover\": \"75809.0\"}}, \"odyKSpT9GgrtoCbYSPq6gg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 60418.0, \"color\": \"#b70fc0\", \"hover\": \"60418.0\"}}, \"ugotZicfaCxO89ywurXDgg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 156600.0, \"color\": \"#08cad9\", \"hover\": \"156600.0\"}}, \"q7GHrWPuuYSRoO8P6Qvfgg\": {\"metadata\": {\"community_id\": 470, \"customer_id\": 173992.0, \"color\": \"#0083dc\", \"hover\": \"173992.0\"}}, \"pUettJS0B/38xCxmsnnjgg\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 28166.0, \"color\": \"#29a6ef\", \"hover\": \"28166.0\"}}, \"sG/dTTSTiFiKB3E24Q71gg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 183520.0, \"color\": \"#32bc93\", \"hover\": \"183520.0\"}}, \"beJ4oL6Wy5sXtqlO2LH4gg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 149785.0, \"color\": \"#08cad9\", \"hover\": \"149785.0\"}}, \"4FMBsVtLVFe/Q7jRSBv/gg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 119478.0, \"color\": \"#62fab8\", \"hover\": \"119478.0\"}}, \"4dMxSfZ1tUlPl97TOccMgw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 11983.0, \"color\": \"#99b5fc\", \"hover\": \"11983.0\"}}, \"DOsl6zK+y/hfIPJ3VtMngw\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 42192.0, \"color\": \"#d53cea\", \"hover\": \"42192.0\"}}, \"m4x3ssVqGyiYYK9y9OQqgw\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 95442.0, \"color\": \"#e4e59e\", \"hover\": \"95442.0\"}}, \"JZ/SP3mwjV46p9S5v9Mwgw\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 9750.0, \"color\": \"#58db13\", \"hover\": \"9750.0\"}}, \"wnxxkY/h8HD42E/vv4Y7gw\": {\"metadata\": {\"community_id\": 130, \"customer_id\": 158206.0, \"color\": \"#a264ce\", \"hover\": \"158206.0\"}}, \"rbYbLjhTXolr8pqM9pVJgw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 180573.0, \"color\": \"#eba59b\", \"hover\": \"180573.0\"}}, \"tRTiUT2q7boLzf2OSBBKgw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 177529.0, \"color\": \"#eda379\", \"hover\": \"177529.0\"}}, \"SPnVEAItdFjPGaU3ufZSgw\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 62587.0, \"color\": \"#bb97df\", \"hover\": \"62587.0\"}}, \"hNssRjdsVPWPIXeaQ55ogw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 12563.0, \"color\": \"#4b2fa5\", \"hover\": \"12563.0\"}}, \"QZH8vfYtCBAc59swD26agw\": {\"metadata\": {\"community_id\": 423, \"customer_id\": 22795.0, \"color\": \"#78e0aa\", \"hover\": \"22795.0\"}}, \"+SUT8HUDFF9VwUvjKqCggw\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 131070.0, \"color\": \"#5970d7\", \"hover\": \"131070.0\"}}, \"cB4k/wvjlkEyABHiHtqigw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 172173.0, \"color\": \"#99b5fc\", \"hover\": \"172173.0\"}}, \"raakfeUY5abYonuzW1G1gw\": {\"metadata\": {\"community_id\": 488, \"customer_id\": 590.0, \"color\": \"#9f8cd9\", \"hover\": \"590.0\"}}, \"gkzABWaToN7RXcv0rf/Ogw\": {\"metadata\": {\"community_id\": 512, \"customer_id\": 108600.0, \"color\": \"#76d3a2\", \"hover\": \"108600.0\"}}, \"fzbpoYXB7t3QDILutC3sgw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 122832.0, \"color\": \"#78e968\", \"hover\": \"122832.0\"}}, \"813MKAEw6poYGq6K5JHtgw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 50091.0, \"color\": \"#62fab8\", \"hover\": \"50091.0\"}}, \"BwE/g8Wgt3CdH7ApP+YShA\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 177659.0, \"color\": \"#cf8a18\", \"hover\": \"177659.0\"}}, \"XHApgMrcyJKBXYHBHMgahA\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 181252.0, \"color\": \"#8827b3\", \"hover\": \"181252.0\"}}, \"LlaVgzJQejxtWoYhKnBQhA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 46947.0, \"color\": \"#e4f354\", \"hover\": \"46947.0\"}}, \"GQFoIQ9wL/eZEy/wZDZehA\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 73204.0, \"color\": \"#e311d5\", \"hover\": \"73204.0\"}}, \"4Z23zzva4euaLRBGl9VehA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 60951.0, \"color\": \"#32bc93\", \"hover\": \"60951.0\"}}, \"icW9xFiUc3lytmLbrRx/hA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 92252.0, \"color\": \"#c12abd\", \"hover\": \"92252.0\"}}, \"QYuYhJq6PcBT0c+DRYWAhA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 139231.0, \"color\": \"#7aefcb\", \"hover\": \"139231.0\"}}, \"qO5g9FMOF+kipT/dNQiJhA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 67491.0, \"color\": \"#d2ab67\", \"hover\": \"67491.0\"}}, \"amTcXluqwFvvCKvAyPmXhA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 28942.0, \"color\": \"#eba59b\", \"hover\": \"28942.0\"}}, \"J3mNS9kxe26Yi816SQSYhA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 37476.0, \"color\": \"#d53cea\", \"hover\": \"37476.0\"}}, \"yQjWDPTgU22NCJ+ors/lhA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 199267.0, \"color\": \"#1bd89a\", \"hover\": \"199267.0\"}}, \"GigVNO8Fs+XEzbfNezzphA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 115911.0, \"color\": \"#c12abd\", \"hover\": \"115911.0\"}}, \"pkVC7mSNtEwUuxi1LLrwhA\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 30254.0, \"color\": \"#e4e59e\", \"hover\": \"30254.0\"}}, \"eEG8U3fO2muTeIM7JCQChQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 101701.0, \"color\": \"#4bdb47\", \"hover\": \"101701.0\"}}, \"a1dPxbwXNfiONYdhIiQNhQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 37810.0, \"color\": \"#c0ea5e\", \"hover\": \"37810.0\"}}, \"3GtPhtMHl5X4mu4HSukWhQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 131026.0, \"color\": \"#0f50c0\", \"hover\": \"131026.0\"}}, \"s/k+WFHQ5W9aHWgEMM8XhQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 139029.0, \"color\": \"#6bdba1\", \"hover\": \"139029.0\"}}, \"HxdyC6c/hI78wBGO81UahQ\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 166607.0, \"color\": \"#be24cb\", \"hover\": \"166607.0\"}}, \"bDci8BIt+vso5WXBUfZPhQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 130356.0, \"color\": \"#33b9bc\", \"hover\": \"130356.0\"}}, \"rEsQIeJFhjmEloI3VS1bhQ\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 3417.0, \"color\": \"#92e5be\", \"hover\": \"3417.0\"}}, \"ZOXH4sYXO8arQZZMzYldhQ\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 31029.0, \"color\": \"#59e09f\", \"hover\": \"31029.0\"}}, \"v6rEtj7X5ZMJKzcuXNJhhQ\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 113294.0, \"color\": \"#1807f2\", \"hover\": \"113294.0\"}}, \"/RiRhji19HANI2EN5WdnhQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 1778.0, \"color\": \"#1bd89a\", \"hover\": \"1778.0\"}}, \"Ykn3g3QC0rQT10FGrwVuhQ\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 154604.0, \"color\": \"#b356f5\", \"hover\": \"154604.0\"}}, \"Mxcr8MDLOsrUcNOZZAmDhQ\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 61020.0, \"color\": \"#dfd779\", \"hover\": \"61020.0\"}}, \"vujxY+ZC8FCpdhHZeh2YhQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 59202.0, \"color\": \"#10d82f\", \"hover\": \"59202.0\"}}, \"lDMw8TfqrCgHHpa7WOOYhQ\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 160406.0, \"color\": \"#f1fc86\", \"hover\": \"160406.0\"}}, \"NSh4yoNJhqwR/mYpwpaehQ\": {\"metadata\": {\"community_id\": 242, \"customer_id\": 71089.0, \"color\": \"#4de6d5\", \"hover\": \"71089.0\"}}, \"lojx+gIGkFIte9+XWtSjhQ\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 32830.0, \"color\": \"#4451e7\", \"hover\": \"32830.0\"}}, \"cJ/Kh60Lwl2Y5mZRFzjJhQ\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 151838.0, \"color\": \"#08cad9\", \"hover\": \"151838.0\"}}, \"Xmq2gZjfpOmqc205fCPhhQ\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 40761.0, \"color\": \"#2575dd\", \"hover\": \"40761.0\"}}, \"WB2s2HpFbbHYpva2vHoChg\": {\"metadata\": {\"community_id\": 185, \"customer_id\": 196549.0, \"color\": \"#84d6c2\", \"hover\": \"196549.0\"}}, \"wph8PLZvlqygec2g0ZIIhg\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 129301.0, \"color\": \"#8fe89d\", \"hover\": \"129301.0\"}}, \"xu7RHPhCjrChYtE9udUIhg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 33109.0, \"color\": \"#ae692e\", \"hover\": \"33109.0\"}}, \"oklVnGTYPCdUOJPs4w8Lhg\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 199150.0, \"color\": \"#5dca06\", \"hover\": \"199150.0\"}}, \"iweGkp1urOOrJF2VoRZNhg\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 148876.0, \"color\": \"#c242c1\", \"hover\": \"148876.0\"}}, \"7u2XSrqa0R2siPqtptBvhg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 76339.0, \"color\": \"#c12abd\", \"hover\": \"76339.0\"}}, \"DOJ3OEl+wag5/2KgunNwhg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 153398.0, \"color\": \"#32bc93\", \"hover\": \"153398.0\"}}, \"1PYg/GeRNUSgHhIJQlmZhg\": {\"metadata\": {\"community_id\": 412, \"customer_id\": 179267.0, \"color\": \"#7e48c2\", \"hover\": \"179267.0\"}}, \"RdxNld8Jy3rGVLi1TUSehg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 6520.0, \"color\": \"#45f210\", \"hover\": \"6520.0\"}}, \"P8GKZk+TH9Fs7Xg2twighg\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 192877.0, \"color\": \"#e880f5\", \"hover\": \"192877.0\"}}, \"RmJICEOyIUQIJLdMilO4hg\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 162539.0, \"color\": \"#fa6270\", \"hover\": \"162539.0\"}}, \"vMgwA5HwD33hVvy4pK/Ahg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 67961.0, \"color\": \"#272dca\", \"hover\": \"67961.0\"}}, \"Kbhv+XSqvDoMD13AFgLghg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 55277.0, \"color\": \"#c12abd\", \"hover\": \"55277.0\"}}, \"pP36UZKw6kXrWeW9WIf6hg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 63416.0, \"color\": \"#9ee08f\", \"hover\": \"63416.0\"}}, \"pQPJ271k9bUoMV49g6IUhw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 75538.0, \"color\": \"#d2ab67\", \"hover\": \"75538.0\"}}, \"yIi9qzDFMl9qt0xAuWtGhw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 47874.0, \"color\": \"#c12abd\", \"hover\": \"47874.0\"}}, \"o2bKAZR6aYNtSggKGSVPhw\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 59028.0, \"color\": \"#c67fed\", \"hover\": \"59028.0\"}}, \"p3tybEF2UpLMP4gDgTlShw\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 69437.0, \"color\": \"#d53e3e\", \"hover\": \"69437.0\"}}, \"TodOSaFZiYOH8gsHOfldhw\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 35812.0, \"color\": \"#d820bf\", \"hover\": \"35812.0\"}}, \"cCPJgnmqfGiAytewr9+Ahw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 83150.0, \"color\": \"#99ef99\", \"hover\": \"83150.0\"}}, \"8rzeo+EaMha06b3mPHaFhw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 19614.0, \"color\": \"#272dca\", \"hover\": \"19614.0\"}}, \"0sfaCWjVStturOAXfaGRhw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 85023.0, \"color\": \"#78e968\", \"hover\": \"85023.0\"}}, \"OTBYEyX2QOB4W51Qglmqhw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 75508.0, \"color\": \"#99b5fc\", \"hover\": \"75508.0\"}}, \"5cV0GYVtl1fh/DI7O5TBhw\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 69503.0, \"color\": \"#23d695\", \"hover\": \"69503.0\"}}, \"yUoUSvScDsB2mWYtcrHuhw\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 154623.0, \"color\": \"#3505e3\", \"hover\": \"154623.0\"}}, \"Q1bmXHnbChJuHI/NXkr5hw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 65828.0, \"color\": \"#ed1e1d\", \"hover\": \"65828.0\"}}, \"eI+GLSSPGpM0YzAynKwBiA\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 110548.0, \"color\": \"#a461cc\", \"hover\": \"110548.0\"}}, \"wjjHMDS+oPWRjv725xcDiA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 113437.0, \"color\": \"#1bd89a\", \"hover\": \"113437.0\"}}, \"vk1g0t3PzUZjffECtPwdiA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 43408.0, \"color\": \"#10d82f\", \"hover\": \"43408.0\"}}, \"fcFSRQ5f5s0sLFOMwmYsiA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 108614.0, \"color\": \"#dfd779\", \"hover\": \"108614.0\"}}, \"rtQmcpROqcblEzxYvOdFiA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 31720.0, \"color\": \"#6bdba1\", \"hover\": \"31720.0\"}}, \"x/rpyDH2fFCbE+u0d79MiA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 166929.0, \"color\": \"#99ef99\", \"hover\": \"166929.0\"}}, \"SVHlmn1r2bsNbwqdYmNdiA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 195102.0, \"color\": \"#7a80f3\", \"hover\": \"195102.0\"}}, \"D/A8t0cmv3N4b8hDFamTiA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 176784.0, \"color\": \"#b3df71\", \"hover\": \"176784.0\"}}, \"US5Qo6JtPJRWWdK1sh2UiA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 133186.0, \"color\": \"#33b9bc\", \"hover\": \"133186.0\"}}, \"MrbW31/GLJu0yonpmKadiA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 116925.0, \"color\": \"#5dca06\", \"hover\": \"116925.0\"}}, \"lmBINJAFKbwThqfREy6/iA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 35314.0, \"color\": \"#7eddd4\", \"hover\": \"35314.0\"}}, \"dlr2R44ETn3xtO4mnELFiA\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 73057.0, \"color\": \"#d74a1b\", \"hover\": \"73057.0\"}}, \"7o2xRBk8+bEnyRLzDpH7iA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 12911.0, \"color\": \"#d2ab67\", \"hover\": \"12911.0\"}}, \"dJLrv9jk7ldi+jAgapgViQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 40099.0, \"color\": \"#2795b1\", \"hover\": \"40099.0\"}}, \"ELU9OZuGG7mvNMcFBlEmiQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 49866.0, \"color\": \"#5dca06\", \"hover\": \"49866.0\"}}, \"7LoXRQyN/WUR4uMbgJgsiQ\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 193522.0, \"color\": \"#7a80f3\", \"hover\": \"193522.0\"}}, \"t4T3wmGipQx4c4H54HxOiQ\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 33206.0, \"color\": \"#c05c10\", \"hover\": \"33206.0\"}}, \"MeX6DDISi5cEsrtmH2FZiQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 9801.0, \"color\": \"#33b9bc\", \"hover\": \"9801.0\"}}, \"N9GHwM2Vq3oyzQrCqt5ciQ\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 152528.0, \"color\": \"#f27280\", \"hover\": \"152528.0\"}}, \"qiADwYywQwryVlnMOEJtiQ\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 151760.0, \"color\": \"#511fd0\", \"hover\": \"151760.0\"}}, \"KuY19ZpJ9pyPPEUlZSFuiQ\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 117815.0, \"color\": \"#5831d3\", \"hover\": \"117815.0\"}}, \"5//GAO7hi2HIxr4ipP2KiQ\": {\"metadata\": {\"community_id\": 514, \"customer_id\": 25116.0, \"color\": \"#bfde5f\", \"hover\": \"25116.0\"}}, \"HRfIlCMyjqCLOAdE7RCTiQ\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 176018.0, \"color\": \"#9aa92e\", \"hover\": \"176018.0\"}}, \"GKx7Kx08P5oJYYDzmxGTiQ\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 144470.0, \"color\": \"#f0fe05\", \"hover\": \"144470.0\"}}, \"S1/wc5PKbfp7F7b/fdnEiQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 42502.0, \"color\": \"#32bc93\", \"hover\": \"42502.0\"}}, \"s3qP/XBlR8cGjJ1s3pX2iQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 51539.0, \"color\": \"#e436ba\", \"hover\": \"51539.0\"}}, \"AdIBqPKbWZ1ixMQ1vwkHig\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 157895.0, \"color\": \"#e0b23c\", \"hover\": \"157895.0\"}}, \"GfC4/nvDCu7sIotSuigJig\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 30109.0, \"color\": \"#5dca06\", \"hover\": \"30109.0\"}}, \"F6WHsN/AKDjztOrLCVQxig\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 61031.0, \"color\": \"#8ceceb\", \"hover\": \"61031.0\"}}, \"zjO5j9qIwyI+tAwMdBI9ig\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 90323.0, \"color\": \"#dfd779\", \"hover\": \"90323.0\"}}, \"1jKoWPtNZuyTySc8hwFBig\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 50182.0, \"color\": \"#272dca\", \"hover\": \"50182.0\"}}, \"vWvb8EkPpgQ/qY160Axdig\": {\"metadata\": {\"community_id\": 497, \"customer_id\": 161296.0, \"color\": \"#dba26b\", \"hover\": \"161296.0\"}}, \"7lhN4GXU1jN/cw81F5Viig\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 99442.0, \"color\": \"#0cd5fa\", \"hover\": \"99442.0\"}}, \"gbTBrGKYi9EDhNNNZpNjig\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 67338.0, \"color\": \"#272dca\", \"hover\": \"67338.0\"}}, \"PL5jtLk+zPAXhB/EpkN0ig\": {\"metadata\": {\"community_id\": 448, \"customer_id\": 153507.0, \"color\": \"#f1959a\", \"hover\": \"153507.0\"}}, \"QoHi3matwhw+B0if9Y6Dig\": {\"metadata\": {\"community_id\": 461, \"customer_id\": 74347.0, \"color\": \"#a7e2ce\", \"hover\": \"74347.0\"}}, \"7Gk9r9+9dPSxFKRaRSiRig\": {\"metadata\": {\"community_id\": 282, \"customer_id\": 8801.0, \"color\": \"#c05cf0\", \"hover\": \"8801.0\"}}, \"ZK6YeSt70T5UPes8Tj68ig\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 106614.0, \"color\": \"#f6a0ef\", \"hover\": \"106614.0\"}}, \"aU4n2x4OPkJodk0KxvLYig\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 11679.0, \"color\": \"#31ab2f\", \"hover\": \"11679.0\"}}, \"L2474WrP9VHTSD5GjTHeig\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 24392.0, \"color\": \"#b3df71\", \"hover\": \"24392.0\"}}, \"/9wvd4VqJwRqnTWtDanhig\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 103253.0, \"color\": \"#192dda\", \"hover\": \"103253.0\"}}, \"lJcfjh1B0QC8wlaorKjnig\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 159625.0, \"color\": \"#c12abd\", \"hover\": \"159625.0\"}}, \"LbpAv4RD73ZyJlP8Viv4ig\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 91211.0, \"color\": \"#e7419d\", \"hover\": \"91211.0\"}}, \"LlZMdonbcTzMHX8tffT5ig\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 99443.0, \"color\": \"#78e968\", \"hover\": \"99443.0\"}}, \"EDp/Q2VCkQFOz0Iplgj9ig\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 13400.0, \"color\": \"#33b9bc\", \"hover\": \"13400.0\"}}, \"RcN8xiuUhv2kkieL87f/ig\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 125780.0, \"color\": \"#f6a0ef\", \"hover\": \"125780.0\"}}, \"2WuhL5d5X3mqFFxzpE4Siw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 160664.0, \"color\": \"#99b5fc\", \"hover\": \"160664.0\"}}, \"NWZIDb0hOgiqfdVF/d8Viw\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 41356.0, \"color\": \"#9bc430\", \"hover\": \"41356.0\"}}, \"0l4RTgkLvmQmKCNvIiUziw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 41517.0, \"color\": \"#87cefd\", \"hover\": \"41517.0\"}}, \"tag4XqPZ1ovS8C2YXBc2iw\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 113375.0, \"color\": \"#58db13\", \"hover\": \"113375.0\"}}, \"b3tzFgpkl9x19kBFzaQ7iw\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 141516.0, \"color\": \"#1bc070\", \"hover\": \"141516.0\"}}, \"AnqqRMSFJIdjqNTRgBhGiw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 35505.0, \"color\": \"#7aefcb\", \"hover\": \"35505.0\"}}, \"aZ94xZmWiU/6fGBxFlmAiw\": {\"metadata\": {\"community_id\": 515, \"customer_id\": 27615.0, \"color\": \"#8b19db\", \"hover\": \"27615.0\"}}, \"mPxvKKa8/IHMUITnO0yOiw\": {\"metadata\": {\"community_id\": 486, \"customer_id\": 17940.0, \"color\": \"#6fdfb0\", \"hover\": \"17940.0\"}}, \"b5vs1fwa84/qK2dkqpWviw\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 149752.0, \"color\": \"#e3a953\", \"hover\": \"149752.0\"}}, \"l530hSXtzJ0CZmjTdke3iw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 132658.0, \"color\": \"#7eddd4\", \"hover\": \"132658.0\"}}, \"7ARtNFnnaQ6GXiln4T/Qiw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 141861.0, \"color\": \"#7eddd4\", \"hover\": \"141861.0\"}}, \"dhusCwGFABIyWc0D0Gbxiw\": {\"metadata\": {\"community_id\": 516, \"customer_id\": 38474.0, \"color\": \"#86e1d3\", \"hover\": \"38474.0\"}}, \"7WnSaJh7YZRbTu+sts30iw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 181525.0, \"color\": \"#d8dd94\", \"hover\": \"181525.0\"}}, \"34JltuWiUJGNu5yr30D4iw\": {\"metadata\": {\"community_id\": 379, \"customer_id\": 124433.0, \"color\": \"#ec9ede\", \"hover\": \"124433.0\"}}, \"xmdiNDAZrXb96DU6G+YMjA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 125015.0, \"color\": \"#1807f2\", \"hover\": \"125015.0\"}}, \"AYUi4YjxI3sjyh69XmUZjA\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 142357.0, \"color\": \"#83aedd\", \"hover\": \"142357.0\"}}, \"tNAIkX4qZor6WS+AzCs0jA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 184187.0, \"color\": \"#c12abd\", \"hover\": \"184187.0\"}}, \"ezkzW2wuFCumEZ/ag1Q4jA\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 95953.0, \"color\": \"#3505e3\", \"hover\": \"95953.0\"}}, \"uKun7xuFYzhGRl+S+nJjjA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 161658.0, \"color\": \"#99b5fc\", \"hover\": \"161658.0\"}}, \"lr6ZvC4jKRd6K7+kcQKNjA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 81731.0, \"color\": \"#9ee08f\", \"hover\": \"81731.0\"}}, \"APTLNvOckRQErfs6WtWkjA\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 162823.0, \"color\": \"#3505e3\", \"hover\": \"162823.0\"}}, \"J8SjBvJCmPKOGw5leXvCjA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 41320.0, \"color\": \"#f6a0ef\", \"hover\": \"41320.0\"}}, \"b1M/wYdBaDni3Ofh4l3HjA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 181805.0, \"color\": \"#10d82f\", \"hover\": \"181805.0\"}}, \"Yz2zqM3ottFo16zf8VP/jA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 56431.0, \"color\": \"#62fab8\", \"hover\": \"56431.0\"}}, \"su6tafi80XozMhq/bUQQjQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 36217.0, \"color\": \"#32bc93\", \"hover\": \"36217.0\"}}, \"HHin+VkuwzW1+zW1nIAhjQ\": {\"metadata\": {\"community_id\": 380, \"customer_id\": 48589.0, \"color\": \"#c54041\", \"hover\": \"48589.0\"}}, \"kVhIf9Yg6rCX4/kOHXUnjQ\": {\"metadata\": {\"community_id\": 338, \"customer_id\": 173431.0, \"color\": \"#2746c9\", \"hover\": \"173431.0\"}}, \"uYIu5+gtVaTQVZiPGapHjQ\": {\"metadata\": {\"community_id\": 375, \"customer_id\": 7501.0, \"color\": \"#7bfc6a\", \"hover\": \"7501.0\"}}, \"8Ow4dabxHnWh03IJriBQjQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 185982.0, \"color\": \"#c12abd\", \"hover\": \"185982.0\"}}, \"oaRnYnhvO/FYGlQNqix0jQ\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 130646.0, \"color\": \"#bb97df\", \"hover\": \"130646.0\"}}, \"2lQwbRqYwBClEYuT3sl5jQ\": {\"metadata\": {\"community_id\": 150, \"customer_id\": 6670.0, \"color\": \"#2ddbb5\", \"hover\": \"6670.0\"}}, \"VwYIikUAhpUNQ87/LkyMjQ\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 171957.0, \"color\": \"#abf295\", \"hover\": \"171957.0\"}}, \"/LWWbQVfFEGRdmgHBX+hjQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 35184.0, \"color\": \"#99b5fc\", \"hover\": \"35184.0\"}}, \"zBYtW6j0BVVb87hgefOzjQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 118236.0, \"color\": \"#d2ab67\", \"hover\": \"118236.0\"}}, \"iRbYHE+vW9ThiDFrH1S6jQ\": {\"metadata\": {\"community_id\": 262, \"customer_id\": 88723.0, \"color\": \"#8a31a3\", \"hover\": \"88723.0\"}}, \"GE7TD8juiqQ9vJOTdh/WjQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 179115.0, \"color\": \"#dcc694\", \"hover\": \"179115.0\"}}, \"EI1Bb3iYtYtE0JmXrzbhjQ\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 84999.0, \"color\": \"#e1de3c\", \"hover\": \"84999.0\"}}, \"STJBi8oPwc2BctwyE6sWjg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 125022.0, \"color\": \"#f8a36c\", \"hover\": \"125022.0\"}}, \"P3ZfkdUWoPHfTnvoEZovjg\": {\"metadata\": {\"community_id\": 320, \"customer_id\": 103009.0, \"color\": \"#a4f59b\", \"hover\": \"103009.0\"}}, \"J6oUjOAH1BBqpI0I1+A5jg\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 29464.0, \"color\": \"#dcc694\", \"hover\": \"29464.0\"}}, \"qZrorchi2uCuBRCn13Jfjg\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 148150.0, \"color\": \"#e3a953\", \"hover\": \"148150.0\"}}, \"EngmqUh4gyea4TS7OO9yjg\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 86055.0, \"color\": \"#98e1c6\", \"hover\": \"86055.0\"}}, \"kjHwdaup66csMOCG3ROKjg\": {\"metadata\": {\"community_id\": 446, \"customer_id\": 182730.0, \"color\": \"#da6ec4\", \"hover\": \"182730.0\"}}, \"jSRfMZy/4td8W+2rHbKKjg\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 104290.0, \"color\": \"#a7d52c\", \"hover\": \"104290.0\"}}, \"2S4DHIPXmBRy4ga7Mw3Fjg\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 47546.0, \"color\": \"#93c51c\", \"hover\": \"47546.0\"}}, \"tSRwNpETY7Lfodms/g7djg\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 179408.0, \"color\": \"#8de1ae\", \"hover\": \"179408.0\"}}, \"75emx1Xn05NP13ZlbDnqjg\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 5988.0, \"color\": \"#fe58fe\", \"hover\": \"5988.0\"}}, \"Wu9y2fqKtlmpQc2y8UYBjw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 142508.0, \"color\": \"#99b5fc\", \"hover\": \"142508.0\"}}, \"Svv21VeSyogknGWZLq0qjw\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 29770.0, \"color\": \"#8cf43c\", \"hover\": \"29770.0\"}}, \"dj5gNj2/vVS39LTElZcvjw\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 3876.0, \"color\": \"#3ef95f\", \"hover\": \"3876.0\"}}, \"+vqV5drJz8mV3S8VFpkwjw\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 102921.0, \"color\": \"#c093fc\", \"hover\": \"102921.0\"}}, \"Vt0YjdF6gca6IHVC9Hs5jw\": {\"metadata\": {\"community_id\": 424, \"customer_id\": 12272.0, \"color\": \"#9654fa\", \"hover\": \"12272.0\"}}, \"XgXD4ybBbpiAlnG51DRSjw\": {\"metadata\": {\"community_id\": 38, \"customer_id\": 149297.0, \"color\": \"#4ff699\", \"hover\": \"149297.0\"}}, \"LjIJIsWr2kj76XygrEd5jw\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 193757.0, \"color\": \"#c95b7f\", \"hover\": \"193757.0\"}}, \"7KcKrZ7VTELYyhbcB1CLjw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 104231.0, \"color\": \"#32bc93\", \"hover\": \"104231.0\"}}, \"KSy197RLM9KmZkkCLRjLjw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 168879.0, \"color\": \"#33b9bc\", \"hover\": \"168879.0\"}}, \"y+bS1hJzb7DfBIsDLnbkjw\": {\"metadata\": {\"community_id\": 507, \"customer_id\": 164294.0, \"color\": \"#7d13d9\", \"hover\": \"164294.0\"}}, \"aT7jTvJmQNGLTi4X6y7vjw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 68259.0, \"color\": \"#32bc93\", \"hover\": \"68259.0\"}}, \"EmDKU/Z/uCBSXOGi++/1jw\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 15254.0, \"color\": \"#e5e372\", \"hover\": \"15254.0\"}}, \"tt5c/hfUXcsvf076ArMHkA\": {\"metadata\": {\"community_id\": 98, \"customer_id\": 51007.0, \"color\": \"#be7fe7\", \"hover\": \"51007.0\"}}, \"leIQh+Nv7Br6jyV3azMvkA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 163085.0, \"color\": \"#d53e3e\", \"hover\": \"163085.0\"}}, \"tT56pcNitJCJsWGjol9AkA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 67343.0, \"color\": \"#d8dd94\", \"hover\": \"67343.0\"}}, \"XqkxpgKTYkq8YB+YxQNJkA\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 190700.0, \"color\": \"#a3ace6\", \"hover\": \"190700.0\"}}, \"ymZAIf0E6zclGzrp8HZOkA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 57332.0, \"color\": \"#78e968\", \"hover\": \"57332.0\"}}, \"wm0P02CMDxZMbW0FmLdvkA\": {\"metadata\": {\"community_id\": 493, \"customer_id\": 195551.0, \"color\": \"#d99916\", \"hover\": \"195551.0\"}}, \"8DMefT1OSM5d4f8qFzt9kA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 70476.0, \"color\": \"#45f210\", \"hover\": \"70476.0\"}}, \"qrsjsWUS7pNe8p0FWJp9kA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 79917.0, \"color\": \"#b9e04a\", \"hover\": \"79917.0\"}}, \"mwwTgvkZoGiAGW1oNL+LkA\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 14028.0, \"color\": \"#c95b7f\", \"hover\": \"14028.0\"}}, \"hdbnBT9t2fyEJTsarj2ckA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 131635.0, \"color\": \"#272dca\", \"hover\": \"131635.0\"}}, \"7+546eOPGtXQD4e1DDKtkA\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 53488.0, \"color\": \"#c98e0a\", \"hover\": \"53488.0\"}}, \"s1Cp/MWD2ItYJBSRuQDQkA\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 82169.0, \"color\": \"#5831d3\", \"hover\": \"82169.0\"}}, \"yrXDjH5Y3GviTTblofUhkQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 18462.0, \"color\": \"#62fab8\", \"hover\": \"18462.0\"}}, \"uYfni3DsnHLywrApmbU6kQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 102136.0, \"color\": \"#f73d92\", \"hover\": \"102136.0\"}}, \"mvm8uzRObfOilYPlJTJ9kQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 147267.0, \"color\": \"#32bc93\", \"hover\": \"147267.0\"}}, \"OnleVs9vYySxKt/ycEmYkQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 197679.0, \"color\": \"#f8a36c\", \"hover\": \"197679.0\"}}, \"0cSWpJdc3Akr/N3MCnC8kQ\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 24641.0, \"color\": \"#fd72cc\", \"hover\": \"24641.0\"}}, \"nJ1II7w+Iraj91Z0NlS9kQ\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 36511.0, \"color\": \"#e1de3c\", \"hover\": \"36511.0\"}}, \"+jed9hT4PCjAgcZW7k3BkQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 58477.0, \"color\": \"#f73d92\", \"hover\": \"58477.0\"}}, \"xhxYTYvGcyJprp8iGNPxkQ\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 77322.0, \"color\": \"#ee2a13\", \"hover\": \"77322.0\"}}, \"K8C5ZUWabbBM5OUN4Dopkg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 106.0, \"color\": \"#e0b23c\", \"hover\": \"106.0\"}}, \"vmO6Y+KYqGplY91Uh4otkg\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 68206.0, \"color\": \"#f9855b\", \"hover\": \"68206.0\"}}, \"1vnevzowu+uO6Fw7bnhVkg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 56594.0, \"color\": \"#ee2a13\", \"hover\": \"56594.0\"}}, \"MD286c3p+1wLoCXHWXNekg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 101672.0, \"color\": \"#99ef99\", \"hover\": \"101672.0\"}}, \"fVODvtXqbIUOpKDyQOeZkg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 19251.0, \"color\": \"#a372d3\", \"hover\": \"19251.0\"}}, \"JWq9Z94VJ3KnTaJTzG6rkg\": {\"metadata\": {\"community_id\": 517, \"customer_id\": 96255.0, \"color\": \"#9ee2b6\", \"hover\": \"96255.0\"}}, \"aY38F1Hi68kXNObkjJy0kg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 58943.0, \"color\": \"#99b5fc\", \"hover\": \"58943.0\"}}, \"GT+3GNQqNXtZnm7G2RrQkg\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 40061.0, \"color\": \"#d820bf\", \"hover\": \"40061.0\"}}, \"BP7DgF9QPNEPPG09OT3xkg\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 87668.0, \"color\": \"#10f433\", \"hover\": \"87668.0\"}}, \"gCCFDdahxk6vhMbz8r0Dkw\": {\"metadata\": {\"community_id\": 518, \"customer_id\": 130279.0, \"color\": \"#52a8f5\", \"hover\": \"130279.0\"}}, \"q1hIpuJfhsRHeVqWKvcwkw\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 1042.0, \"color\": \"#511fd0\", \"hover\": \"1042.0\"}}, \"V39HVLs3gAxLStN2ZbhDkw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 183503.0, \"color\": \"#33b9bc\", \"hover\": \"183503.0\"}}, \"w/1S2jjYrh+t4IF1b9hDkw\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 65404.0, \"color\": \"#c98e0a\", \"hover\": \"65404.0\"}}, \"vRASEJmApd9kVKJdViBVkw\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 124796.0, \"color\": \"#c273fd\", \"hover\": \"124796.0\"}}, \"5mpJr5Sfqf4U8mpiqhJ7kw\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 30101.0, \"color\": \"#5831d3\", \"hover\": \"30101.0\"}}, \"coyiMRwZqLI5ZdJOoZeykw\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 12999.0, \"color\": \"#d46da8\", \"hover\": \"12999.0\"}}, \"wWOB65sUCgBZmtKzkj+zkw\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 21184.0, \"color\": \"#e275e7\", \"hover\": \"21184.0\"}}, \"M/+0wuChC+y87lbk0nzOkw\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 107838.0, \"color\": \"#c67fed\", \"hover\": \"107838.0\"}}, \"2XgKwEYu+xnjpKxCZsXPkw\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 107380.0, \"color\": \"#6ea5d0\", \"hover\": \"107380.0\"}}, \"PT8VvCe2+xblFYSQtULWkw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 43934.0, \"color\": \"#b3df71\", \"hover\": \"43934.0\"}}, \"+hcPbiZB+EqklCe9mW0OlA\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 117791.0, \"color\": \"#417dfc\", \"hover\": \"117791.0\"}}, \"RFhRmMGBBEPoXxsodv9AlA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 157320.0, \"color\": \"#eba59b\", \"hover\": \"157320.0\"}}, \"0OJgoCy/iRkK0pdhLZlDlA\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 101392.0, \"color\": \"#a1cdf3\", \"hover\": \"101392.0\"}}, \"1e8Ls517tKCbpK1LBq5blA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 188488.0, \"color\": \"#81a8e3\", \"hover\": \"188488.0\"}}, \"stm5O3lA7Tm784XxpVddlA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 107071.0, \"color\": \"#eda379\", \"hover\": \"107071.0\"}}, \"R0VympemlR1IDHdJpudzlA\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 18996.0, \"color\": \"#14ace5\", \"hover\": \"18996.0\"}}, \"pzrkk3XBurZ98mVCu1qMlA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 37130.0, \"color\": \"#32bc93\", \"hover\": \"37130.0\"}}, \"YL7u6Ftz6it+yHZ1zOCPlA\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 31656.0, \"color\": \"#ee2a13\", \"hover\": \"31656.0\"}}, \"X9RJFsdiJwVjivPdqJGglA\": {\"metadata\": {\"community_id\": 100, \"customer_id\": 67516.0, \"color\": \"#41d2d9\", \"hover\": \"67516.0\"}}, \"0l7C/zbIFeNPorEw6JmxlA\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 196687.0, \"color\": \"#2f82a1\", \"hover\": \"196687.0\"}}, \"iQM2EjFgUk/83dUXxYq3lA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 169611.0, \"color\": \"#9ee08f\", \"hover\": \"169611.0\"}}, \"uavpFtRH+63SmDObMUHmlA\": {\"metadata\": {\"community_id\": 478, \"customer_id\": 167339.0, \"color\": \"#21f558\", \"hover\": \"167339.0\"}}, \"wd8a5USSMAFt1nzWAND3lA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 163941.0, \"color\": \"#62fab8\", \"hover\": \"163941.0\"}}, \"qTBjKwL3Q0ouakCUEcv7lA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 102626.0, \"color\": \"#e0b23c\", \"hover\": \"102626.0\"}}, \"0/q+Y7rDgFo0pIuKyYUPlQ\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 162713.0, \"color\": \"#aae3e3\", \"hover\": \"162713.0\"}}, \"MVzuargAqRhEhH9ikjoTlQ\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 48252.0, \"color\": \"#65e08d\", \"hover\": \"48252.0\"}}, \"3Inzja40kbY1hPZTZY4WlQ\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 69072.0, \"color\": \"#b5d851\", \"hover\": \"69072.0\"}}, \"C7kYsxu3YlUXLJe+cxAXlQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 160349.0, \"color\": \"#d2ab67\", \"hover\": \"160349.0\"}}, \"g7BClnljHMe7t/6wyE8flQ\": {\"metadata\": {\"community_id\": 520, \"customer_id\": 70691.0, \"color\": \"#f81364\", \"hover\": \"70691.0\"}}, \"a5nwKdFepWlrJsQ5uDgklQ\": {\"metadata\": {\"community_id\": 521, \"customer_id\": 150690.0, \"color\": \"#86dfc8\", \"hover\": \"150690.0\"}}, \"gRn+/8gycwpXhkV24zExlQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 33567.0, \"color\": \"#1bd89a\", \"hover\": \"33567.0\"}}, \"difYUkvCfs1qtJHSw4xdlQ\": {\"metadata\": {\"community_id\": 509, \"customer_id\": 77834.0, \"color\": \"#b2fc98\", \"hover\": \"77834.0\"}}, \"H4uou4s2t0Bc4QGhTbWClQ\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 24650.0, \"color\": \"#dfd779\", \"hover\": \"24650.0\"}}, \"Ev9lGJvuC87K+6RDWUCSlQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 135908.0, \"color\": \"#45f210\", \"hover\": \"135908.0\"}}, \"uDOUHvwuMFbU5lxW8kemlQ\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 57084.0, \"color\": \"#72f75d\", \"hover\": \"57084.0\"}}, \"plg79dOordUluDMn0QerlQ\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 12119.0, \"color\": \"#404dcf\", \"hover\": \"12119.0\"}}, \"lu/KWGLuVxFjTOsFrAK1lQ\": {\"metadata\": {\"community_id\": 159, \"customer_id\": 145794.0, \"color\": \"#2073eb\", \"hover\": \"145794.0\"}}, \"wLHG6RNrCE68R009G9u3lQ\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 189708.0, \"color\": \"#d9480a\", \"hover\": \"189708.0\"}}, \"e1Y/y58FpDPgmAh5G8G4lQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 55272.0, \"color\": \"#272dca\", \"hover\": \"55272.0\"}}, \"aMtomuAEu+BPWSpp9f67lQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 59431.0, \"color\": \"#b3df71\", \"hover\": \"59431.0\"}}, \"BrKEzkZl+oeSpp1lEm/RlQ\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 121218.0, \"color\": \"#4de2c4\", \"hover\": \"121218.0\"}}, \"DhYeLFCCR/CLQlVcB+30lQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 110311.0, \"color\": \"#dcc694\", \"hover\": \"110311.0\"}}, \"RsEcyneOsOsiTwGvQLs8lg\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 85976.0, \"color\": \"#f091c1\", \"hover\": \"85976.0\"}}, \"70aYqyv9oeYGbgxhrjo+lg\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 16195.0, \"color\": \"#2a72e6\", \"hover\": \"16195.0\"}}, \"7/bDMg+CgSBsSBxSvS5Jlg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 53769.0, \"color\": \"#08cad9\", \"hover\": \"53769.0\"}}, \"ORrKkkolP4HTZZkv84pXlg\": {\"metadata\": {\"community_id\": 506, \"customer_id\": 115097.0, \"color\": \"#df2e9c\", \"hover\": \"115097.0\"}}, \"2RiLIE1K1TPlUCCANP1Ylg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 166048.0, \"color\": \"#45f210\", \"hover\": \"166048.0\"}}, \"pnzwd6zA7P0nwxXLzK5elg\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 187411.0, \"color\": \"#f790f0\", \"hover\": \"187411.0\"}}, \"9NyRQB1LYCsbPHrE6bFjlg\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 156928.0, \"color\": \"#50c2ef\", \"hover\": \"156928.0\"}}, \"FqlSDenR1ixjbu54Vutxlg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 29381.0, \"color\": \"#dfd779\", \"hover\": \"29381.0\"}}, \"bruKgrPMaRoxZXRCGPN7lg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 89534.0, \"color\": \"#c2fe3c\", \"hover\": \"89534.0\"}}, \"B1+BS78xBzICq4XtMwmzlg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 71200.0, \"color\": \"#f6a0ef\", \"hover\": \"71200.0\"}}, \"Pn48zoj9DvyN79bhDOnBlg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 151409.0, \"color\": \"#08cad9\", \"hover\": \"151409.0\"}}, \"XpcTNKSSMnAhHOy06+3Dlg\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 146601.0, \"color\": \"#c7de5b\", \"hover\": \"146601.0\"}}, \"skKOLxoTeRihqW43U/fRlg\": {\"metadata\": {\"community_id\": 522, \"customer_id\": 188390.0, \"color\": \"#78aed3\", \"hover\": \"188390.0\"}}, \"IMy6N7C+hCRMkf7TI+/alg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 39272.0, \"color\": \"#e0b23c\", \"hover\": \"39272.0\"}}, \"HTmlpp/Iumoh5z1ZeAr6lg\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 6700.0, \"color\": \"#185cd8\", \"hover\": \"6700.0\"}}, \"A4GDSAA4mHRobOibWak3lw\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 51550.0, \"color\": \"#25a9a6\", \"hover\": \"51550.0\"}}, \"/cpUGyXhspITs2LY9v5Vlw\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 82190.0, \"color\": \"#65e08d\", \"hover\": \"82190.0\"}}, \"eJr98/w3TNjFYYEosmJmlw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 59140.0, \"color\": \"#10d82f\", \"hover\": \"59140.0\"}}, \"Ye9kqudPVvs1pgQ+Rc9mlw\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 58620.0, \"color\": \"#10c118\", \"hover\": \"58620.0\"}}, \"PFQQFTwxo7gAyWxkxct3lw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 47248.0, \"color\": \"#a372d3\", \"hover\": \"47248.0\"}}, \"nOU0JofEhmOu14V1gJCDlw\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 25687.0, \"color\": \"#98d0f5\", \"hover\": \"25687.0\"}}, \"Mm96JWwrURGUG7NvDFmFlw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 40798.0, \"color\": \"#99b5fc\", \"hover\": \"40798.0\"}}, \"3AKM2uMCMBowR2F0SPaRlw\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 65665.0, \"color\": \"#c788df\", \"hover\": \"65665.0\"}}, \"wzAftnwgVrYbBviqd5/Nlw\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 51142.0, \"color\": \"#be821d\", \"hover\": \"51142.0\"}}, \"lAzBrk9QGzuamP+I91TWlw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 55607.0, \"color\": \"#10d82f\", \"hover\": \"55607.0\"}}, \"E5HA829CEYozUMuleqDXlw\": {\"metadata\": {\"community_id\": 523, \"customer_id\": 120985.0, \"color\": \"#f3b57f\", \"hover\": \"120985.0\"}}, \"e3WYn1OreehJ2jK6m8rnlw\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 169851.0, \"color\": \"#2575dd\", \"hover\": \"169851.0\"}}, \"6lApIV2MCrZkWFZZJf/rlw\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 123938.0, \"color\": \"#9aa931\", \"hover\": \"123938.0\"}}, \"s55XD/vCmr3qzY+v2f8CmA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 154237.0, \"color\": \"#ed1e1d\", \"hover\": \"154237.0\"}}, \"Rd6VoO4/XbQaKWB9PSUNmA\": {\"metadata\": {\"community_id\": 524, \"customer_id\": 112755.0, \"color\": \"#fc5d1f\", \"hover\": \"112755.0\"}}, \"fOV5Br0GYDzZFRxI+gQRmA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 198158.0, \"color\": \"#a372d3\", \"hover\": \"198158.0\"}}, \"TxvBO7S9xqj6+BYalhASmA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 142321.0, \"color\": \"#99b5fc\", \"hover\": \"142321.0\"}}, \"3Mmtn4en3D2UNWbeME8UmA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 48303.0, \"color\": \"#27b4b4\", \"hover\": \"48303.0\"}}, \"uEQS6OisQD2R3qCxp/0amA\": {\"metadata\": {\"community_id\": 525, \"customer_id\": 152151.0, \"color\": \"#fd48d2\", \"hover\": \"152151.0\"}}, \"I2xubWo3ds1VoHwxbTE8mA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 90161.0, \"color\": \"#99b5fc\", \"hover\": \"90161.0\"}}, \"FbNmAv8ufmo03YB7SphOmA\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 129128.0, \"color\": \"#f9855b\", \"hover\": \"129128.0\"}}, \"7464ADYEqh2JXvYPcQ9YmA\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 109205.0, \"color\": \"#11fc2e\", \"hover\": \"109205.0\"}}, \"4sJOO8Vxy+D5M1iVe7lYmA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 191086.0, \"color\": \"#d2ab67\", \"hover\": \"191086.0\"}}, \"ZZkUAgtwxPW4ue5corBtmA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 83899.0, \"color\": \"#b58c2b\", \"hover\": \"83899.0\"}}, \"eUllzuIfKGJ2N2NV6xyHmA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 91966.0, \"color\": \"#32bc93\", \"hover\": \"91966.0\"}}, \"dOUE10943msMhph80cKHmA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 52264.0, \"color\": \"#a372d3\", \"hover\": \"52264.0\"}}, \"Z9dCRzGkhMPsUVW2ZxiKmA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 198779.0, \"color\": \"#6bdba1\", \"hover\": \"198779.0\"}}, \"2tErsV7PrIgWpryU+hSNmA\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 42.0, \"color\": \"#5ccd4e\", \"hover\": \"42.0\"}}, \"0qB9VvsBljzCFo868ROkmA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 122970.0, \"color\": \"#a372d3\", \"hover\": \"122970.0\"}}, \"r+Can401isBVNhLUfNf6mA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 122525.0, \"color\": \"#62fab8\", \"hover\": \"122525.0\"}}, \"ciq0t3t4csHVxzE/sPowmQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 141710.0, \"color\": \"#f8a36c\", \"hover\": \"141710.0\"}}, \"0njIZzPiH4ZQ3yQroYg0mQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 60083.0, \"color\": \"#e5e372\", \"hover\": \"60083.0\"}}, \"/hg11VBlQNdhRdNquj44mQ\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 169954.0, \"color\": \"#9c50d8\", \"hover\": \"169954.0\"}}, \"026x+hkDchtogP27DW1BmQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 4425.0, \"color\": \"#c12abd\", \"hover\": \"4425.0\"}}, \"kHs2Gj+5NnOYE8qC1kZImQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 37202.0, \"color\": \"#45f210\", \"hover\": \"37202.0\"}}, \"HZQlAg8cz/q0rps2qUxTmQ\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 134627.0, \"color\": \"#27b4b4\", \"hover\": \"134627.0\"}}, \"eXyRv8MXYpLkGNQSuZBjmQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 198659.0, \"color\": \"#9a62ce\", \"hover\": \"198659.0\"}}, \"foEOhXqE/MBXNZlfAAZmmQ\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 55109.0, \"color\": \"#7a01d9\", \"hover\": \"55109.0\"}}, \"cbBd9N1KLhKdXGpN8o10mQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 105931.0, \"color\": \"#d8dd94\", \"hover\": \"105931.0\"}}, \"UsfNfeGSTAvJn67KIlF1mQ\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 14248.0, \"color\": \"#d820bf\", \"hover\": \"14248.0\"}}, \"/VK6UvapYnz8anaV+QeKmQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 2201.0, \"color\": \"#1bd89a\", \"hover\": \"2201.0\"}}, \"OJiYUyGs6B5DAq7vTuuOmQ\": {\"metadata\": {\"community_id\": 32, \"customer_id\": 149172.0, \"color\": \"#8c29d5\", \"hover\": \"149172.0\"}}, \"O1RVC+p7aPV8bOsQ6e7fmQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 13786.0, \"color\": \"#99ef99\", \"hover\": \"13786.0\"}}, \"GogN3PGHqIxQPq1ggN//mQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 104923.0, \"color\": \"#f6a0ef\", \"hover\": \"104923.0\"}}, \"qZLjmxMAXLWRVlLqWDUUmg\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 45024.0, \"color\": \"#f0f3a3\", \"hover\": \"45024.0\"}}, \"1RXEjZUbzQlv/sF+7lcjmg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 192586.0, \"color\": \"#78e968\", \"hover\": \"192586.0\"}}, \"0itFxQ86XIpBvYaqkb0rmg\": {\"metadata\": {\"community_id\": 518, \"customer_id\": 19033.0, \"color\": \"#52a8f5\", \"hover\": \"19033.0\"}}, \"J0Y7X8OuVoDvRFkvRDo+mg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 98122.0, \"color\": \"#c2fe3c\", \"hover\": \"98122.0\"}}, \"+WsOH4nJKjn2CB/iEjBAmg\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 167761.0, \"color\": \"#309f40\", \"hover\": \"167761.0\"}}, \"/VSjNgh6mEKfWVR2yolAmg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 167645.0, \"color\": \"#1bd89a\", \"hover\": \"167645.0\"}}, \"WsADvQUexHH226piNwJkmg\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 85100.0, \"color\": \"#d9480a\", \"hover\": \"85100.0\"}}, \"vLiqq6XAkt5wPpqWnOCCmg\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 33422.0, \"color\": \"#d53cea\", \"hover\": \"33422.0\"}}, \"N71NdD65ClhwHhQI+8WYmg\": {\"metadata\": {\"community_id\": 526, \"customer_id\": 117480.0, \"color\": \"#e8f763\", \"hover\": \"117480.0\"}}, \"AuPs8xIujNSsWmRixEWlmg\": {\"metadata\": {\"community_id\": 527, \"customer_id\": 64986.0, \"color\": \"#94faa2\", \"hover\": \"64986.0\"}}, \"V0X2HIuhS0Ps7WOiYcGtmg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 29174.0, \"color\": \"#f8a36c\", \"hover\": \"29174.0\"}}, \"kWrxTjv+GDZWFiLdsajHmg\": {\"metadata\": {\"community_id\": 395, \"customer_id\": 11980.0, \"color\": \"#1dc6bb\", \"hover\": \"11980.0\"}}, \"raoyK7i9VADXHBEd5q/Img\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 121683.0, \"color\": \"#83aedd\", \"hover\": \"121683.0\"}}, \"bVoAGD67kCzsNOh18bHUmg\": {\"metadata\": {\"community_id\": 341, \"customer_id\": 50484.0, \"color\": \"#80f0ec\", \"hover\": \"50484.0\"}}, \"NQycxBqIh2cAluZ/Nfbimg\": {\"metadata\": {\"community_id\": 52, \"customer_id\": 54788.0, \"color\": \"#abecde\", \"hover\": \"54788.0\"}}, \"t1GlVhkS7JUA74ZRrn7omg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 32847.0, \"color\": \"#45f210\", \"hover\": \"32847.0\"}}, \"A14BetnIopZaaGAnjtv9mg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 150271.0, \"color\": \"#08cad9\", \"hover\": \"150271.0\"}}, \"+hre7gCyki7DbDJpF54Emw\": {\"metadata\": {\"community_id\": 224, \"customer_id\": 89968.0, \"color\": \"#5ae3c6\", \"hover\": \"89968.0\"}}, \"5AKiYlk9S8R3PhStCTMGmw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 75706.0, \"color\": \"#99ef99\", \"hover\": \"75706.0\"}}, \"n+6GBSL9r88/k1XUx+wJmw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 44980.0, \"color\": \"#e493a3\", \"hover\": \"44980.0\"}}, \"IUCSc8JrpOX9siFlq4kTmw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 84361.0, \"color\": \"#b3df71\", \"hover\": \"84361.0\"}}, \"1xvTFcy1sizvpJ70mbM5mw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 90190.0, \"color\": \"#272dca\", \"hover\": \"90190.0\"}}, \"6ft3Z993zOtMnqoGYxFImw\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 60572.0, \"color\": \"#b9e04a\", \"hover\": \"60572.0\"}}, \"E/fvpVf6HaKe2VQD8N5Mmw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 65855.0, \"color\": \"#d2ab67\", \"hover\": \"65855.0\"}}, \"0pM8Ak4i3j5S+FA0NY5Xmw\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 142795.0, \"color\": \"#93c51c\", \"hover\": \"142795.0\"}}, \"orCV8VMs0nLuHGGOymdYmw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 27901.0, \"color\": \"#4bdb47\", \"hover\": \"27901.0\"}}, \"NtNWeCyveb2+3kcn+atfmw\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 155152.0, \"color\": \"#a60aef\", \"hover\": \"155152.0\"}}, \"cH7hwoKgMaOJsY5D3kVnmw\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 193080.0, \"color\": \"#a7d52c\", \"hover\": \"193080.0\"}}, \"ULTEbZ9xWlg84CiPGN5+mw\": {\"metadata\": {\"community_id\": 522, \"customer_id\": 193034.0, \"color\": \"#78aed3\", \"hover\": \"193034.0\"}}, \"oLBEewI2+TtOi/P+zFONmw\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 47132.0, \"color\": \"#a6c54d\", \"hover\": \"47132.0\"}}, \"Tj1QpznbGlgcl36CONWxmw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 185728.0, \"color\": \"#78e968\", \"hover\": \"185728.0\"}}, \"IsbmmrPvHfOSoTAvdVW3mw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 142447.0, \"color\": \"#f6a0ef\", \"hover\": \"142447.0\"}}, \"hWotMeINwSMsuStZDvr2mw\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 131149.0, \"color\": \"#7caad5\", \"hover\": \"131149.0\"}}, \"Ifsn31I/BxOTLopfp+ELnA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 11987.0, \"color\": \"#b70fc0\", \"hover\": \"11987.0\"}}, \"KvjMCetZz2V1Zmw8U58vnA\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 181810.0, \"color\": \"#c32841\", \"hover\": \"181810.0\"}}, \"t7Lm24o8Qqbykt2A4VlQnA\": {\"metadata\": {\"community_id\": 440, \"customer_id\": 194987.0, \"color\": \"#d71edf\", \"hover\": \"194987.0\"}}, \"HASgCJE/Y8hAt4Al2gtgnA\": {\"metadata\": {\"community_id\": 516, \"customer_id\": 13093.0, \"color\": \"#86e1d3\", \"hover\": \"13093.0\"}}, \"MuG/pOvxWpq41fkfo/RhnA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 194316.0, \"color\": \"#c12abd\", \"hover\": \"194316.0\"}}, \"Snf67yCbEURPNP44X86EnA\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 197958.0, \"color\": \"#3a92b5\", \"hover\": \"197958.0\"}}, \"HHkXkBT/54litQTh/BmLnA\": {\"metadata\": {\"community_id\": 528, \"customer_id\": 105803.0, \"color\": \"#b7f451\", \"hover\": \"105803.0\"}}, \"wUALAJQSrjDS74qqSXWanA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 185477.0, \"color\": \"#31ab2f\", \"hover\": \"185477.0\"}}, \"MFadgRNeoJXgS6129bqinA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 6665.0, \"color\": \"#eda379\", \"hover\": \"6665.0\"}}, \"ngOZ4hkbAkeH9Y4DYwuonA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 99856.0, \"color\": \"#d2ab67\", \"hover\": \"99856.0\"}}, \"Q4EZp1LH5wD+RGBFB5XKnA\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 119165.0, \"color\": \"#b129ec\", \"hover\": \"119165.0\"}}, \"6Yh6K3qHkI0KgShV8S7RnA\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 162928.0, \"color\": \"#2575dd\", \"hover\": \"162928.0\"}}, \"PTV3NYO5Go72N57MchX0nA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 92268.0, \"color\": \"#b3df71\", \"hover\": \"92268.0\"}}, \"wXF+o2ujVwvWa8meOksFnQ\": {\"metadata\": {\"community_id\": 391, \"customer_id\": 146458.0, \"color\": \"#963fd0\", \"hover\": \"146458.0\"}}, \"qzKEcvwdglP92ELKCY0LnQ\": {\"metadata\": {\"community_id\": 529, \"customer_id\": 111621.0, \"color\": \"#e46f45\", \"hover\": \"111621.0\"}}, \"C1sFWu3crVsj+1K+/+YOnQ\": {\"metadata\": {\"community_id\": 490, \"customer_id\": 76600.0, \"color\": \"#f59cb2\", \"hover\": \"76600.0\"}}, \"Hu6/TvmZK8UiWeZ2sq0rnQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 135850.0, \"color\": \"#33b9bc\", \"hover\": \"135850.0\"}}, \"EZCqsbBxog066gDQ9no/nQ\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 36285.0, \"color\": \"#abf295\", \"hover\": \"36285.0\"}}, \"VYKTf58Y/3PKyKyODXVDnQ\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 130037.0, \"color\": \"#08dbec\", \"hover\": \"130037.0\"}}, \"EOUXKxeOsabsew6mhTtFnQ\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 157778.0, \"color\": \"#a32d58\", \"hover\": \"157778.0\"}}, \"mEZ6ATXL3dtFAQpxVo1GnQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 160757.0, \"color\": \"#d2ab67\", \"hover\": \"160757.0\"}}, \"WKrQA0XiJ3QhQ37m9UxbnQ\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 29944.0, \"color\": \"#2f82a1\", \"hover\": \"29944.0\"}}, \"LJByc82blf4I6Ekd8kx7nQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 184133.0, \"color\": \"#31ab2f\", \"hover\": \"184133.0\"}}, \"MHef1Rs4455vMbiW11h8nQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 69044.0, \"color\": \"#81a8e3\", \"hover\": \"69044.0\"}}, \"CZUI2rMtgbqzvrBv4i+mnQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 186198.0, \"color\": \"#81a8e3\", \"hover\": \"186198.0\"}}, \"7b2RfDpW6ux8JFAhGs6unQ\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 172150.0, \"color\": \"#05b7da\", \"hover\": \"172150.0\"}}, \"xdPBng9vNQkVKMcV3dLUnQ\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 197724.0, \"color\": \"#b621e2\", \"hover\": \"197724.0\"}}, \"riYzk3GZZhFYefWPcH7rnQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 122732.0, \"color\": \"#fe58fe\", \"hover\": \"122732.0\"}}, \"mRbA34kTgrTVR5ssP2vtnQ\": {\"metadata\": {\"community_id\": 347, \"customer_id\": 139773.0, \"color\": \"#49ec34\", \"hover\": \"139773.0\"}}, \"nunbAapYEUBfVO+HWtr0nQ\": {\"metadata\": {\"community_id\": 462, \"customer_id\": 111770.0, \"color\": \"#e4afda\", \"hover\": \"111770.0\"}}, \"NI1i9raj16VxnRqrILX1nQ\": {\"metadata\": {\"community_id\": 310, \"customer_id\": 81842.0, \"color\": \"#89f08b\", \"hover\": \"81842.0\"}}, \"LRlDXzrTF6Ri+zf9byUDng\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 146371.0, \"color\": \"#99ef99\", \"hover\": \"146371.0\"}}, \"81f+4meCZgFFZXrAqsoIng\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 180757.0, \"color\": \"#d8dd94\", \"hover\": \"180757.0\"}}, \"JJueDA4IKbhbPiTTsHAMng\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 188313.0, \"color\": \"#7a80f3\", \"hover\": \"188313.0\"}}, \"fE6HcnXHKbr/hLbDIc0Yng\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 69588.0, \"color\": \"#45f210\", \"hover\": \"69588.0\"}}, \"lPFtf1Q/ImK+Yr1CW143ng\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 85165.0, \"color\": \"#f3585b\", \"hover\": \"85165.0\"}}, \"G5ipCSZyCiz77d8Gi5A/ng\": {\"metadata\": {\"community_id\": 428, \"customer_id\": 48117.0, \"color\": \"#f77a0a\", \"hover\": \"48117.0\"}}, \"SQ42EOxBogb4ZYJ+L6pPng\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 55750.0, \"color\": \"#24d0d9\", \"hover\": \"55750.0\"}}, \"/vCuxHcLbkZ1JpcEBDRrng\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 159909.0, \"color\": \"#32bc93\", \"hover\": \"159909.0\"}}, \"owASgHoCXg8ZWEml7Td3ng\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 42836.0, \"color\": \"#2f55bf\", \"hover\": \"42836.0\"}}, \"BQWNiwP0OY809P39BOuOng\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 50247.0, \"color\": \"#aa28fe\", \"hover\": \"50247.0\"}}, \"+OvKwxEMof0l0CAhF/aWng\": {\"metadata\": {\"community_id\": 530, \"customer_id\": 3902.0, \"color\": \"#c2b03b\", \"hover\": \"3902.0\"}}, \"9Qxb7XcFglFwNdMpk/iung\": {\"metadata\": {\"community_id\": 487, \"customer_id\": 16900.0, \"color\": \"#df6580\", \"hover\": \"16900.0\"}}, \"txTXlRobNKgppIbcfQ7eng\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 175225.0, \"color\": \"#d46da8\", \"hover\": \"175225.0\"}}, \"JwgF3TNIvzasqJg5v/oRnw\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 108349.0, \"color\": \"#6bdba1\", \"hover\": \"108349.0\"}}, \"ds30CGNRVqJEmviGG5Mqnw\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 184582.0, \"color\": \"#fc580c\", \"hover\": \"184582.0\"}}, \"n6Jg/gVSETfLFTXNshownw\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 167121.0, \"color\": \"#0d14dc\", \"hover\": \"167121.0\"}}, \"B/w7bWKqIekFMsM0huAwnw\": {\"metadata\": {\"community_id\": 517, \"customer_id\": 167523.0, \"color\": \"#9ee2b6\", \"hover\": \"167523.0\"}}, \"3Jk8W0OQRDbN2UwPVWg3nw\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 84533.0, \"color\": \"#1bc070\", \"hover\": \"84533.0\"}}, \"pYz+Bh5cLgD4u37ISthJnw\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 87453.0, \"color\": \"#b21c5c\", \"hover\": \"87453.0\"}}, \"7njeFt4dGgGvsxh33HpOnw\": {\"metadata\": {\"community_id\": 283, \"customer_id\": 156429.0, \"color\": \"#f696af\", \"hover\": \"156429.0\"}}, \"+v4QPdKqrYzi44heM0Bfnw\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 136058.0, \"color\": \"#5970d7\", \"hover\": \"136058.0\"}}, \"vU3OpI4mB3qzER4N/RBhnw\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 103715.0, \"color\": \"#a7e29b\", \"hover\": \"103715.0\"}}, \"z+9dH9mOBGtV12klfo+Inw\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 151207.0, \"color\": \"#f3979c\", \"hover\": \"151207.0\"}}, \"Kah82w+S/u4725mVZgjAnw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 16146.0, \"color\": \"#9a62ce\", \"hover\": \"16146.0\"}}, \"xS3sElVAWTp0wkMv017dnw\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 51737.0, \"color\": \"#e5e372\", \"hover\": \"51737.0\"}}, \"71gwi7Mo8rnVUTFfwjLlnw\": {\"metadata\": {\"community_id\": 255, \"customer_id\": 175252.0, \"color\": \"#31fb16\", \"hover\": \"175252.0\"}}, \"sBHxxv8TDcRka7cQD0Trnw\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 147826.0, \"color\": \"#d80bad\", \"hover\": \"147826.0\"}}, \"pfw6cFOu3J2geMdfjUn5nw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 157108.0, \"color\": \"#272dca\", \"hover\": \"157108.0\"}}, \"hur+DI1LU7t3WWr94OogoA\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 165367.0, \"color\": \"#f091c1\", \"hover\": \"165367.0\"}}, \"tNPQOgx1QK26mgnI8Z8woA\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 118551.0, \"color\": \"#a7e29b\", \"hover\": \"118551.0\"}}, \"rZGX7tiTLIup6b1UOtdDoA\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 187483.0, \"color\": \"#14ace5\", \"hover\": \"187483.0\"}}, \"TX+5JEGDptCeafACyExaoA\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 31894.0, \"color\": \"#32fdb8\", \"hover\": \"31894.0\"}}, \"NB36u7yBXPdWuZqt6xVvoA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 153979.0, \"color\": \"#b3df71\", \"hover\": \"153979.0\"}}, \"hYb/rNnUevsWhOUyS1R9oA\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 42201.0, \"color\": \"#68c1d4\", \"hover\": \"42201.0\"}}, \"suNMjRNdU2uGcnzGvZaFoA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 158538.0, \"color\": \"#272dca\", \"hover\": \"158538.0\"}}, \"JtLiGrVMyc63d3hcU/qYoA\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 89899.0, \"color\": \"#671efa\", \"hover\": \"89899.0\"}}, \"WQX69Rb8P7YI2vlnX1KzoA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 143849.0, \"color\": \"#33b9bc\", \"hover\": \"143849.0\"}}, \"Nl5ZJGG1euH+Lbec7t3RoA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 124249.0, \"color\": \"#9ee08f\", \"hover\": \"124249.0\"}}, \"1CYNn0c/dSMW7awW+ln8oA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 53685.0, \"color\": \"#33b9bc\", \"hover\": \"53685.0\"}}, \"JHN1RRKwapnUWKCl3tIioQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 100819.0, \"color\": \"#5dedcd\", \"hover\": \"100819.0\"}}, \"uorSEJpZYH5T0K4M6kopoQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 17729.0, \"color\": \"#e5e372\", \"hover\": \"17729.0\"}}, \"TsndRw82xTWIzr8YhLs7oQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 76356.0, \"color\": \"#99ef99\", \"hover\": \"76356.0\"}}, \"HgsIdygAhnuFuhgyxTRYoQ\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 134083.0, \"color\": \"#65e08d\", \"hover\": \"134083.0\"}}, \"1WjfVSCScOY81ocVLG5loQ\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 184376.0, \"color\": \"#31e037\", \"hover\": \"184376.0\"}}, \"FgYx9haFz7m/jpwNa8RpoQ\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 71021.0, \"color\": \"#7caad5\", \"hover\": \"71021.0\"}}, \"LTaDkNz2mZP7yiaR9otroQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 142464.0, \"color\": \"#9ee08f\", \"hover\": \"142464.0\"}}, \"gg8gSKkaDuBXakmAggtwoQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 61575.0, \"color\": \"#c12abd\", \"hover\": \"61575.0\"}}, \"yre3anFHnU5uIwIzFZBxoQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 68211.0, \"color\": \"#62fab8\", \"hover\": \"68211.0\"}}, \"U/fhW6N6mo7uVhkMHY58oQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 130990.0, \"color\": \"#272dca\", \"hover\": \"130990.0\"}}, \"BZgWCBNlAJw0MgydF4igoQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 157704.0, \"color\": \"#c12abd\", \"hover\": \"157704.0\"}}, \"NkzWZRIpTwu3DUJFtrOqoQ\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 181524.0, \"color\": \"#92e5be\", \"hover\": \"181524.0\"}}, \"jz9J9As81u6mk8QhToO4oQ\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 145173.0, \"color\": \"#3c74fc\", \"hover\": \"145173.0\"}}, \"hy3RRSsumWzxUjk/5iTCoQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 350.0, \"color\": \"#33b9bc\", \"hover\": \"350.0\"}}, \"jx/g1L2CPlipWbkZRdDfoQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 109273.0, \"color\": \"#4bdb47\", \"hover\": \"109273.0\"}}, \"AC76g5K8wAxvtnuruj3moQ\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 166423.0, \"color\": \"#96fa14\", \"hover\": \"166423.0\"}}, \"Xx2MKu3v/ca2MdNY+roAog\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 181718.0, \"color\": \"#2795b1\", \"hover\": \"181718.0\"}}, \"p3DWdLyxBb2M4TQNRHwLog\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 106507.0, \"color\": \"#65e08d\", \"hover\": \"106507.0\"}}, \"Rz7xx0+t9Pg49kUuRAUxog\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 53309.0, \"color\": \"#e5a6ba\", \"hover\": \"53309.0\"}}, \"PXDoJ1dCnYjkw81cC+M2og\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 41252.0, \"color\": \"#404dcf\", \"hover\": \"41252.0\"}}, \"JC9CR/h5Zd8Lo5hza/4/og\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 68096.0, \"color\": \"#7aefcb\", \"hover\": \"68096.0\"}}, \"QNaUmTD9XiBvuQRyF+hEog\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 44194.0, \"color\": \"#272dca\", \"hover\": \"44194.0\"}}, \"CgaMJFHu5XcA/PL4JD5Fog\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 100510.0, \"color\": \"#5dca06\", \"hover\": \"100510.0\"}}, \"c9uAkbAxw0Nggb2/V2aNog\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 157825.0, \"color\": \"#fcce99\", \"hover\": \"157825.0\"}}, \"ZzCo4CVfdpjU5mTaFQCZog\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 147429.0, \"color\": \"#99ef99\", \"hover\": \"147429.0\"}}, \"XjnqMtdhe/1AFJoQ5rqZog\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 20583.0, \"color\": \"#99b5fc\", \"hover\": \"20583.0\"}}, \"o5yIaKnpLciGpB4YpDSrog\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 68967.0, \"color\": \"#185cd8\", \"hover\": \"68967.0\"}}, \"Ac+QyhaiwoCWtwDiF8m0og\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 194082.0, \"color\": \"#c12abd\", \"hover\": \"194082.0\"}}, \"EA8a4UBy2yScgW0M741Now\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 118514.0, \"color\": \"#d16060\", \"hover\": \"118514.0\"}}, \"HxJ47i5/R/AOuO045E5Uow\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 29555.0, \"color\": \"#c12abd\", \"hover\": \"29555.0\"}}, \"u0hqitzAeMaRXHE8QpRhow\": {\"metadata\": {\"community_id\": 65, \"customer_id\": 148607.0, \"color\": \"#95e17f\", \"hover\": \"148607.0\"}}, \"IvZE7F6iOLbqCW9HzCN7ow\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 193243.0, \"color\": \"#185cd8\", \"hover\": \"193243.0\"}}, \"TLca0dGaohU0qFvxCq6Dow\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 24076.0, \"color\": \"#d8c96d\", \"hover\": \"24076.0\"}}, \"bp/cH5b+nBTbc8NY0tOcow\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 166037.0, \"color\": \"#c12abd\", \"hover\": \"166037.0\"}}, \"Io8slHVhx1bwsIhDh76qow\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 30701.0, \"color\": \"#2795b1\", \"hover\": \"30701.0\"}}, \"EjXIpdCPF+ANqs8VdEvHow\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 89095.0, \"color\": \"#b1afe7\", \"hover\": \"89095.0\"}}, \"pL6nc0UXPCXIC0pq2oPHow\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 87189.0, \"color\": \"#b58c2b\", \"hover\": \"87189.0\"}}, \"ywsnSvZ81TfCojhlHXfNow\": {\"metadata\": {\"community_id\": 506, \"customer_id\": 104208.0, \"color\": \"#df2e9c\", \"hover\": \"104208.0\"}}, \"EPqSyzWGXSd1L8fp3h/Uow\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 93903.0, \"color\": \"#6bdba1\", \"hover\": \"93903.0\"}}, \"/CMsaEuGu3ULvTJxZ5L0ow\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 142703.0, \"color\": \"#b3df71\", \"hover\": \"142703.0\"}}, \"hauBoMkrAw7jNahaRNgApA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 56520.0, \"color\": \"#c12abd\", \"hover\": \"56520.0\"}}, \"Jwoyvq6WKnel/GQ7emAxpA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 32556.0, \"color\": \"#33b9bc\", \"hover\": \"32556.0\"}}, \"dFfhM/U6nLNgdH6gFCxCpA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 98825.0, \"color\": \"#c12abd\", \"hover\": \"98825.0\"}}, \"IrD+kWAzYPM1bqM4hRxKpA\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 12278.0, \"color\": \"#8ceceb\", \"hover\": \"12278.0\"}}, \"Wwxtb8xu/ctdJoe3JAFYpA\": {\"metadata\": {\"community_id\": 393, \"customer_id\": 175588.0, \"color\": \"#59d262\", \"hover\": \"175588.0\"}}, \"QZ213ed+FC+L24Iot9ZepA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 26764.0, \"color\": \"#62fab8\", \"hover\": \"26764.0\"}}, \"qlJAbL1oAT+FwtNvVKFspA\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 157153.0, \"color\": \"#c32841\", \"hover\": \"157153.0\"}}, \"Ol/sPUF0PGOJzBdNSDZypA\": {\"metadata\": {\"community_id\": 520, \"customer_id\": 51592.0, \"color\": \"#f81364\", \"hover\": \"51592.0\"}}, \"scXBn+tW1O3c26UR/y+MpA\": {\"metadata\": {\"community_id\": 411, \"customer_id\": 9651.0, \"color\": \"#97fdf0\", \"hover\": \"9651.0\"}}, \"F4RdrvgcVitZblPtUleopA\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 12742.0, \"color\": \"#aad6ea\", \"hover\": \"12742.0\"}}, \"V6ERLfamkqdKjMJZjCzbpA\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 123644.0, \"color\": \"#10c118\", \"hover\": \"123644.0\"}}, \"cq4YPHqoBPScATaVsSLepA\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 130609.0, \"color\": \"#e5e372\", \"hover\": \"130609.0\"}}, \"Rjs/zx9VNy2E4O4zgmDipA\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 91371.0, \"color\": \"#4bdb47\", \"hover\": \"91371.0\"}}, \"NEchXFq2tu9tS/CqClXlpA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 139356.0, \"color\": \"#b3df71\", \"hover\": \"139356.0\"}}, \"/mnxJbBXFRoJm1t8b+jupA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 89695.0, \"color\": \"#6bdba1\", \"hover\": \"89695.0\"}}, \"2kIv0pAaPg+lCtT2KEMNpQ\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 354.0, \"color\": \"#92e5be\", \"hover\": \"354.0\"}}, \"1qh/9xi047BN/ZyQnxclpQ\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 35786.0, \"color\": \"#4de2c4\", \"hover\": \"35786.0\"}}, \"TE99G0bOzaXtmR4Giu5BpQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 146988.0, \"color\": \"#7eddd4\", \"hover\": \"146988.0\"}}, \"9GK18/slEWXsvIbLQoRFpQ\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 41782.0, \"color\": \"#08cad9\", \"hover\": \"41782.0\"}}, \"/lPcRHuF2uhTIGgw2+RMpQ\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 6003.0, \"color\": \"#cb84ef\", \"hover\": \"6003.0\"}}, \"gU019BfAhgOxjJPgknBZpQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 43283.0, \"color\": \"#62fab8\", \"hover\": \"43283.0\"}}, \"Iat6FJq/KuV7fq2K9pp+pQ\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 71172.0, \"color\": \"#8de1ae\", \"hover\": \"71172.0\"}}, \"7Zitss1YyKE3+SZddwmmpQ\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 13883.0, \"color\": \"#185cd8\", \"hover\": \"13883.0\"}}, \"v0tsis6xbkZzzbvFeAXBpQ\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 18766.0, \"color\": \"#5831d3\", \"hover\": \"18766.0\"}}, \"lBfTM/Eoboj+//nPf9zJpQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 48649.0, \"color\": \"#32bc93\", \"hover\": \"48649.0\"}}, \"S9GxuuDfsxmez0fF6ZXspQ\": {\"metadata\": {\"community_id\": 531, \"customer_id\": 125823.0, \"color\": \"#4fa7d9\", \"hover\": \"125823.0\"}}, \"C7fozaTI9722tioX0G/1pQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 109801.0, \"color\": \"#eba59b\", \"hover\": \"109801.0\"}}, \"O2g6a2KDuS1JDS3sgw8Rpg\": {\"metadata\": {\"community_id\": 532, \"customer_id\": 146077.0, \"color\": \"#9beda9\", \"hover\": \"146077.0\"}}, \"UqUz0DfWRXLEeSZqgAESpg\": {\"metadata\": {\"community_id\": 520, \"customer_id\": 5134.0, \"color\": \"#f81364\", \"hover\": \"5134.0\"}}, \"YiYxSGimBFYfI1PSZXEXpg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 82714.0, \"color\": \"#99b5fc\", \"hover\": \"82714.0\"}}, \"3CeBf9rBRUJJEl8QTxljpg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 186821.0, \"color\": \"#404dcf\", \"hover\": \"186821.0\"}}, \"cVxbSsxe5G7FPFo48Ed3pg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 67692.0, \"color\": \"#62fab8\", \"hover\": \"67692.0\"}}, \"UH5IsiL9uFI65JlQVZqCpg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 105659.0, \"color\": \"#62fab8\", \"hover\": \"105659.0\"}}, \"v+ziDzvyBQV1LUNcBLWIpg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 91644.0, \"color\": \"#10d82f\", \"hover\": \"91644.0\"}}, \"gaZmAfZSztu7UH4Ebeydpg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 150984.0, \"color\": \"#99b5fc\", \"hover\": \"150984.0\"}}, \"EjF8fainP19/QDcGbaCfpg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 64452.0, \"color\": \"#10d82f\", \"hover\": \"64452.0\"}}, \"j2Yua3a567JQqNUafYalpg\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 86227.0, \"color\": \"#e2d385\", \"hover\": \"86227.0\"}}, \"cVjQboYulTlIt7PXc5u7pg\": {\"metadata\": {\"community_id\": 255, \"customer_id\": 161816.0, \"color\": \"#31fb16\", \"hover\": \"161816.0\"}}, \"TtIAgvnQmh/5T/BJWJrIpg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 183048.0, \"color\": \"#ae692e\", \"hover\": \"183048.0\"}}, \"kUSjYI/KovDOP2WNmP3Ppg\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 112958.0, \"color\": \"#5ccd4e\", \"hover\": \"112958.0\"}}, \"A19d8KuXAfS9rBJ1oUTVpg\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 147571.0, \"color\": \"#974bf4\", \"hover\": \"147571.0\"}}, \"tK2U2fHkt+0EQze0I6bypg\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 39291.0, \"color\": \"#f790f0\", \"hover\": \"39291.0\"}}, \"OkpZWWmaKw6a1Opzusv4pg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 37975.0, \"color\": \"#99ef99\", \"hover\": \"37975.0\"}}, \"ZjABoGhX7FZn8b7BhsAApw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 59840.0, \"color\": \"#272dca\", \"hover\": \"59840.0\"}}, \"yxl4OOh3O2731r1L3Okxpw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 123975.0, \"color\": \"#e493a3\", \"hover\": \"123975.0\"}}, \"lvHT9cqSms7vkDUQasI/pw\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 124624.0, \"color\": \"#29a6ef\", \"hover\": \"124624.0\"}}, \"vK+M4+nZPjX8OiBYzftzpw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 62393.0, \"color\": \"#ed1e1d\", \"hover\": \"62393.0\"}}, \"Q67ZHpSIqakfoFzSXXiTpw\": {\"metadata\": {\"community_id\": 501, \"customer_id\": 147512.0, \"color\": \"#9c31c8\", \"hover\": \"147512.0\"}}, \"a00EzNZRMAgZFXLOFn2jpw\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 143818.0, \"color\": \"#e1aa5b\", \"hover\": \"143818.0\"}}, \"60YEmoj201+d8wCne+DOpw\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 193734.0, \"color\": \"#fcce99\", \"hover\": \"193734.0\"}}, \"mcdYiG6tbhQYd9JW+Bfqpw\": {\"metadata\": {\"community_id\": 233, \"customer_id\": 69115.0, \"color\": \"#3ec8e7\", \"hover\": \"69115.0\"}}, \"k/Jdwpp3Umlr6sbzTbLtpw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 175747.0, \"color\": \"#10d82f\", \"hover\": \"175747.0\"}}, \"g40CLRrS7h0f2KDwtQT/pw\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 18819.0, \"color\": \"#f155a7\", \"hover\": \"18819.0\"}}, \"z1X5qAdMM3gOJSTmzr4HqA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 70990.0, \"color\": \"#7a80f3\", \"hover\": \"70990.0\"}}, \"NyPKUTLm1jwUANNoIQoIqA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 128908.0, \"color\": \"#32bc93\", \"hover\": \"128908.0\"}}, \"6sR9fgv8OAB5rOrZEqkQqA\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 88740.0, \"color\": \"#7d28ad\", \"hover\": \"88740.0\"}}, \"lfvE2dJVuc+1AoU2qJcYqA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 15538.0, \"color\": \"#d16060\", \"hover\": \"15538.0\"}}, \"2xWzE0Ep6ErJ3OdsXO9HqA\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 38301.0, \"color\": \"#33aac6\", \"hover\": \"38301.0\"}}, \"uczLdKTFHKiIVXA00xpOqA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 51424.0, \"color\": \"#b58c2b\", \"hover\": \"51424.0\"}}, \"1IsjuWLfsWa9UTyKGAheqA\": {\"metadata\": {\"community_id\": 290, \"customer_id\": 66366.0, \"color\": \"#80dea8\", \"hover\": \"66366.0\"}}, \"tDEpAM/I1tgxpqK7PolgqA\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 154718.0, \"color\": \"#c093fc\", \"hover\": \"154718.0\"}}, \"JFsTmh4xEffCA34Bwl9sqA\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 82846.0, \"color\": \"#dfb962\", \"hover\": \"82846.0\"}}, \"0QIadK8r6HxNza6Ny+h+qA\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 13001.0, \"color\": \"#eb7a31\", \"hover\": \"13001.0\"}}, \"iMlV9a1op1gNksg4eI2LqA\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 17862.0, \"color\": \"#a41adf\", \"hover\": \"17862.0\"}}, \"x9R/caK7uyrvHrdoHKuZqA\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 1973.0, \"color\": \"#e1aa5b\", \"hover\": \"1973.0\"}}, \"UvwgWrEVRAhIKi90bruZqA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 158310.0, \"color\": \"#1bd89a\", \"hover\": \"158310.0\"}}, \"ufljtH2NardpOebKv0f7qA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 23151.0, \"color\": \"#2795b1\", \"hover\": \"23151.0\"}}, \"ne3mJ4vHAOk3E9IlDOcAqQ\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 101376.0, \"color\": \"#75fa8b\", \"hover\": \"101376.0\"}}, \"5gbSqQi7aHAiU/tNOC4hqQ\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 4774.0, \"color\": \"#e3e59b\", \"hover\": \"4774.0\"}}, \"Ie2ipRiDjN8xf3W2LEwvqQ\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 46646.0, \"color\": \"#c2fe3c\", \"hover\": \"46646.0\"}}, \"r2zO0iJHNjyJbNKU9lwvqQ\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 25743.0, \"color\": \"#78e968\", \"hover\": \"25743.0\"}}, \"Zt02CNrU6B6qoZWAhb0yqQ\": {\"metadata\": {\"community_id\": 116, \"customer_id\": 197661.0, \"color\": \"#f45a94\", \"hover\": \"197661.0\"}}, \"6bRiUSe4hBMy0l8u/Kc6qQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 195453.0, \"color\": \"#62fab8\", \"hover\": \"195453.0\"}}, \"izqORYblhz10NUpxrf5IqQ\": {\"metadata\": {\"community_id\": 413, \"customer_id\": 10517.0, \"color\": \"#f3657e\", \"hover\": \"10517.0\"}}, \"Y71JXwPp8BNr1I0/V5OLqQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 86665.0, \"color\": \"#45f210\", \"hover\": \"86665.0\"}}, \"tNJL9Wj9xM3IyYmtsaGaqQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 92788.0, \"color\": \"#62fab8\", \"hover\": \"92788.0\"}}, \"+4R74YkBh+/ckVo+zCW+qQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 58889.0, \"color\": \"#b70fc0\", \"hover\": \"58889.0\"}}, \"dV5s7ImkyNv6OvHQ41TDqQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 6793.0, \"color\": \"#33b9bc\", \"hover\": \"6793.0\"}}, \"Gzzno6mZNPrH0I4Dvc8Dqg\": {\"metadata\": {\"community_id\": 420, \"customer_id\": 75814.0, \"color\": \"#89e0bd\", \"hover\": \"75814.0\"}}, \"H+wkAyPI5bSb8Bb+y88Lqg\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 107467.0, \"color\": \"#1807f2\", \"hover\": \"107467.0\"}}, \"XFXhSAs5neog+0WBJ2kMqg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 117973.0, \"color\": \"#0d14dc\", \"hover\": \"117973.0\"}}, \"HR7xM2Gj14hzkZZsBPkwqg\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 4145.0, \"color\": \"#d53e3e\", \"hover\": \"4145.0\"}}, \"vtWfeIoNdt2OYL/M/Cg5qg\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 94958.0, \"color\": \"#b21c5c\", \"hover\": \"94958.0\"}}, \"P3m65AjR0i02EPNbMQtNqg\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 168765.0, \"color\": \"#f27280\", \"hover\": \"168765.0\"}}, \"839Oiyd7BclP2PdSeIZNqg\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 71860.0, \"color\": \"#29f3a8\", \"hover\": \"71860.0\"}}, \"FuuSZV27Neo4y6ZEJ2d6qg\": {\"metadata\": {\"community_id\": 426, \"customer_id\": 190773.0, \"color\": \"#cf3f1e\", \"hover\": \"190773.0\"}}, \"4HBkQGjDrY3J6TAqmfqoqg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 83756.0, \"color\": \"#b70fc0\", \"hover\": \"83756.0\"}}, \"7Puebud1EKEQH/Hg9h7hqg\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 2843.0, \"color\": \"#08dbec\", \"hover\": \"2843.0\"}}, \"wq4jS3BQFR4Q7rCcHmTkqg\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 166732.0, \"color\": \"#6ea5d0\", \"hover\": \"166732.0\"}}, \"66eisG0zlPciGk3M3zXzqg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 134703.0, \"color\": \"#33b9bc\", \"hover\": \"134703.0\"}}, \"lds6GA7YRogoMFggLBQWqw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 198001.0, \"color\": \"#d8dd94\", \"hover\": \"198001.0\"}}, \"PsuUNN4RIxQKVESQlo8kqw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 114374.0, \"color\": \"#eda379\", \"hover\": \"114374.0\"}}, \"kr7eqRr/BUSM/bBJyU9Lqw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 102331.0, \"color\": \"#d2ab67\", \"hover\": \"102331.0\"}}, \"JuVP3exlf4shYDoAoKVSqw\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 179999.0, \"color\": \"#4037bc\", \"hover\": \"179999.0\"}}, \"jdQapSWmQZLmHrDF7KlSqw\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 188123.0, \"color\": \"#8c25b7\", \"hover\": \"188123.0\"}}, \"cT8S0osGv1Yx07xujT9gqw\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 65769.0, \"color\": \"#f3585b\", \"hover\": \"65769.0\"}}, \"vtRcGf0ox/w9MXmiOqN8qw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 16665.0, \"color\": \"#a6c704\", \"hover\": \"16665.0\"}}, \"hGQwGeez8E92ZELQ24STqw\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 128154.0, \"color\": \"#1807f2\", \"hover\": \"128154.0\"}}, \"1z8Qkaup4fk+PHtX1lefqw\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 142597.0, \"color\": \"#6bdba1\", \"hover\": \"142597.0\"}}, \"LgXU7EwRSv3zHa0Jz5mmqw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 1640.0, \"color\": \"#1bd89a\", \"hover\": \"1640.0\"}}, \"E1IK+hjo8sbiIQR1ji6tqw\": {\"metadata\": {\"community_id\": 335, \"customer_id\": 198590.0, \"color\": \"#79e4a6\", \"hover\": \"198590.0\"}}, \"Sl/6PUC3DqG7BDyiBcK1qw\": {\"metadata\": {\"community_id\": 457, \"customer_id\": 100907.0, \"color\": \"#b495ee\", \"hover\": \"100907.0\"}}, \"dJz7k+gQ7Qf0mGFV/ibGqw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 87731.0, \"color\": \"#f6a0ef\", \"hover\": \"87731.0\"}}, \"i1pSrAwriMYqECKfr6rHqw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 75062.0, \"color\": \"#99f46c\", \"hover\": \"75062.0\"}}, \"Ylf9RdfRpsKq0jQzOyXMqw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 23076.0, \"color\": \"#e436ba\", \"hover\": \"23076.0\"}}, \"NCsCA3Mx7MjieYPd2Ajzqw\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 7180.0, \"color\": \"#8317fe\", \"hover\": \"7180.0\"}}, \"DQtysVHWuXq+1/X7I2IIrA\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 37343.0, \"color\": \"#b5cd2e\", \"hover\": \"37343.0\"}}, \"v+BYHiPvbunDD4aX0RIKrA\": {\"metadata\": {\"community_id\": 526, \"customer_id\": 13195.0, \"color\": \"#e8f763\", \"hover\": \"13195.0\"}}, \"TH6yeUquRV0AJfYGgRgOrA\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 119544.0, \"color\": \"#9fe4a3\", \"hover\": \"119544.0\"}}, \"N9riAVATY34jHBt90TQZrA\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 56596.0, \"color\": \"#6acd09\", \"hover\": \"56596.0\"}}, \"P2b8M2H2fyyW7W9aSbMdrA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 154822.0, \"color\": \"#31ab2f\", \"hover\": \"154822.0\"}}, \"+xia6NKW5jSDHWguW88yrA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 140584.0, \"color\": \"#272dca\", \"hover\": \"140584.0\"}}, \"/vWYb5IsDMKj6AN7glY4rA\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 143487.0, \"color\": \"#e493a3\", \"hover\": \"143487.0\"}}, \"2H8qGfkq5FJFrwm6c6dCrA\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 198038.0, \"color\": \"#f155a7\", \"hover\": \"198038.0\"}}, \"x3FbWy/+P9rQmLGTqJtFrA\": {\"metadata\": {\"community_id\": 533, \"customer_id\": 30391.0, \"color\": \"#d336ee\", \"hover\": \"30391.0\"}}, \"mlnfnafl4/KzepBre697rA\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 113756.0, \"color\": \"#6bf189\", \"hover\": \"113756.0\"}}, \"NIRt1zkakp48vUkF6P18rA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 174098.0, \"color\": \"#45f210\", \"hover\": \"174098.0\"}}, \"J3IwN77QI+uhaJkmHUl9rA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 152934.0, \"color\": \"#7a80f3\", \"hover\": \"152934.0\"}}, \"PuWM2tbLWJu86IYmsZO2rA\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 100021.0, \"color\": \"#1bc070\", \"hover\": \"100021.0\"}}, \"1Fns6OhOXJvz0pJZ+6vorA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 26325.0, \"color\": \"#9a62ce\", \"hover\": \"26325.0\"}}, \"/A9R0/Ho6dHtwDu+uzPzrA\": {\"metadata\": {\"community_id\": 534, \"customer_id\": 102689.0, \"color\": \"#c4bd20\", \"hover\": \"102689.0\"}}, \"hpIBMXHnjQ7uDbzVv376rA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 164054.0, \"color\": \"#81a8e3\", \"hover\": \"164054.0\"}}, \"UInULZd3JLguWndjhxn7rA\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 179647.0, \"color\": \"#417dfc\", \"hover\": \"179647.0\"}}, \"nWOJ3KQgDcbnanj95rwerQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 2981.0, \"color\": \"#f6a0ef\", \"hover\": \"2981.0\"}}, \"9n4t1Zn+X0s5hKb1T+I6rQ\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 4628.0, \"color\": \"#e66d6e\", \"hover\": \"4628.0\"}}, \"5y9nXTABra67OXilpw0/rQ\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 116624.0, \"color\": \"#ade5d7\", \"hover\": \"116624.0\"}}, \"rubYSqpKojQtvA8qiBpXrQ\": {\"metadata\": {\"community_id\": 214, \"customer_id\": 99761.0, \"color\": \"#9be504\", \"hover\": \"99761.0\"}}, \"T1TY0PEf4JGxqOim/tVrrQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 187137.0, \"color\": \"#0f50c0\", \"hover\": \"187137.0\"}}, \"z1vjzvmh76VXoOkOdHGQrQ\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 48535.0, \"color\": \"#fa6270\", \"hover\": \"48535.0\"}}, \"NDxIQcbkXhjk9VSfn5PNrQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 119298.0, \"color\": \"#10d82f\", \"hover\": \"119298.0\"}}, \"XIRrwR+1QmICAcgD/JfPrQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 111408.0, \"color\": \"#c12abd\", \"hover\": \"111408.0\"}}, \"EZ1Uxbd2GRWzoNGSb6zYrQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 28443.0, \"color\": \"#1bd89a\", \"hover\": \"28443.0\"}}, \"8miui52p1qtwyDUJwOvprQ\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 134320.0, \"color\": \"#dfd779\", \"hover\": \"134320.0\"}}, \"pZ0Nmh73qFc71JEMfbUOrg\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 41338.0, \"color\": \"#65e8e1\", \"hover\": \"41338.0\"}}, \"7BBG6FgT1nw6/Z7scC0Srg\": {\"metadata\": {\"community_id\": 111, \"customer_id\": 60264.0, \"color\": \"#d6a57e\", \"hover\": \"60264.0\"}}, \"DyY4dH1vjZdzrw7I3gxArg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 141543.0, \"color\": \"#9ee08f\", \"hover\": \"141543.0\"}}, \"mweUiILAkdAuuG85MxZPrg\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 15548.0, \"color\": \"#b6f88d\", \"hover\": \"15548.0\"}}, \"MAk0Mt0s1sgQXxtIyhtorg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 15685.0, \"color\": \"#99b5fc\", \"hover\": \"15685.0\"}}, \"ylU7OoOB+lTyYkp2CvNrrg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 54629.0, \"color\": \"#31ab2f\", \"hover\": \"54629.0\"}}, \"E2X4Af5b9cZ65cCBAzVxrg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 72703.0, \"color\": \"#f6a0ef\", \"hover\": \"72703.0\"}}, \"kwZZ5CI8cUe0cUTqGKF6rg\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 23189.0, \"color\": \"#974bf4\", \"hover\": \"23189.0\"}}, \"OTbEze7cZgrnpeMfdrKLrg\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 29138.0, \"color\": \"#f0fe05\", \"hover\": \"29138.0\"}}, \"jPwI+OB8erWmfUxJgF6Nrg\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 49149.0, \"color\": \"#7dd8f9\", \"hover\": \"49149.0\"}}, \"X5dyuyZq3obza709mjmSrg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 123766.0, \"color\": \"#99ef99\", \"hover\": \"123766.0\"}}, \"dX/TaBHa6EarDLBexxa0rg\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 27277.0, \"color\": \"#49de50\", \"hover\": \"27277.0\"}}, \"ja/6z8z+hVceS31PBR/prg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 48264.0, \"color\": \"#62fab8\", \"hover\": \"48264.0\"}}, \"vy0FMq4VqzAmN+15yanvrg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 155720.0, \"color\": \"#33b9bc\", \"hover\": \"155720.0\"}}, \"IBWl8vpvhBZxcMDX4Uj6rg\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 37558.0, \"color\": \"#e436ba\", \"hover\": \"37558.0\"}}, \"Dd7eefikHh3XghSL4DEArw\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 45481.0, \"color\": \"#0f50c0\", \"hover\": \"45481.0\"}}, \"rKPsaIVig93SRx4sDucCrw\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 190687.0, \"color\": \"#b1afe7\", \"hover\": \"190687.0\"}}, \"3u1aNsidFHNxWqY7cr0Mrw\": {\"metadata\": {\"community_id\": 535, \"customer_id\": 76992.0, \"color\": \"#71e7f2\", \"hover\": \"76992.0\"}}, \"Mr5ZLOeckoL3eb323kIQrw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 126195.0, \"color\": \"#d36ae2\", \"hover\": \"126195.0\"}}, \"dUP7AahGpOkDnORHDuEzrw\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 28632.0, \"color\": \"#8827b3\", \"hover\": \"28632.0\"}}, \"a1OoyB7+WXFUAag08KpKrw\": {\"metadata\": {\"community_id\": 352, \"customer_id\": 20142.0, \"color\": \"#f9be8d\", \"hover\": \"20142.0\"}}, \"eRiEisBwuuYVtjRVE01srw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 126231.0, \"color\": \"#d36ae2\", \"hover\": \"126231.0\"}}, \"7pcApyi0C63xSascCt1wrw\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 115812.0, \"color\": \"#10f433\", \"hover\": \"115812.0\"}}, \"pvS7Yyc5fiUtVQLhhblzrw\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 27425.0, \"color\": \"#e311d5\", \"hover\": \"27425.0\"}}, \"PXWig76h6lkyHzjEZPWCrw\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 14962.0, \"color\": \"#fa6270\", \"hover\": \"14962.0\"}}, \"sdoG82xh/hHfEnvybgiirw\": {\"metadata\": {\"community_id\": 518, \"customer_id\": 153722.0, \"color\": \"#52a8f5\", \"hover\": \"153722.0\"}}, \"OedMXRR6GuunUdLE7Eirrw\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 160392.0, \"color\": \"#ae692e\", \"hover\": \"160392.0\"}}, \"VU+2q8p0YeGCqRvta0a8rw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 143819.0, \"color\": \"#b70fc0\", \"hover\": \"143819.0\"}}, \"Kzv484GoYuRyMQRePjjFrw\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 69438.0, \"color\": \"#36dfc2\", \"hover\": \"69438.0\"}}, \"vZRT0MW4o7/ERY8DWdbdrw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 37793.0, \"color\": \"#b3df71\", \"hover\": \"37793.0\"}}, \"QTDz5cNKcULUP3W4OR7lrw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 193978.0, \"color\": \"#d36ae2\", \"hover\": \"193978.0\"}}, \"lKV3X4tv+9nIeOaFPOb5rw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 3091.0, \"color\": \"#d8dd94\", \"hover\": \"3091.0\"}}, \"wH4ggU+AeirvEleuA5QfsA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 46036.0, \"color\": \"#45f210\", \"hover\": \"46036.0\"}}, \"H2tvrSRDcqdQ6JvqtrIzsA\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 22419.0, \"color\": \"#f1fc86\", \"hover\": \"22419.0\"}}, \"JF/aaK2hFM7tvJ1WIB9JsA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 71990.0, \"color\": \"#b3df71\", \"hover\": \"71990.0\"}}, \"7bnu1kXLvO3ak/QRfIZKsA\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 44715.0, \"color\": \"#b5cd2e\", \"hover\": \"44715.0\"}}, \"9mblVkBMEnDTwMTEpwh5sA\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 160637.0, \"color\": \"#f0fe05\", \"hover\": \"160637.0\"}}, \"gty2NExwPAbA4hpY0yCDsA\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 151041.0, \"color\": \"#38cb21\", \"hover\": \"151041.0\"}}, \"pFICOOzAX8cSt8/tz2OSsA\": {\"metadata\": {\"community_id\": 54, \"customer_id\": 7094.0, \"color\": \"#342eaa\", \"hover\": \"7094.0\"}}, \"SW495dBUNeThwmcdR2mnsA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 153658.0, \"color\": \"#33b9bc\", \"hover\": \"153658.0\"}}, \"nOXqrXnI0km8cLuIHTi4sA\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 177798.0, \"color\": \"#c2fe3c\", \"hover\": \"177798.0\"}}, \"hKQRArjse+VYfHpwz8rFsA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 89694.0, \"color\": \"#d16060\", \"hover\": \"89694.0\"}}, \"7ib1w4wF6mn8TeghQCDHsA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 86851.0, \"color\": \"#c12abd\", \"hover\": \"86851.0\"}}, \"GrIMPukpxNchu/p5HFfdsA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 18278.0, \"color\": \"#272dca\", \"hover\": \"18278.0\"}}, \"hp+xOt3OuPNBJk8fxI/+sA\": {\"metadata\": {\"community_id\": 536, \"customer_id\": 97648.0, \"color\": \"#e55b71\", \"hover\": \"97648.0\"}}, \"ptb7Z/jjcIXb3g4fWvIDsQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 99108.0, \"color\": \"#e4f354\", \"hover\": \"99108.0\"}}, \"QpCAHtbvoruznvjbEU8nsQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 140197.0, \"color\": \"#5dca06\", \"hover\": \"140197.0\"}}, \"UikPyTd+/Ke0c929axUssQ\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 179036.0, \"color\": \"#d8dd17\", \"hover\": \"179036.0\"}}, \"HMLHgWFAdRQ52AVLutxJsQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 118605.0, \"color\": \"#2795b1\", \"hover\": \"118605.0\"}}, \"M68E+IUZic0BSnt35ytjsQ\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 121030.0, \"color\": \"#c32841\", \"hover\": \"121030.0\"}}, \"6MOzNfjdUIZpKdO5Anh4sQ\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 12478.0, \"color\": \"#309f40\", \"hover\": \"12478.0\"}}, \"0fIx7s6vQfun5SPejrOXsQ\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 54439.0, \"color\": \"#974bf4\", \"hover\": \"54439.0\"}}, \"nSOPa8O+2GmeTc1ttJWhsQ\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 13808.0, \"color\": \"#b129ec\", \"hover\": \"13808.0\"}}, \"ZrfpoL2Fg8iDjrUGpAqjsQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 83323.0, \"color\": \"#4bdb47\", \"hover\": \"83323.0\"}}, \"RIFKqY1gLZsQf+i0P0a8sQ\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 103741.0, \"color\": \"#14c9e9\", \"hover\": \"103741.0\"}}, \"3Y2XOerDgiAo1WK6+LC/sQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 138907.0, \"color\": \"#32bc93\", \"hover\": \"138907.0\"}}, \"zxkZsCPuXUWUsF7xYiXRsQ\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 63450.0, \"color\": \"#5831d3\", \"hover\": \"63450.0\"}}, \"pA2XvK7a3lX0398AJNHdsQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 128441.0, \"color\": \"#c12abd\", \"hover\": \"128441.0\"}}, \"1lNjFkPQft6RLWOT4nThsQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 165107.0, \"color\": \"#c0ea5e\", \"hover\": \"165107.0\"}}, \"rBRMKV18YrOSdA+WPlz6sQ\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 67430.0, \"color\": \"#aa28fe\", \"hover\": \"67430.0\"}}, \"Nb+fg2iaqscLUuaFQ1n8sQ\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 164112.0, \"color\": \"#a41adf\", \"hover\": \"164112.0\"}}, \"Xi2Gq8LSXq700zET/00Esg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 82709.0, \"color\": \"#b70fc0\", \"hover\": \"82709.0\"}}, \"TaIDJ7W1q1QH0q5C5igLsg\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 142521.0, \"color\": \"#e880f5\", \"hover\": \"142521.0\"}}, \"POgaZ85u3n/rjr0nGAs1sg\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 164998.0, \"color\": \"#31e037\", \"hover\": \"164998.0\"}}, \"f/GYujqRnQGcFVM9i0k/sg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 106113.0, \"color\": \"#272dca\", \"hover\": \"106113.0\"}}, \"w3l9D6GAOJ9N0Lh9dUhQsg\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 77732.0, \"color\": \"#f3979c\", \"hover\": \"77732.0\"}}, \"GFbM1Slh7/TpvUKSCABlsg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 52493.0, \"color\": \"#b3df71\", \"hover\": \"52493.0\"}}, \"tGIgPpSLABsuqToLwtBzsg\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 44414.0, \"color\": \"#8ceceb\", \"hover\": \"44414.0\"}}, \"H5iyKe8krA9s/HxZ4QqUsg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 61182.0, \"color\": \"#62fab8\", \"hover\": \"61182.0\"}}, \"oWaLXqrYAk5+6M57vVGnsg\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 98113.0, \"color\": \"#14d13f\", \"hover\": \"98113.0\"}}, \"zEGSOiQBax3FfgouHdO4sg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 143653.0, \"color\": \"#99b5fc\", \"hover\": \"143653.0\"}}, \"j8j5NMqGbzwWyCZEIxS8sg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 93142.0, \"color\": \"#1bd89a\", \"hover\": \"93142.0\"}}, \"SRrPV4MCz83nj7AW/W7jsg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 165243.0, \"color\": \"#62fab8\", \"hover\": \"165243.0\"}}, \"H+It2SD4KPOr34Qht7sHsw\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 73283.0, \"color\": \"#a1cdf3\", \"hover\": \"73283.0\"}}, \"H7bKs0LhQYdNQKdCXn0esw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 8802.0, \"color\": \"#b58c2b\", \"hover\": \"8802.0\"}}, \"1+u3lYKavPRkmHAzpIgisw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 78464.0, \"color\": \"#31ab2f\", \"hover\": \"78464.0\"}}, \"9to0DbLdWNSbnCui4ixJsw\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 151303.0, \"color\": \"#81a8e3\", \"hover\": \"151303.0\"}}, \"molkhmMlDjjrZGVrsSlZsw\": {\"metadata\": {\"community_id\": 537, \"customer_id\": 34603.0, \"color\": \"#79ecf9\", \"hover\": \"34603.0\"}}, \"Q62OQKXh0F0IVOGJ/nxxsw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 84073.0, \"color\": \"#b3df71\", \"hover\": \"84073.0\"}}, \"OuGpotqT00tF+qVPIIKGsw\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 13778.0, \"color\": \"#2aee21\", \"hover\": \"13778.0\"}}, \"g2//Y847Q3iYW+VM33+Ksw\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 144274.0, \"color\": \"#de86e2\", \"hover\": \"144274.0\"}}, \"M+OEVS8+0HCG1kjM26aRsw\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 99380.0, \"color\": \"#b6f88d\", \"hover\": \"99380.0\"}}, \"0sfZ1VUujodibfvXSIi/sw\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 14093.0, \"color\": \"#c70b3b\", \"hover\": \"14093.0\"}}, \"N3NaYvG5XKOWroyCvqHesw\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 120675.0, \"color\": \"#10c118\", \"hover\": \"120675.0\"}}, \"s6vux+bQZlYQHu1lY6zesw\": {\"metadata\": {\"community_id\": 538, \"customer_id\": 182128.0, \"color\": \"#27dc16\", \"hover\": \"182128.0\"}}, \"y4UnH6+f6jsDk+33vZLosw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 81274.0, \"color\": \"#7eddd4\", \"hover\": \"81274.0\"}}, \"kdW6Be6DZ17iGHRc72n1sw\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 178537.0, \"color\": \"#5831d3\", \"hover\": \"178537.0\"}}, \"Y/HkWrJ/U/Bxbdr7NgH3sw\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 131076.0, \"color\": \"#fcce99\", \"hover\": \"131076.0\"}}, \"JGCy4XtfSbtbG7+nlw4CtA\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 118878.0, \"color\": \"#6ea5d0\", \"hover\": \"118878.0\"}}, \"JjdNS7oWxI3B316S3ohBtA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 76106.0, \"color\": \"#272dca\", \"hover\": \"76106.0\"}}, \"ag5YbRufSxX0dYh0+QVCtA\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 9799.0, \"color\": \"#b6f88d\", \"hover\": \"9799.0\"}}, \"i/z/xGofuxrTidxvAudKtA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 84336.0, \"color\": \"#31ab2f\", \"hover\": \"84336.0\"}}, \"1hrZMz4AyL/lrf/OcrBWtA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 98060.0, \"color\": \"#32bc93\", \"hover\": \"98060.0\"}}, \"S99EddmDGE9UZMtGmMlmtA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 107141.0, \"color\": \"#7eddd4\", \"hover\": \"107141.0\"}}, \"eicDvHwLimEpCXnCzX92tA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 149015.0, \"color\": \"#32bc93\", \"hover\": \"149015.0\"}}, \"EsqC+pAWQuGuXqcn4jiHtA\": {\"metadata\": {\"community_id\": 459, \"customer_id\": 126645.0, \"color\": \"#b13174\", \"hover\": \"126645.0\"}}, \"qObfBPdskZ/bdJxoI02JtA\": {\"metadata\": {\"community_id\": 370, \"customer_id\": 140519.0, \"color\": \"#d8577c\", \"hover\": \"140519.0\"}}, \"b0ewlzQFu3FeVzdmxcmPtA\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 161289.0, \"color\": \"#23d695\", \"hover\": \"161289.0\"}}, \"E5A0lMr/AClmZHz1S2qRtA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 77882.0, \"color\": \"#1bd89a\", \"hover\": \"77882.0\"}}, \"DXapr/UUm27Eyi8aPwWmtA\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 112362.0, \"color\": \"#a32d58\", \"hover\": \"112362.0\"}}, \"9JsLmui6toze4OCS9SqwtA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 188942.0, \"color\": \"#f8a36c\", \"hover\": \"188942.0\"}}, \"iL/YeEnkI5SD8xbo+fm5tA\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 35785.0, \"color\": \"#d8c96d\", \"hover\": \"35785.0\"}}, \"gRbv2VG/VVde+RVrP7C6tA\": {\"metadata\": {\"community_id\": 539, \"customer_id\": 109155.0, \"color\": \"#569fee\", \"hover\": \"109155.0\"}}, \"r2Exk8lJPGlgrhGDuXbItA\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 17297.0, \"color\": \"#cf4ceb\", \"hover\": \"17297.0\"}}, \"EADV6v6vusn6OhIrZeLLtA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 180031.0, \"color\": \"#d53cea\", \"hover\": \"180031.0\"}}, \"WOAGhCZ/9WsKbxJgIjLktA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 154385.0, \"color\": \"#33b9bc\", \"hover\": \"154385.0\"}}, \"Fk9ODZxwazvx3GbYrh77tA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 195089.0, \"color\": \"#f6a0ef\", \"hover\": \"195089.0\"}}, \"Em0/xm51jDdmoLNgvocVtQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 10042.0, \"color\": \"#fe58fe\", \"hover\": \"10042.0\"}}, \"lajlfjCT3uep6UXeChc2tQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 164787.0, \"color\": \"#c0ea5e\", \"hover\": \"164787.0\"}}, \"Ez3647QFG0wP7lSVpXZhtQ\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 115159.0, \"color\": \"#e3a953\", \"hover\": \"115159.0\"}}, \"uob06uLmmmvE1HYJtEpitQ\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 148792.0, \"color\": \"#aae3e3\", \"hover\": \"148792.0\"}}, \"/7xUbAUGrwmRAMULC1yWtQ\": {\"metadata\": {\"community_id\": 301, \"customer_id\": 167915.0, \"color\": \"#cb08e0\", \"hover\": \"167915.0\"}}, \"VmQJ9aObfF5IkVpEqtWhtQ\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 122755.0, \"color\": \"#d36ae2\", \"hover\": \"122755.0\"}}, \"27dEDmdur1Zy6ijanei8tQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 20287.0, \"color\": \"#b70fc0\", \"hover\": \"20287.0\"}}, \"5xwY0szZnsiqQTwCAlnatQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 165610.0, \"color\": \"#c12abd\", \"hover\": \"165610.0\"}}, \"msbwNknrv3HRKuTbTbz3tQ\": {\"metadata\": {\"community_id\": 410, \"customer_id\": 82664.0, \"color\": \"#e963e7\", \"hover\": \"82664.0\"}}, \"uldXPY99tgYVFbIPI3L5tQ\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 141614.0, \"color\": \"#9e78f3\", \"hover\": \"141614.0\"}}, \"kUwvpSYL10SBe4X6VrMWtg\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 33569.0, \"color\": \"#a192f1\", \"hover\": \"33569.0\"}}, \"tMA277Q1r1Ou54ivdg0ctg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 156113.0, \"color\": \"#b58c2b\", \"hover\": \"156113.0\"}}, \"ygZ5WGwTsK/8Id5UnwVytg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 171255.0, \"color\": \"#99ef99\", \"hover\": \"171255.0\"}}, \"ZoEO7yjPqksMS2uJ/OWvtg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 18471.0, \"color\": \"#31ab2f\", \"hover\": \"18471.0\"}}, \"LJGylLlX+/njYiLtK5PItg\": {\"metadata\": {\"community_id\": 257, \"customer_id\": 65052.0, \"color\": \"#b68efb\", \"hover\": \"65052.0\"}}, \"giVUGbtk3+U2igTdOb/Ktg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 62811.0, \"color\": \"#99ef99\", \"hover\": \"62811.0\"}}, \"+VLSwuuXCcLbYcRl6hvWtg\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 185820.0, \"color\": \"#5dedcd\", \"hover\": \"185820.0\"}}, \"16W7EYhBrixyb0qpYa73tg\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 71125.0, \"color\": \"#3b61cf\", \"hover\": \"71125.0\"}}, \"ESC0HxN2+18/OEVFpNgDtw\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 130187.0, \"color\": \"#d16060\", \"hover\": \"130187.0\"}}, \"mfHjc8E5wq5hAEBqLwMktw\": {\"metadata\": {\"community_id\": 359, \"customer_id\": 169365.0, \"color\": \"#fa858b\", \"hover\": \"169365.0\"}}, \"c/FYJcXeWjIHYyY6uVwytw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 197779.0, \"color\": \"#c12abd\", \"hover\": \"197779.0\"}}, \"uWIj0NtbQXifNLvogWFEtw\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 60640.0, \"color\": \"#b2e3a4\", \"hover\": \"60640.0\"}}, \"lW8nc97cG8164gWackiEtw\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 52804.0, \"color\": \"#08cad9\", \"hover\": \"52804.0\"}}, \"R1mcTef8YzRX3Syfonbctw\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 8980.0, \"color\": \"#76c7fc\", \"hover\": \"8980.0\"}}, \"Hun8mOh7jntBJ/XZPgESuA\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 168360.0, \"color\": \"#961ac7\", \"hover\": \"168360.0\"}}, \"GgV82+Xq+zos6WPdMZgduA\": {\"metadata\": {\"community_id\": 537, \"customer_id\": 26957.0, \"color\": \"#79ecf9\", \"hover\": \"26957.0\"}}, \"/hoM3x9QDTrZMypNwFxFuA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 130380.0, \"color\": \"#eda379\", \"hover\": \"130380.0\"}}, \"raZOG5bVUG5VdyFDA9JGuA\": {\"metadata\": {\"community_id\": 314, \"customer_id\": 53741.0, \"color\": \"#f0fb3c\", \"hover\": \"53741.0\"}}, \"ri48j885BLzHXAWT8WJduA\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 145881.0, \"color\": \"#11fc2e\", \"hover\": \"145881.0\"}}, \"ANKXuYblah5Sw/0h5ImguA\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 11561.0, \"color\": \"#f27249\", \"hover\": \"11561.0\"}}, \"WIaFpd9DG91pxpUvdtrAuA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 22505.0, \"color\": \"#99b5fc\", \"hover\": \"22505.0\"}}, \"bknqOYp4Vp6LPwQl9RTauA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 57872.0, \"color\": \"#32bc93\", \"hover\": \"57872.0\"}}, \"87aowLoWEwEaBtKV8tbbuA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 183570.0, \"color\": \"#99b5fc\", \"hover\": \"183570.0\"}}, \"P/cyRrtKGbRESXIaIUDjuA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 101736.0, \"color\": \"#d53e3e\", \"hover\": \"101736.0\"}}, \"5ImV0GwcN4e8Sal+/A7vuA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 118810.0, \"color\": \"#45f210\", \"hover\": \"118810.0\"}}, \"ykhADMSBj+Y4ryryeKH5uA\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 46246.0, \"color\": \"#be821d\", \"hover\": \"46246.0\"}}, \"It7b8wQL/k5NaAhQ+CMOuQ\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 61292.0, \"color\": \"#fa6270\", \"hover\": \"61292.0\"}}, \"r+bYu5Ulcywy8rBOadEYuQ\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 157075.0, \"color\": \"#0cd5fa\", \"hover\": \"157075.0\"}}, \"AgQzuVP3IkMn/Ov+dswguQ\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 36677.0, \"color\": \"#be24cb\", \"hover\": \"36677.0\"}}, \"R/bp+9HeU+cWRe6WcBIyuQ\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 174421.0, \"color\": \"#09ef53\", \"hover\": \"174421.0\"}}, \"a4+4zao4O23gIPqZq/U2uQ\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 118857.0, \"color\": \"#8fe89d\", \"hover\": \"118857.0\"}}, \"yo+slXRjEOyeYXIxTMtruQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 63358.0, \"color\": \"#b70fc0\", \"hover\": \"63358.0\"}}, \"0xmP5QwkmCYPv1fHz5GSuQ\": {\"metadata\": {\"community_id\": 301, \"customer_id\": 184500.0, \"color\": \"#cb08e0\", \"hover\": \"184500.0\"}}, \"4ArNEWYk/HL35UuzBEWUuQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 67134.0, \"color\": \"#32bc93\", \"hover\": \"67134.0\"}}, \"168vFRjReKcksP7HJpOVuQ\": {\"metadata\": {\"community_id\": 123, \"customer_id\": 181249.0, \"color\": \"#f2867f\", \"hover\": \"181249.0\"}}, \"I1Y8y0BN2GoCseNXlNfRuQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 43099.0, \"color\": \"#10d82f\", \"hover\": \"43099.0\"}}, \"+Y38GQWJ9sDVV1yJBS3ZuQ\": {\"metadata\": {\"community_id\": 404, \"customer_id\": 164437.0, \"color\": \"#f114d5\", \"hover\": \"164437.0\"}}, \"VNrzOIiQ6FNSB1I07mHmuQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 186662.0, \"color\": \"#62fab8\", \"hover\": \"186662.0\"}}, \"sBo1DoKZGqK99B32lYnxuQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 144255.0, \"color\": \"#99ef99\", \"hover\": \"144255.0\"}}, \"8JbF9ap+6Qhiv10Vnu/1uQ\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 70492.0, \"color\": \"#24d0d9\", \"hover\": \"70492.0\"}}, \"wZ45Zz2j32LbhWQfJBEbug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 8349.0, \"color\": \"#99b5fc\", \"hover\": \"8349.0\"}}, \"Q4c13sv+X+/8COGPb4kfug\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 36102.0, \"color\": \"#5970d7\", \"hover\": \"36102.0\"}}, \"H4E5AoIqhz9wh2Kf55g9ug\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 190268.0, \"color\": \"#98e1c6\", \"hover\": \"190268.0\"}}, \"IQM9aWomrU3BEDzBJmVLug\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 174384.0, \"color\": \"#1514df\", \"hover\": \"174384.0\"}}, \"L/8tLTjf3qUm/TOyurJOug\": {\"metadata\": {\"community_id\": 423, \"customer_id\": 28254.0, \"color\": \"#78e0aa\", \"hover\": \"28254.0\"}}, \"oyFfCj3XEK2o5kEyMRZXug\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 53363.0, \"color\": \"#eba59b\", \"hover\": \"53363.0\"}}, \"9Magx3/mXuyBOVJWMpiCug\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 80914.0, \"color\": \"#e4f354\", \"hover\": \"80914.0\"}}, \"1mrWjfQ/EuoZlFn7YpeHug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 79010.0, \"color\": \"#99b5fc\", \"hover\": \"79010.0\"}}, \"VzS48APpJ+ye48pIki2dug\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 143635.0, \"color\": \"#f8a36c\", \"hover\": \"143635.0\"}}, \"eKr9JVEDRy/wrfqS0kXGug\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 173343.0, \"color\": \"#f6a0ef\", \"hover\": \"173343.0\"}}, \"8wXFOFxvQzDP2XGsXPTJug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 178206.0, \"color\": \"#99b5fc\", \"hover\": \"178206.0\"}}, \"nRGKdSUZWr/RPx5aNVjOug\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 77962.0, \"color\": \"#d16060\", \"hover\": \"77962.0\"}}, \"owBvkBaADHkAd2yCVArPug\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 46659.0, \"color\": \"#c093fc\", \"hover\": \"46659.0\"}}, \"yQXzd9q77QzB5sQHjLLuug\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 32073.0, \"color\": \"#df7e88\", \"hover\": \"32073.0\"}}, \"ThEEbPC4bj3+L1bdTz0Muw\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 138904.0, \"color\": \"#93c51c\", \"hover\": \"138904.0\"}}, \"bUgdrd1w1QJ1vRcQBboOuw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 16121.0, \"color\": \"#d6b552\", \"hover\": \"16121.0\"}}, \"KF5Dbm9cM754JWLe3NAXuw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 90732.0, \"color\": \"#99f46c\", \"hover\": \"90732.0\"}}, \"BjSMBv/+daH7S+x5+4kguw\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 114840.0, \"color\": \"#3c74fc\", \"hover\": \"114840.0\"}}, \"shPnJN4xCSk7oXmY9Q4wuw\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 37076.0, \"color\": \"#71d3ce\", \"hover\": \"37076.0\"}}, \"bHlug9FuJiSNo/yQC0I/uw\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 28649.0, \"color\": \"#6bf189\", \"hover\": \"28649.0\"}}, \"E3oB2e+vPHG2ZRFYOupXuw\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 181968.0, \"color\": \"#14d13f\", \"hover\": \"181968.0\"}}, \"X6RG1Kq2oEGyIv4GTBqBuw\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 129709.0, \"color\": \"#8543c3\", \"hover\": \"129709.0\"}}, \"kuxiFPqdl/EjVVqv4D6Puw\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 186654.0, \"color\": \"#2795b1\", \"hover\": \"186654.0\"}}, \"nZemi4L/TnUeky0vAf+euw\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 17678.0, \"color\": \"#65e8e1\", \"hover\": \"17678.0\"}}, \"I3HKdcL6uq1dV9U6rAbJuw\": {\"metadata\": {\"community_id\": 431, \"customer_id\": 96441.0, \"color\": \"#feb381\", \"hover\": \"96441.0\"}}, \"YMjrrcEOhL2zcqWU1DzUuw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 142951.0, \"color\": \"#d8dd94\", \"hover\": \"142951.0\"}}, \"d+jDWSs2T6c8VQ8BAurfuw\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 57279.0, \"color\": \"#7bfa46\", \"hover\": \"57279.0\"}}, \"pbRt9R8ohIfiCOBUlIbmuw\": {\"metadata\": {\"community_id\": 300, \"customer_id\": 123752.0, \"color\": \"#35db90\", \"hover\": \"123752.0\"}}, \"UZYf/isTOX6flCmlncT2uw\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 71681.0, \"color\": \"#f0f3a3\", \"hover\": \"71681.0\"}}, \"zhwkPccrVBCZlu4Vm/0dvA\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 145130.0, \"color\": \"#fc580c\", \"hover\": \"145130.0\"}}, \"TgyNoh7F93CAwdFFP4NWvA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 56480.0, \"color\": \"#99ef99\", \"hover\": \"56480.0\"}}, \"hQ9sNYfi7Xoi4HS4wTZhvA\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 64885.0, \"color\": \"#8fe89d\", \"hover\": \"64885.0\"}}, \"PWazbWYXRKDBh37GwcFlvA\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 63577.0, \"color\": \"#ab25a7\", \"hover\": \"63577.0\"}}, \"UJEqm8fIHoj/jzcSuPu0vA\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 183618.0, \"color\": \"#2575dd\", \"hover\": \"183618.0\"}}, \"sg8bvnXSB8YcDFZaIVK+vA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 71906.0, \"color\": \"#7eddd4\", \"hover\": \"71906.0\"}}, \"eA7yDzVXHPNkRVWmCx/8vA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 29318.0, \"color\": \"#b3df71\", \"hover\": \"29318.0\"}}, \"OKTk/onbe2oebWvf+eMKvQ\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 21893.0, \"color\": \"#c242c1\", \"hover\": \"21893.0\"}}, \"4owBdThRITj1owKR6bwkvQ\": {\"metadata\": {\"community_id\": 143, \"customer_id\": 196224.0, \"color\": \"#babe2c\", \"hover\": \"196224.0\"}}, \"LRvRi7afvuVDGY7sRVUrvQ\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 186934.0, \"color\": \"#f091c1\", \"hover\": \"186934.0\"}}, \"fO7Bg973y07RR33P9wVAvQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 174484.0, \"color\": \"#a372d3\", \"hover\": \"174484.0\"}}, \"wfXgSamcu5P3FnGDzU9nvQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 114178.0, \"color\": \"#c12abd\", \"hover\": \"114178.0\"}}, \"w3gOMqJKLa4A2gm6BXxyvQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 125642.0, \"color\": \"#62fab8\", \"hover\": \"125642.0\"}}, \"9SJVLkajTeR4POfLrh2KvQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 108029.0, \"color\": \"#32bc93\", \"hover\": \"108029.0\"}}, \"lzH6Idq2FJnBDgEnU3CMvQ\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 131285.0, \"color\": \"#b21c5c\", \"hover\": \"131285.0\"}}, \"mgKH8XgnUmt990hciUKkvQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 151852.0, \"color\": \"#4bdb47\", \"hover\": \"151852.0\"}}, \"aCn8MLPRUWx5ggppKWnMvQ\": {\"metadata\": {\"community_id\": 263, \"customer_id\": 166601.0, \"color\": \"#e47c2c\", \"hover\": \"166601.0\"}}, \"lohttfXsDNw5mIztqHPOvQ\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 177910.0, \"color\": \"#f29712\", \"hover\": \"177910.0\"}}, \"FaAPoRRoxpdN4btTbs7nvQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 196937.0, \"color\": \"#c12abd\", \"hover\": \"196937.0\"}}, \"xRv17OpeWpPllhbTSqIRvg\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 28360.0, \"color\": \"#309f40\", \"hover\": \"28360.0\"}}, \"AGofICB3vZZlKcHxtSASvg\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 194226.0, \"color\": \"#8827b3\", \"hover\": \"194226.0\"}}, \"d+kA2No99UCwkK/diexNvg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 4554.0, \"color\": \"#ee2a13\", \"hover\": \"4554.0\"}}, \"0da62zHZzY1jczHHQ9xvvg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 1226.0, \"color\": \"#62fab8\", \"hover\": \"1226.0\"}}, \"hUqcqGPdKtI69S4i5SSFvg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 96523.0, \"color\": \"#33b9bc\", \"hover\": \"96523.0\"}}, \"QqHIoi1m6uc9wf5EvV+Hvg\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 174353.0, \"color\": \"#98d0f5\", \"hover\": \"174353.0\"}}, \"MNVcFZjSVu0z0JmNCIKavg\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 54925.0, \"color\": \"#e4e59e\", \"hover\": \"54925.0\"}}, \"jvBpNSOT9RtSIOth8nCdvg\": {\"metadata\": {\"community_id\": 453, \"customer_id\": 173350.0, \"color\": \"#ab93ef\", \"hover\": \"173350.0\"}}, \"cfyIaZvA2RoXHpxUpLCevg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 165762.0, \"color\": \"#08cad9\", \"hover\": \"165762.0\"}}, \"ltr+GVO+GZyWAA+Z4qiovg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 29806.0, \"color\": \"#45f210\", \"hover\": \"29806.0\"}}, \"BiVTReLObVv0Xy0GZgK6vg\": {\"metadata\": {\"community_id\": 476, \"customer_id\": 39651.0, \"color\": \"#e35cbc\", \"hover\": \"39651.0\"}}, \"z4I7L9x+TFuWyccuF1Dzvg\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 147269.0, \"color\": \"#d820bf\", \"hover\": \"147269.0\"}}, \"XXV6z+C21UqJfmBajVoCvw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 190611.0, \"color\": \"#b70fc0\", \"hover\": \"190611.0\"}}, \"RzobwgLknSJL7QUthZojvw\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 104683.0, \"color\": \"#dbd839\", \"hover\": \"104683.0\"}}, \"E44NS8+3z6vWzACYVC9pvw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 158033.0, \"color\": \"#32bc93\", \"hover\": \"158033.0\"}}, \"mBGZFsgZHxC73vu9VcF0vw\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 95934.0, \"color\": \"#c242c1\", \"hover\": \"95934.0\"}}, \"79ZVec1G5s0cAdAPbGh7vw\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 52987.0, \"color\": \"#dfb962\", \"hover\": \"52987.0\"}}, \"Ni7y9F5zD15CH+lj9WSJvw\": {\"metadata\": {\"community_id\": 90, \"customer_id\": 43966.0, \"color\": \"#a9fc75\", \"hover\": \"43966.0\"}}, \"tgKSJys3w/UaHo4Ysd+Kvw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 11567.0, \"color\": \"#10d82f\", \"hover\": \"11567.0\"}}, \"usCj8EbPFiwMXDxfRmyWvw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 31028.0, \"color\": \"#33b9bc\", \"hover\": \"31028.0\"}}, \"A6KU/qYQ98spmWi6/tD3vw\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 24309.0, \"color\": \"#c093fc\", \"hover\": \"24309.0\"}}, \"blzjPT0h8JvaEyoeHM0HwA\": {\"metadata\": {\"community_id\": 541, \"customer_id\": 4230.0, \"color\": \"#88dda0\", \"hover\": \"4230.0\"}}, \"0UVIs06F6OpYATgqQ/oRwA\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 126370.0, \"color\": \"#3b61cf\", \"hover\": \"126370.0\"}}, \"08bGjN1u0ANSZUfU31gawA\": {\"metadata\": {\"community_id\": 153, \"customer_id\": 33286.0, \"color\": \"#9b36d1\", \"hover\": \"33286.0\"}}, \"w6OquymSybB4rOzCfnsmwA\": {\"metadata\": {\"community_id\": 468, \"customer_id\": 154032.0, \"color\": \"#74f374\", \"hover\": \"154032.0\"}}, \"iImUqiPNPbAQT9k7P7UswA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 95075.0, \"color\": \"#7eddd4\", \"hover\": \"95075.0\"}}, \"9H4dfR82pf4C6zAX/Kw+wA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 72709.0, \"color\": \"#0d14dc\", \"hover\": \"72709.0\"}}, \"RmT2VUCyBml1MSaKA8p4wA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 25540.0, \"color\": \"#a372d3\", \"hover\": \"25540.0\"}}, \"1diDn2TqVXffSDwuCsufwA\": {\"metadata\": {\"community_id\": 96, \"customer_id\": 94762.0, \"color\": \"#8feb83\", \"hover\": \"94762.0\"}}, \"lB94TJC4mHXWf2vZWZ29wA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 115788.0, \"color\": \"#b70fc0\", \"hover\": \"115788.0\"}}, \"9TKJBcJAUWfrnzzw+DnBwA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 162472.0, \"color\": \"#b3df71\", \"hover\": \"162472.0\"}}, \"sMVEDjYAoPnviUTBQoXGwA\": {\"metadata\": {\"community_id\": 379, \"customer_id\": 46618.0, \"color\": \"#ec9ede\", \"hover\": \"46618.0\"}}, \"7ib9VmFqcj1KqsdJi47OwA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 24729.0, \"color\": \"#32bc93\", \"hover\": \"24729.0\"}}, \"G0Jvudh0MprO+ahcgETzwA\": {\"metadata\": {\"community_id\": 293, \"customer_id\": 73863.0, \"color\": \"#fa90aa\", \"hover\": \"73863.0\"}}, \"nS6lfxCR8UbhgnG0zjn2wA\": {\"metadata\": {\"community_id\": 292, \"customer_id\": 123499.0, \"color\": \"#cfafe6\", \"hover\": \"123499.0\"}}, \"D4IAw+FEySK1aJafWfn3wA\": {\"metadata\": {\"community_id\": 402, \"customer_id\": 81407.0, \"color\": \"#7fe1c7\", \"hover\": \"81407.0\"}}, \"CbimiVMxuT7pDVfyGcT4wA\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 138784.0, \"color\": \"#23d695\", \"hover\": \"138784.0\"}}, \"/c8KCzUU8taJjhXPkCEYwQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 195314.0, \"color\": \"#4bdb47\", \"hover\": \"195314.0\"}}, \"8FTWC1IrA7HALNPMFE0lwQ\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 41621.0, \"color\": \"#3c74fc\", \"hover\": \"41621.0\"}}, \"nuOysH+Mh2h6a7WWgG44wQ\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 148576.0, \"color\": \"#b4ea8c\", \"hover\": \"148576.0\"}}, \"5zGaSrpx8N1/soA9uEI+wQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 109830.0, \"color\": \"#3ef95f\", \"hover\": \"109830.0\"}}, \"IPgGExpgq0OmbJYAJoFSwQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 119166.0, \"color\": \"#fe58fe\", \"hover\": \"119166.0\"}}, \"o98+gH/a/qF/Ai20CAdfwQ\": {\"metadata\": {\"community_id\": 503, \"customer_id\": 174726.0, \"color\": \"#de8a63\", \"hover\": \"174726.0\"}}, \"jj5LZioA+7tmT0FTRGN0wQ\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 124438.0, \"color\": \"#f091c1\", \"hover\": \"124438.0\"}}, \"Na1dZK+2rK5VDYolao51wQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 176914.0, \"color\": \"#33b9bc\", \"hover\": \"176914.0\"}}, \"hL75IBvLbfMhsjCx+1t8wQ\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 160506.0, \"color\": \"#d3da39\", \"hover\": \"160506.0\"}}, \"ICaVjTyTI8LNXqd6cVJ+wQ\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 120762.0, \"color\": \"#d53e3e\", \"hover\": \"120762.0\"}}, \"hvsaBnv2e212vOtI9S2HwQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 171246.0, \"color\": \"#f6a0ef\", \"hover\": \"171246.0\"}}, \"x+lG/kXRYYoK8naWzHS1wQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 158198.0, \"color\": \"#5dca06\", \"hover\": \"158198.0\"}}, \"0P3j4CTZ2CVND7f+EofIwQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 13086.0, \"color\": \"#62fab8\", \"hover\": \"13086.0\"}}, \"1LWVTQ0sTh4Dqh1crhDOwQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 18930.0, \"color\": \"#45f210\", \"hover\": \"18930.0\"}}, \"0mApAkzVCbCD0Bj419HRwQ\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 25671.0, \"color\": \"#dbd839\", \"hover\": \"25671.0\"}}, \"QRRaPMkfiJHFc5S7j33XwQ\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 124495.0, \"color\": \"#4dcbac\", \"hover\": \"124495.0\"}}, \"Z9n/kmsyq52cF3jYG9nZwQ\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 130824.0, \"color\": \"#e6dab1\", \"hover\": \"130824.0\"}}, \"SlRbWsroLBnECZVyHkDkwQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 173901.0, \"color\": \"#d8dd94\", \"hover\": \"173901.0\"}}, \"TsBp/bUpbkbp5S1HqqD0wQ\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 159284.0, \"color\": \"#d9480a\", \"hover\": \"159284.0\"}}, \"AlCXpabHb9Fswv7L4U0Bwg\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 4948.0, \"color\": \"#65e08d\", \"hover\": \"4948.0\"}}, \"Ut/cnsk0Y1yuS0FtNMJBwg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 151960.0, \"color\": \"#b70fc0\", \"hover\": \"151960.0\"}}, \"orA6XdY3CKntCIC/xzdPwg\": {\"metadata\": {\"community_id\": 542, \"customer_id\": 54474.0, \"color\": \"#4789f2\", \"hover\": \"54474.0\"}}, \"UX3YXL0WCL6Q9XNHkwlVwg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 167757.0, \"color\": \"#dfd779\", \"hover\": \"167757.0\"}}, \"oqx1FFwhXdoO45ug5RFXwg\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 123496.0, \"color\": \"#d16060\", \"hover\": \"123496.0\"}}, \"/lnJYySQ1nGxJ0pjUAVqwg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 64972.0, \"color\": \"#45f210\", \"hover\": \"64972.0\"}}, \"xFsftJBws+g1Jr8swvaNwg\": {\"metadata\": {\"community_id\": 531, \"customer_id\": 39328.0, \"color\": \"#4fa7d9\", \"hover\": \"39328.0\"}}, \"HA63TWBU2S0+FaXntjCnwg\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 20437.0, \"color\": \"#417dfc\", \"hover\": \"20437.0\"}}, \"GESk4W8kGwn+vZG9m8yvwg\": {\"metadata\": {\"community_id\": 527, \"customer_id\": 22392.0, \"color\": \"#94faa2\", \"hover\": \"22392.0\"}}, \"iLKRP/GmekuHICjQTLXOwg\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 93723.0, \"color\": \"#04d838\", \"hover\": \"93723.0\"}}, \"7rVbt5BH4NPe/afuuJbRwg\": {\"metadata\": {\"community_id\": 167, \"customer_id\": 199304.0, \"color\": \"#e1996d\", \"hover\": \"199304.0\"}}, \"vnd7GVG/CYH07RNAUEgKww\": {\"metadata\": {\"community_id\": 378, \"customer_id\": 160906.0, \"color\": \"#6c2ed7\", \"hover\": \"160906.0\"}}, \"XAkVRZGQ94PVTV2tBtEKww\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 77255.0, \"color\": \"#d8dd94\", \"hover\": \"77255.0\"}}, \"f1/jPqUJ3XpKbRc+ulYwww\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 106564.0, \"color\": \"#0920dc\", \"hover\": \"106564.0\"}}, \"JI8jNOmizj1lO3NTr2Nbww\": {\"metadata\": {\"community_id\": 543, \"customer_id\": 46702.0, \"color\": \"#40fa33\", \"hover\": \"46702.0\"}}, \"GyNDEvMoYuhGvUGJuPBrww\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 135059.0, \"color\": \"#93c51c\", \"hover\": \"135059.0\"}}, \"KUKx56eLLLckf6HhvAhzww\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 9789.0, \"color\": \"#f8a36c\", \"hover\": \"9789.0\"}}, \"pPmXlW2jutvNWlr49riJww\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 174237.0, \"color\": \"#b3df71\", \"hover\": \"174237.0\"}}, \"o5hJtnYCQOtp9KjOY9KKww\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 107359.0, \"color\": \"#b356f5\", \"hover\": \"107359.0\"}}, \"uXgRv+EhLbgeoK6stpaXww\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 34159.0, \"color\": \"#1807f2\", \"hover\": \"34159.0\"}}, \"Y0HoY3m90f8579jMkh2lww\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 60779.0, \"color\": \"#31ab2f\", \"hover\": \"60779.0\"}}, \"KyOVJoQ1KBIHYx7862Clww\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 39868.0, \"color\": \"#9762ed\", \"hover\": \"39868.0\"}}, \"1wDxYj7DcItX8ETmJuSwww\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 107675.0, \"color\": \"#f0fe05\", \"hover\": \"107675.0\"}}, \"HGOabZuyDH+NWvcni8fIww\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 175867.0, \"color\": \"#0d14dc\", \"hover\": \"175867.0\"}}, \"P1k6r0S9EQbkqpJzRaPMww\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 89588.0, \"color\": \"#99ef99\", \"hover\": \"89588.0\"}}, \"AzjFuM06Mlh2IO2j5mHRww\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 160194.0, \"color\": \"#31ab2f\", \"hover\": \"160194.0\"}}, \"Lg63ntVVe/szA2gZJ1zcww\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 37760.0, \"color\": \"#d8c96d\", \"hover\": \"37760.0\"}}, \"44m6YoyPWWMgqGmxbpPgww\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 104412.0, \"color\": \"#7aefcb\", \"hover\": \"104412.0\"}}, \"e+iMIH93HMrK3sBL12/1ww\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 66666.0, \"color\": \"#b3df71\", \"hover\": \"66666.0\"}}, \"Wa79NCMryG4kb8KQd9T8ww\": {\"metadata\": {\"community_id\": 502, \"customer_id\": 44911.0, \"color\": \"#cfcb49\", \"hover\": \"44911.0\"}}, \"7DJ1W9saIcI9kuHgRJb9ww\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 154034.0, \"color\": \"#cf4ceb\", \"hover\": \"154034.0\"}}, \"dFSrg3Qo5QNZRbeqFLIHxA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 119084.0, \"color\": \"#62fab8\", \"hover\": \"119084.0\"}}, \"E8YPyLkuYOqkvzmDsSIKxA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 115062.0, \"color\": \"#31ab2f\", \"hover\": \"115062.0\"}}, \"stZS7egMHVmBbshb4MJJxA\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 54663.0, \"color\": \"#4b2fa5\", \"hover\": \"54663.0\"}}, \"3VKE9O3qoeFicDCMezlWxA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 93983.0, \"color\": \"#c12abd\", \"hover\": \"93983.0\"}}, \"Iv1TVwC5a8DIOQwR/OdixA\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 116719.0, \"color\": \"#c70b3b\", \"hover\": \"116719.0\"}}, \"I3Qv6bMIp/IVjYk8GS9zxA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 45237.0, \"color\": \"#99ef99\", \"hover\": \"45237.0\"}}, \"xFtvUt54mWyK6jRKl1JzxA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 144627.0, \"color\": \"#81a8e3\", \"hover\": \"144627.0\"}}, \"hKruHz9YqELlEfdSiJ2BxA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 195730.0, \"color\": \"#62fab8\", \"hover\": \"195730.0\"}}, \"8ay8Jub/jSdSgmTtDJKJxA\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 183656.0, \"color\": \"#dfb962\", \"hover\": \"183656.0\"}}, \"lL2Pcacb0dpYNhoRRP2kxA\": {\"metadata\": {\"community_id\": 508, \"customer_id\": 33472.0, \"color\": \"#6385d5\", \"hover\": \"33472.0\"}}, \"8q9ThZ4dsMD6aLF39MmyxA\": {\"metadata\": {\"community_id\": 223, \"customer_id\": 156121.0, \"color\": \"#ca26a4\", \"hover\": \"156121.0\"}}, \"VQXF0znq/wL8TubQs93FxA\": {\"metadata\": {\"community_id\": 544, \"customer_id\": 29346.0, \"color\": \"#be1b33\", \"hover\": \"29346.0\"}}, \"1ZpUxaN+Bxlij295UkHIxA\": {\"metadata\": {\"community_id\": 68, \"customer_id\": 160955.0, \"color\": \"#dc757c\", \"hover\": \"160955.0\"}}, \"QH5V8o2q1ky152gZ2ALSxA\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 101831.0, \"color\": \"#65e8e1\", \"hover\": \"101831.0\"}}, \"1HD1hgKxdxjSKUE56jLcxA\": {\"metadata\": {\"community_id\": 528, \"customer_id\": 36514.0, \"color\": \"#b7f451\", \"hover\": \"36514.0\"}}, \"KnQ1veuKdeMziZDzLYjmxA\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 82605.0, \"color\": \"#c788df\", \"hover\": \"82605.0\"}}, \"ezRssIMYZ4RBowwXiNLpxA\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 174040.0, \"color\": \"#c7de5b\", \"hover\": \"174040.0\"}}, \"FP3VoLmMd2eZRBobuqshxQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 1819.0, \"color\": \"#7eddd4\", \"hover\": \"1819.0\"}}, \"UOJIpTijHzZsoiQk7xwzxQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 32262.0, \"color\": \"#b6f88d\", \"hover\": \"32262.0\"}}, \"8T1982ymi8ae9f3QJo87xQ\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 92942.0, \"color\": \"#8ceceb\", \"hover\": \"92942.0\"}}, \"PCycEl2GTWjoexk2Y2k+xQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 139968.0, \"color\": \"#99b5fc\", \"hover\": \"139968.0\"}}, \"8Axznb3nRk/NprDR3QVNxQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 95706.0, \"color\": \"#e5e372\", \"hover\": \"95706.0\"}}, \"IOyeV/FDuKq0lQsYOChRxQ\": {\"metadata\": {\"community_id\": 316, \"customer_id\": 161551.0, \"color\": \"#de81b7\", \"hover\": \"161551.0\"}}, \"/244Bhg1oGurt3IyzwKYxQ\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 55566.0, \"color\": \"#05b7da\", \"hover\": \"55566.0\"}}, \"atJoIn0HO1lHzEghWBykxQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 58178.0, \"color\": \"#c12abd\", \"hover\": \"58178.0\"}}, \"tbqMBPMzgCXgvALU4kS6xQ\": {\"metadata\": {\"community_id\": 545, \"customer_id\": 52139.0, \"color\": \"#aa47c3\", \"hover\": \"52139.0\"}}, \"1qJ9URMSFa7XqetYOgjcxQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 105873.0, \"color\": \"#d8c96d\", \"hover\": \"105873.0\"}}, \"RqAoRt/0ERHfq//jRwMCxg\": {\"metadata\": {\"community_id\": 529, \"customer_id\": 158669.0, \"color\": \"#e46f45\", \"hover\": \"158669.0\"}}, \"z5jHSXyyrX6eDs+IbTIDxg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 149836.0, \"color\": \"#62fab8\", \"hover\": \"149836.0\"}}, \"ANJirwOmc8zfhtEnI0IYxg\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 86741.0, \"color\": \"#e3a953\", \"hover\": \"86741.0\"}}, \"m/AwurfNm2p5UsvVvLsnxg\": {\"metadata\": {\"community_id\": 546, \"customer_id\": 1590.0, \"color\": \"#f1ec88\", \"hover\": \"1590.0\"}}, \"YIoy52TlWKoMfszHJpo6xg\": {\"metadata\": {\"community_id\": 422, \"customer_id\": 98393.0, \"color\": \"#e33440\", \"hover\": \"98393.0\"}}, \"swp8nA1IIlV5HAlku2M7xg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 38230.0, \"color\": \"#45f210\", \"hover\": \"38230.0\"}}, \"QAZy+ZyHzSGTg21oZbtFxg\": {\"metadata\": {\"community_id\": 547, \"customer_id\": 186452.0, \"color\": \"#1366e0\", \"hover\": \"186452.0\"}}, \"QNWQjbSyenj1iC2Ps3Vmxg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 133461.0, \"color\": \"#ae692e\", \"hover\": \"133461.0\"}}, \"QljCsEz0a///Jq2IB2+cxg\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 125692.0, \"color\": \"#ee2bd7\", \"hover\": \"125692.0\"}}, \"7+NijVvh9cRhrJcDfe+sxg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 16843.0, \"color\": \"#9ee08f\", \"hover\": \"16843.0\"}}, \"loqw1+ffTyBWBziom2HExg\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 170042.0, \"color\": \"#c36a1f\", \"hover\": \"170042.0\"}}, \"z87YcajMpqL4GGWLPrXKxg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 181732.0, \"color\": \"#b3df71\", \"hover\": \"181732.0\"}}, \"WE/sSgPkeYnLGUNDQA/Rxg\": {\"metadata\": {\"community_id\": 103, \"customer_id\": 67994.0, \"color\": \"#9b67fb\", \"hover\": \"67994.0\"}}, \"kwhLDg0U+a3YNXYiod7Vxg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 166419.0, \"color\": \"#a6c704\", \"hover\": \"166419.0\"}}, \"GjAof1RFrIHVKY/0zm3bxg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 70794.0, \"color\": \"#b70fc0\", \"hover\": \"70794.0\"}}, \"Zvd//MafwP9D03olooL/xg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 120255.0, \"color\": \"#33b9bc\", \"hover\": \"120255.0\"}}, \"m3X7KkUEpv9j4UzhkoMAxw\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 141171.0, \"color\": \"#b2e3a4\", \"hover\": \"141171.0\"}}, \"BhyQqjjixR/Qv6xY8/gIxw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 83304.0, \"color\": \"#b58c2b\", \"hover\": \"83304.0\"}}, \"bk9spz7t1TylsPHDJYkLxw\": {\"metadata\": {\"community_id\": 451, \"customer_id\": 193526.0, \"color\": \"#d07c5b\", \"hover\": \"193526.0\"}}, \"Ocnr/WOgV9Si47elG1cNxw\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 46348.0, \"color\": \"#2f82a1\", \"hover\": \"46348.0\"}}, \"WmDoE4doNyin11HM8WgSxw\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 125095.0, \"color\": \"#c7de5b\", \"hover\": \"125095.0\"}}, \"0pzAhESH4mD8Y7joQlAoxw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 184256.0, \"color\": \"#e0b23c\", \"hover\": \"184256.0\"}}, \"TaylE4VzYn6LbkxhJyE6xw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 69035.0, \"color\": \"#272dca\", \"hover\": \"69035.0\"}}, \"OVRrkEa1Qc7kjpyFl1Y7xw\": {\"metadata\": {\"community_id\": 300, \"customer_id\": 14577.0, \"color\": \"#35db90\", \"hover\": \"14577.0\"}}, \"SchPEfGmLGDrGUJawxRbxw\": {\"metadata\": {\"community_id\": 102, \"customer_id\": 82580.0, \"color\": \"#8ebce5\", \"hover\": \"82580.0\"}}, \"tH9869I8NvruzTNOD7edxw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 95975.0, \"color\": \"#eba59b\", \"hover\": \"95975.0\"}}, \"OLXOzJVz75+GOsLskyKgxw\": {\"metadata\": {\"community_id\": 101, \"customer_id\": 36609.0, \"color\": \"#ef7579\", \"hover\": \"36609.0\"}}, \"q4j9p9AYZkwSfi18CCiuxw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 140093.0, \"color\": \"#7eddd4\", \"hover\": \"140093.0\"}}, \"dk6DwZwUWB0ANONnemeyxw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 173855.0, \"color\": \"#a372d3\", \"hover\": \"173855.0\"}}, \"IKaWUv1v0QppVoq3jDu4xw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 111072.0, \"color\": \"#4dcbac\", \"hover\": \"111072.0\"}}, \"vxral90saOW+72B9xdDaxw\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 34556.0, \"color\": \"#7d28ad\", \"hover\": \"34556.0\"}}, \"dLxkDItK6ds0BvVWlMzfxw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 166784.0, \"color\": \"#99f46c\", \"hover\": \"166784.0\"}}, \"vvK9Th+9rfrmK4UXVgr9xw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 7442.0, \"color\": \"#b58c2b\", \"hover\": \"7442.0\"}}, \"zl2ldV3zCVo7TVH54oYQyA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 128529.0, \"color\": \"#ed1e1d\", \"hover\": \"128529.0\"}}, \"lEBrmAcP30d64NYUuN1gyA\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 153839.0, \"color\": \"#0920dc\", \"hover\": \"153839.0\"}}, \"TDK1xqHDYg2OvbepjbOXyA\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 29733.0, \"color\": \"#40fd29\", \"hover\": \"29733.0\"}}, \"7PIjjpdWBiwyW4ixCoecyA\": {\"metadata\": {\"community_id\": 525, \"customer_id\": 166289.0, \"color\": \"#fd48d2\", \"hover\": \"166289.0\"}}, \"YoguZr7Ht5VTBpiOW2uiyA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 147545.0, \"color\": \"#d8dd94\", \"hover\": \"147545.0\"}}, \"FbaFWKwjLhE68HJWltWqyA\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 6106.0, \"color\": \"#81fdc7\", \"hover\": \"6106.0\"}}, \"8GSDTYbw+zWL3W0uIt2tyA\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 47884.0, \"color\": \"#5970d7\", \"hover\": \"47884.0\"}}, \"9fU7qlQhRR5rhI7dOB+uyA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 189516.0, \"color\": \"#9ee08f\", \"hover\": \"189516.0\"}}, \"lsLKKaHMUiMrn6Zcpfq5yA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 177023.0, \"color\": \"#d53cea\", \"hover\": \"177023.0\"}}, \"jjUjCBpwp2t9aL7mqYzByA\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 125310.0, \"color\": \"#76c7fc\", \"hover\": \"125310.0\"}}, \"Xe55gpjzk9yxQKYpqNHIyA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 64721.0, \"color\": \"#272dca\", \"hover\": \"64721.0\"}}, \"b2mBfHZKw/7Wv719ImjRyA\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 122274.0, \"color\": \"#4df1e8\", \"hover\": \"122274.0\"}}, \"LL3EugqztyFZS7UuGML+yA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 92701.0, \"color\": \"#c1351e\", \"hover\": \"92701.0\"}}, \"/6ChykDrOBwRLnasMTEgyQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 26545.0, \"color\": \"#e5e372\", \"hover\": \"26545.0\"}}, \"Mw3Fjxl0YQg8qQs2IadGyQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 68565.0, \"color\": \"#b3df71\", \"hover\": \"68565.0\"}}, \"3JHFRc0psawMPSLp7G5OyQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 52481.0, \"color\": \"#99b5fc\", \"hover\": \"52481.0\"}}, \"aXnzSNAt+qU+mwyNUylPyQ\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 76636.0, \"color\": \"#b58c2b\", \"hover\": \"76636.0\"}}, \"bXGpMEzkXLgG31dxALVXyQ\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 150018.0, \"color\": \"#14d13f\", \"hover\": \"150018.0\"}}, \"xcCz7UtKMNaCiBrVKD9kyQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 71367.0, \"color\": \"#32bc93\", \"hover\": \"71367.0\"}}, \"zdLzAZO8WpWxWxG/u35/yQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 179788.0, \"color\": \"#f73d92\", \"hover\": \"179788.0\"}}, \"AVpxGqZaxxfHPgUcyd6ByQ\": {\"metadata\": {\"community_id\": 536, \"customer_id\": 187412.0, \"color\": \"#e55b71\", \"hover\": \"187412.0\"}}, \"YsX1xoG1Sju1MtguNdicyQ\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 102392.0, \"color\": \"#9fe4a3\", \"hover\": \"102392.0\"}}, \"9u2HDSvX//SeuxXrnZqtyQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 172304.0, \"color\": \"#eba59b\", \"hover\": \"172304.0\"}}, \"lve+wd/wKPyn3CsMesLZyQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 54026.0, \"color\": \"#10d82f\", \"hover\": \"54026.0\"}}, \"kcFwDaFlVYo5rF26BC/cyQ\": {\"metadata\": {\"community_id\": 354, \"customer_id\": 31350.0, \"color\": \"#d27915\", \"hover\": \"31350.0\"}}, \"BnBQ+tWug8T5kfIlBJf1yQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 173758.0, \"color\": \"#62fab8\", \"hover\": \"173758.0\"}}, \"zHfkNAUOGIbuOJss094Syg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 47786.0, \"color\": \"#b3df71\", \"hover\": \"47786.0\"}}, \"R2NZRIws+qXh4yWI4/Iayg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 104442.0, \"color\": \"#10d82f\", \"hover\": \"104442.0\"}}, \"y64aPRdjU1N+2Egc1mEeyg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 33945.0, \"color\": \"#2f82a1\", \"hover\": \"33945.0\"}}, \"2sihRpUNQ4AoNIXbK1Q3yg\": {\"metadata\": {\"community_id\": 347, \"customer_id\": 131055.0, \"color\": \"#49ec34\", \"hover\": \"131055.0\"}}, \"q/LU05EL2cNf9O5N1wNCyg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 164192.0, \"color\": \"#0d14dc\", \"hover\": \"164192.0\"}}, \"C/zXXUs47IAYnHl6zBhMyg\": {\"metadata\": {\"community_id\": 547, \"customer_id\": 196207.0, \"color\": \"#1366e0\", \"hover\": \"196207.0\"}}, \"RNWd8UAwtRy33uFufI5/yg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 79507.0, \"color\": \"#10d82f\", \"hover\": \"79507.0\"}}, \"J2JOgBTG2R43THPf9vKJyg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 142901.0, \"color\": \"#2795b1\", \"hover\": \"142901.0\"}}, \"5vOpbU7kc21gWGoUtU+Zyg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 131468.0, \"color\": \"#404dcf\", \"hover\": \"131468.0\"}}, \"9dW2s/cOhwx8l3hsM4ujyg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 22543.0, \"color\": \"#62fab8\", \"hover\": \"22543.0\"}}, \"MfCKTk9Vom6dfNioYSOwyg\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 5062.0, \"color\": \"#e436ba\", \"hover\": \"5062.0\"}}, \"U/zvXT/kZlfNPqv27Xa3yg\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 159257.0, \"color\": \"#dc1d4e\", \"hover\": \"159257.0\"}}, \"dGVXj5FGpjyorj3Kj9HDyg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 176519.0, \"color\": \"#dfd779\", \"hover\": \"176519.0\"}}, \"ud5x3n4d6/TNWqjX6Uwwyw\": {\"metadata\": {\"community_id\": 115, \"customer_id\": 47502.0, \"color\": \"#584cf4\", \"hover\": \"47502.0\"}}, \"O4Kq1VZwa577rE7s8Hg7yw\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 53521.0, \"color\": \"#0f50c0\", \"hover\": \"53521.0\"}}, \"+SQZC7ws63zW22bLZOBDyw\": {\"metadata\": {\"community_id\": 401, \"customer_id\": 158455.0, \"color\": \"#10de28\", \"hover\": \"158455.0\"}}, \"9YG8veR7SSp+tcshzpdFyw\": {\"metadata\": {\"community_id\": 530, \"customer_id\": 162001.0, \"color\": \"#c2b03b\", \"hover\": \"162001.0\"}}, \"F5YJ1jose1f1KbLOiCJJyw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 83557.0, \"color\": \"#b70fc0\", \"hover\": \"83557.0\"}}, \"AHMvV8h1aOg6zyB7wC1Lyw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 144766.0, \"color\": \"#272dca\", \"hover\": \"144766.0\"}}, \"hmL/3oVWDDWUMvAK5nRkyw\": {\"metadata\": {\"community_id\": 483, \"customer_id\": 118352.0, \"color\": \"#3c6abe\", \"hover\": \"118352.0\"}}, \"oqa1czMKG9P74MWoG5iYyw\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 30572.0, \"color\": \"#c788df\", \"hover\": \"30572.0\"}}, \"/wQHIKlt0DWBWTIC94i1yw\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 107877.0, \"color\": \"#e4a1a2\", \"hover\": \"107877.0\"}}, \"rB3LvGy39n1F6H8VS0+2yw\": {\"metadata\": {\"community_id\": 515, \"customer_id\": 5933.0, \"color\": \"#8b19db\", \"hover\": \"5933.0\"}}, \"wvKwvzhvGsDMWXfZrSC8yw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 134450.0, \"color\": \"#62fab8\", \"hover\": \"134450.0\"}}, \"8hQSZ2PIYIyZV8i1r/zwyw\": {\"metadata\": {\"community_id\": 419, \"customer_id\": 102615.0, \"color\": \"#ee82a4\", \"hover\": \"102615.0\"}}, \"QnZalRKtW4dpzpj2+KDzyw\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 72164.0, \"color\": \"#cf4ceb\", \"hover\": \"72164.0\"}}, \"/EfEBO3c5f0+d80AqXQBzA\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 140563.0, \"color\": \"#f06655\", \"hover\": \"140563.0\"}}, \"BmpnjQD2BpL61dVZceomzA\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 172414.0, \"color\": \"#ee8afd\", \"hover\": \"172414.0\"}}, \"gbLXXnl675hHRZYXyW0pzA\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 55400.0, \"color\": \"#bdea14\", \"hover\": \"55400.0\"}}, \"AM3uwVnDG1KnTdlX1elJzA\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 156731.0, \"color\": \"#f31347\", \"hover\": \"156731.0\"}}, \"A5KONIHSVOBCk9kmkPF9zA\": {\"metadata\": {\"community_id\": 260, \"customer_id\": 44547.0, \"color\": \"#b344d3\", \"hover\": \"44547.0\"}}, \"KY7SDv55+3dlAQFrfzmPzA\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 194239.0, \"color\": \"#3ef95f\", \"hover\": \"194239.0\"}}, \"2WZ+QLWazLW8nSczXoOlzA\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 185835.0, \"color\": \"#9cdc65\", \"hover\": \"185835.0\"}}, \"8+ZNPAfLfJ4E3rqIsOm3zA\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 61448.0, \"color\": \"#e7419d\", \"hover\": \"61448.0\"}}, \"W259ly2a2z+n+NPO0gK6zA\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 136813.0, \"color\": \"#3ef95f\", \"hover\": \"136813.0\"}}, \"Vt717tNeUr26Ht7uz3W6zA\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 6861.0, \"color\": \"#81fdc7\", \"hover\": \"6861.0\"}}, \"pLV1jlhExMm2ObkllrzYzA\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 154118.0, \"color\": \"#3a92b5\", \"hover\": \"154118.0\"}}, \"Pp3qG3oSNALuUCiYsoPszA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 156285.0, \"color\": \"#272dca\", \"hover\": \"156285.0\"}}, \"4fsPI0x1OUVboOOVA84FzQ\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 59540.0, \"color\": \"#ef7529\", \"hover\": \"59540.0\"}}, \"qLy1jkLTCyqKit0JxLE2zQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 31826.0, \"color\": \"#5dca06\", \"hover\": \"31826.0\"}}, \"pQzwAom3bwB92iB1vA83zQ\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 114673.0, \"color\": \"#b2e3a4\", \"hover\": \"114673.0\"}}, \"WcjDyJCvaIKJKcpprPVPzQ\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 137267.0, \"color\": \"#a41adf\", \"hover\": \"137267.0\"}}, \"tX0B7WfMBbtslZFb0IpizQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 157864.0, \"color\": \"#32bc93\", \"hover\": \"157864.0\"}}, \"1iphEBC8RewWM71m3w1mzQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 92588.0, \"color\": \"#e5e372\", \"hover\": \"92588.0\"}}, \"VIllveNwdGr1N7Obls5ozQ\": {\"metadata\": {\"community_id\": 71, \"customer_id\": 649.0, \"color\": \"#58c541\", \"hover\": \"649.0\"}}, \"/2BwrR19KATXpaXvJxGPzQ\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 179970.0, \"color\": \"#b4ea8c\", \"hover\": \"179970.0\"}}, \"M8PtUDh0BZnkoIFUB3PAzQ\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 58962.0, \"color\": \"#f963e8\", \"hover\": \"58962.0\"}}, \"L2tB1n1pURXM5J79efXQzQ\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 165843.0, \"color\": \"#b5d851\", \"hover\": \"165843.0\"}}, \"kWWat8VAJru0KAH35zPSzQ\": {\"metadata\": {\"community_id\": 221, \"customer_id\": 109103.0, \"color\": \"#e1da87\", \"hover\": \"109103.0\"}}, \"h50AAX/nuP5rE/W++FALzg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 149202.0, \"color\": \"#b3df71\", \"hover\": \"149202.0\"}}, \"WSYFeSzGx7LhdNhRlOcfzg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 27433.0, \"color\": \"#10d82f\", \"hover\": \"27433.0\"}}, \"49HrxjOtiYvNOAd8M5Mqzg\": {\"metadata\": {\"community_id\": 548, \"customer_id\": 144455.0, \"color\": \"#cbd569\", \"hover\": \"144455.0\"}}, \"NbdJmnny6VadnVE/Q5dqzg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 20661.0, \"color\": \"#92e5be\", \"hover\": \"20661.0\"}}, \"265feNjxTzIMZ8+BKwy4zg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 20600.0, \"color\": \"#b70fc0\", \"hover\": \"20600.0\"}}, \"b8fpnzCB7pOsbIrJNam9zg\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 160587.0, \"color\": \"#bdea14\", \"hover\": \"160587.0\"}}, \"sbcB52eztAxnw3afxfrTzg\": {\"metadata\": {\"community_id\": 307, \"customer_id\": 16405.0, \"color\": \"#995acd\", \"hover\": \"16405.0\"}}, \"13NDORsV0NBpE78voJX8zg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 189574.0, \"color\": \"#32bc93\", \"hover\": \"189574.0\"}}, \"jIVsa9D/kpFcPilmWa4Hzw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 182455.0, \"color\": \"#b70fc0\", \"hover\": \"182455.0\"}}, \"x9l1iZoSvc1rG7jjV28Vzw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 104025.0, \"color\": \"#272dca\", \"hover\": \"104025.0\"}}, \"F6YNnTWNiTfmQxsIu88kzw\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 116207.0, \"color\": \"#98d0f5\", \"hover\": \"116207.0\"}}, \"D9lUdaW8Ta/z+9ifk2Auzw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 15431.0, \"color\": \"#33b9bc\", \"hover\": \"15431.0\"}}, \"CIEk6rJ4pzoVNKDg6ks8zw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 3243.0, \"color\": \"#272dca\", \"hover\": \"3243.0\"}}, \"AohI5f/BkoR8P/9gC7RUzw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 177848.0, \"color\": \"#31ab2f\", \"hover\": \"177848.0\"}}, \"6jNVAJhI7DMcPITe0gOFzw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 13138.0, \"color\": \"#b70fc0\", \"hover\": \"13138.0\"}}, \"zANMFHvfDmlolnGwAg6Hzw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 182341.0, \"color\": \"#ed1e1d\", \"hover\": \"182341.0\"}}, \"PXiKkcZA6z5z6mJS/wWizw\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 2878.0, \"color\": \"#c32841\", \"hover\": \"2878.0\"}}, \"OYQjpxDqwMzwSyX7tb6pzw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 165276.0, \"color\": \"#31ab2f\", \"hover\": \"165276.0\"}}, \"+5Bq+EbFrtKUOjGDiim7zw\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 196437.0, \"color\": \"#f091c1\", \"hover\": \"196437.0\"}}, \"Sa3pdyOhhVraK3JVehnezw\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 159734.0, \"color\": \"#2f82a1\", \"hover\": \"159734.0\"}}, \"3OV376PlBaoLTaGgahvzzw\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 92622.0, \"color\": \"#f1fc86\", \"hover\": \"92622.0\"}}, \"KAOYRnIa8jpoVsl6LEwC0A\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 192040.0, \"color\": \"#7aefcb\", \"hover\": \"192040.0\"}}, \"B/PZxF0sz0DmnH62c7wt0A\": {\"metadata\": {\"community_id\": 46, \"customer_id\": 113574.0, \"color\": \"#d8441b\", \"hover\": \"113574.0\"}}, \"XiC7FH1g29T+yR+JgexY0A\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 84884.0, \"color\": \"#b3df71\", \"hover\": \"84884.0\"}}, \"cCmG6cRvUcKWgi1UAH9g0A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 32821.0, \"color\": \"#b70fc0\", \"hover\": \"32821.0\"}}, \"XQnT/93qqR6fC3YyjNB40A\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 38246.0, \"color\": \"#e4f354\", \"hover\": \"38246.0\"}}, \"olMAQl+wwkOfD/g3eOeP0A\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 58716.0, \"color\": \"#7aefcb\", \"hover\": \"58716.0\"}}, \"UIT/M2z73PBRJtArUS6Z0A\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 16545.0, \"color\": \"#5831d3\", \"hover\": \"16545.0\"}}, \"YcbMC6X7w3/ZbkRqHX2Z0A\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 102518.0, \"color\": \"#d2ab67\", \"hover\": \"102518.0\"}}, \"T7Bbq1+NkLmIA0EL6tys0A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 52686.0, \"color\": \"#62fab8\", \"hover\": \"52686.0\"}}, \"EARZoqhcKM63G99flR3A0A\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 173944.0, \"color\": \"#a41adf\", \"hover\": \"173944.0\"}}, \"voyyn7epEtNpu6dfPTzP0A\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 142939.0, \"color\": \"#7bfa46\", \"hover\": \"142939.0\"}}, \"r1iREzOib40Fq3xYyqDR0A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 18474.0, \"color\": \"#c12abd\", \"hover\": \"18474.0\"}}, \"BA9DMxaYbrqyBsAxrrvV0A\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 64989.0, \"color\": \"#f31347\", \"hover\": \"64989.0\"}}, \"r+zf57mLB0xmGAqQxt7d0A\": {\"metadata\": {\"community_id\": 348, \"customer_id\": 118969.0, \"color\": \"#eb9ca2\", \"hover\": \"118969.0\"}}, \"DuKECx6iz87ej86wHmrk0A\": {\"metadata\": {\"community_id\": 229, \"customer_id\": 121762.0, \"color\": \"#3576d4\", \"hover\": \"121762.0\"}}, \"jOEsAhonxltEPvV5C/3u0A\": {\"metadata\": {\"community_id\": 340, \"customer_id\": 58563.0, \"color\": \"#4d47e8\", \"hover\": \"58563.0\"}}, \"Y8BKm9HLQuNZAEIUJgv30A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 12569.0, \"color\": \"#b58c2b\", \"hover\": \"12569.0\"}}, \"ecEqhLbyDQgEYoVuFzsD0Q\": {\"metadata\": {\"community_id\": 48, \"customer_id\": 108655.0, \"color\": \"#13d732\", \"hover\": \"108655.0\"}}, \"5l+nWShQIHU/EwPzCPsU0Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 10962.0, \"color\": \"#272dca\", \"hover\": \"10962.0\"}}, \"cCAe70sXGQWYb/OuJM5A0Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 84696.0, \"color\": \"#9ee08f\", \"hover\": \"84696.0\"}}, \"JARaDTo+BmuRHMBD03pY0Q\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 4849.0, \"color\": \"#75fe54\", \"hover\": \"4849.0\"}}, \"iKUw4Z9w96D6wQtz5rpe0Q\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 171615.0, \"color\": \"#4bdb47\", \"hover\": \"171615.0\"}}, \"Rv98/nwr9nwQ+Y9/itx00Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 141661.0, \"color\": \"#272dca\", \"hover\": \"141661.0\"}}, \"OkkGhjLgMjJNiAwrkAWG0Q\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 117532.0, \"color\": \"#7f4bec\", \"hover\": \"117532.0\"}}, \"T6FkEoQFGILCp+hA8XSk0Q\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 84480.0, \"color\": \"#2795b1\", \"hover\": \"84480.0\"}}, \"zA4lrOvjqTMBfQi5rlOm0Q\": {\"metadata\": {\"community_id\": 307, \"customer_id\": 5938.0, \"color\": \"#995acd\", \"hover\": \"5938.0\"}}, \"eaQCvP/g9Lp8gpeddHG80Q\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 32798.0, \"color\": \"#d2ab67\", \"hover\": \"32798.0\"}}, \"5iSNxr/itO4I17fTbTbe0Q\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 131762.0, \"color\": \"#f957df\", \"hover\": \"131762.0\"}}, \"poVGGFYyF0gYXNCFJkQI0g\": {\"metadata\": {\"community_id\": 88, \"customer_id\": 158923.0, \"color\": \"#59e82a\", \"hover\": \"158923.0\"}}, \"NuW0BVMZ00PqaZsud0QN0g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 147412.0, \"color\": \"#f8a36c\", \"hover\": \"147412.0\"}}, \"c5qReOIC8YJQNGm3SDsY0g\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 67979.0, \"color\": \"#04dbb3\", \"hover\": \"67979.0\"}}, \"RGjlmlPAkXa/tI12Y6I10g\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 60203.0, \"color\": \"#c36a1f\", \"hover\": \"60203.0\"}}, \"Ql8yEBGa1dW1kesET0c40g\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 162440.0, \"color\": \"#dfd779\", \"hover\": \"162440.0\"}}, \"DLTeNonoRsfy6pTZgfM80g\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 103232.0, \"color\": \"#1e5cf7\", \"hover\": \"103232.0\"}}, \"RY9tUqtEDoNHUOJc5OdH0g\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 54033.0, \"color\": \"#dfd779\", \"hover\": \"54033.0\"}}, \"5I/RxqOeoSM2vBkJK5xS0g\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 92237.0, \"color\": \"#aad6ea\", \"hover\": \"92237.0\"}}, \"3oN+IYemYxHjZVZXo2ll0g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 47109.0, \"color\": \"#b70fc0\", \"hover\": \"47109.0\"}}, \"lI/eft/RzEEhzaigNox70g\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 4392.0, \"color\": \"#e3a953\", \"hover\": \"4392.0\"}}, \"cTFSFZ6L+4e7+kAv2OOd0g\": {\"metadata\": {\"community_id\": 466, \"customer_id\": 191990.0, \"color\": \"#f2806d\", \"hover\": \"191990.0\"}}, \"ErkzyHpetFkkZkbpDTyo0g\": {\"metadata\": {\"community_id\": 523, \"customer_id\": 70420.0, \"color\": \"#f3b57f\", \"hover\": \"70420.0\"}}, \"45D1y/f+Hloq2UfDPISt0g\": {\"metadata\": {\"community_id\": 454, \"customer_id\": 190696.0, \"color\": \"#eda98f\", \"hover\": \"190696.0\"}}, \"skeECVWpQl8ufmsJtEK60g\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 33490.0, \"color\": \"#a2e3bf\", \"hover\": \"33490.0\"}}, \"Y6tU5iNEDLF6oW77OnXC0g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 177565.0, \"color\": \"#62fab8\", \"hover\": \"177565.0\"}}, \"xGYjzaN7LnHvZGeHcLTD0g\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 199233.0, \"color\": \"#de86e2\", \"hover\": \"199233.0\"}}, \"kR1PDrgpN92D90eUdVDO0g\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 66784.0, \"color\": \"#81a8e3\", \"hover\": \"66784.0\"}}, \"wB8RZyqeuxAqTlG1x5Ld0g\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 67489.0, \"color\": \"#ed1e1d\", \"hover\": \"67489.0\"}}, \"v4fMIOFhdBvfKZW3Xyfg0g\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 117387.0, \"color\": \"#e275e7\", \"hover\": \"117387.0\"}}, \"ntw3gxP9i//bs6Ho95X20g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 119107.0, \"color\": \"#eba59b\", \"hover\": \"119107.0\"}}, \"/bA9vVOFPjpACVu2Rb8t0w\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 194377.0, \"color\": \"#b70fc0\", \"hover\": \"194377.0\"}}, \"rWsZvRAvM0Pq4qaN4/BJ0w\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 179569.0, \"color\": \"#fcce99\", \"hover\": \"179569.0\"}}, \"T21csR2tiZvqkP3PvXdr0w\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 14317.0, \"color\": \"#5937d3\", \"hover\": \"14317.0\"}}, \"VkT3OOB9wI/n9zlt+Ulz0w\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 17754.0, \"color\": \"#5dca06\", \"hover\": \"17754.0\"}}, \"MG00eunxEmm1lYvM3jWA0w\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 29697.0, \"color\": \"#d3da39\", \"hover\": \"29697.0\"}}, \"lWV7dsxEgrpNNl2b42CB0w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 33818.0, \"color\": \"#6bdba1\", \"hover\": \"33818.0\"}}, \"81+dJ4sVb2xeMz9c6Y6C0w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 183275.0, \"color\": \"#92e5be\", \"hover\": \"183275.0\"}}, \"5md/MVOxk6Lw2Tjacf6D0w\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 177497.0, \"color\": \"#b58c2b\", \"hover\": \"177497.0\"}}, \"DhnulpEPg5r8judUu1mQ0w\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 182855.0, \"color\": \"#09ef53\", \"hover\": \"182855.0\"}}, \"CsWQSLgxYtAGh2euTYqX0w\": {\"metadata\": {\"community_id\": 184, \"customer_id\": 22424.0, \"color\": \"#3554d0\", \"hover\": \"22424.0\"}}, \"lniOuhFsg10LXewtmrul0w\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 161208.0, \"color\": \"#eba59b\", \"hover\": \"161208.0\"}}, \"Nxf6Dl2TY1lZ+tAbB1jI0w\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 171079.0, \"color\": \"#31ab2f\", \"hover\": \"171079.0\"}}, \"UEABfE8qoDx/6OkC1Vzl0w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 92481.0, \"color\": \"#78e968\", \"hover\": \"92481.0\"}}, \"We/y8kKlzK1iY53AKV7n0w\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 140076.0, \"color\": \"#59e09f\", \"hover\": \"140076.0\"}}, \"O16OCVveV3Dc1jkzE8jn0w\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 8648.0, \"color\": \"#31ab2f\", \"hover\": \"8648.0\"}}, \"x7rARw2qNlJ5MASYYmzq0w\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 45087.0, \"color\": \"#272dca\", \"hover\": \"45087.0\"}}, \"u9+k6jrH+a5b7/DyIKv50w\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 131230.0, \"color\": \"#df7e88\", \"hover\": \"131230.0\"}}, \"aLmsFb/9Xz3M4vYoXwMK1A\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 145114.0, \"color\": \"#81a8e3\", \"hover\": \"145114.0\"}}, \"/a9HU16WypmlvPBzMlAP1A\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 25782.0, \"color\": \"#cf8a18\", \"hover\": \"25782.0\"}}, \"ECrXW4TwKkiq0yhDSQsg1A\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 110601.0, \"color\": \"#8c25b7\", \"hover\": \"110601.0\"}}, \"2CCWZd0r/q3XhcVZAzQo1A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 116710.0, \"color\": \"#b58c2b\", \"hover\": \"116710.0\"}}, \"gfaga5/1riUiud+prjow1A\": {\"metadata\": {\"community_id\": 535, \"customer_id\": 128884.0, \"color\": \"#71e7f2\", \"hover\": \"128884.0\"}}, \"VDofsUx8MXnX74THtK8+1A\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 124246.0, \"color\": \"#76c7fc\", \"hover\": \"124246.0\"}}, \"mm6xCo8N6tJFTZMAe4VI1A\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 70189.0, \"color\": \"#31ab2f\", \"hover\": \"70189.0\"}}, \"9nCaeCCDiSnH0pGj9QBJ1A\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 188195.0, \"color\": \"#d8c96d\", \"hover\": \"188195.0\"}}, \"rdcU0794FRm7pA510uJR1A\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 50465.0, \"color\": \"#272dca\", \"hover\": \"50465.0\"}}, \"dBYlPbB0AjpFSwNcAhiN1A\": {\"metadata\": {\"community_id\": 402, \"customer_id\": 104364.0, \"color\": \"#7fe1c7\", \"hover\": \"104364.0\"}}, \"HSXYunXnU735XSqPVXaV1A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 141731.0, \"color\": \"#0d14dc\", \"hover\": \"141731.0\"}}, \"2hqjTmv4MpPdFdsOI/OY1A\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 51399.0, \"color\": \"#d8c96d\", \"hover\": \"51399.0\"}}, \"1eT/3ivP8O9hgbVBkGCn1A\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 190106.0, \"color\": \"#fa6270\", \"hover\": \"190106.0\"}}, \"IaImK3Wfmh8zprJ17Fuz1A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 38137.0, \"color\": \"#0d14dc\", \"hover\": \"38137.0\"}}, \"eVwUCQYDufTRiMXd3gS21A\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 189231.0, \"color\": \"#f091c1\", \"hover\": \"189231.0\"}}, \"r1jCxdcEbk+++Tqa6evO1A\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 197400.0, \"color\": \"#d53e3e\", \"hover\": \"197400.0\"}}, \"z/TAoZvzjf2wvlusVBnV1A\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 61946.0, \"color\": \"#7eddd4\", \"hover\": \"61946.0\"}}, \"b0c1d26mJFr1jSCe2avt1A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 179167.0, \"color\": \"#62fab8\", \"hover\": \"179167.0\"}}, \"/mv1CYmTOO/we7OK54bu1A\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 155850.0, \"color\": \"#eda379\", \"hover\": \"155850.0\"}}, \"rUmPGQXYQ01oDAOVKdAA1Q\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 139926.0, \"color\": \"#f73d92\", \"hover\": \"139926.0\"}}, \"wynyTIsH6t/BOa/n3aEe1Q\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 122523.0, \"color\": \"#b1afe7\", \"hover\": \"122523.0\"}}, \"qcL9ytXQGVZEzfmjivkj1Q\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 158018.0, \"color\": \"#10f433\", \"hover\": \"158018.0\"}}, \"AAoMjjx0U7e1swPFxDgm1Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 106960.0, \"color\": \"#1bd89a\", \"hover\": \"106960.0\"}}, \"jl+NiomZ13QCt0ovVOEn1Q\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 107398.0, \"color\": \"#5dedcd\", \"hover\": \"107398.0\"}}, \"ZzXKeIKTxEylrN333Zct1Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 195244.0, \"color\": \"#272dca\", \"hover\": \"195244.0\"}}, \"l2Q/oIYm74GDWIiJ0C031Q\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 189504.0, \"color\": \"#2795b1\", \"hover\": \"189504.0\"}}, \"sTsjjiN8dBDEMqtx8wtk1Q\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 15623.0, \"color\": \"#f963e8\", \"hover\": \"15623.0\"}}, \"gn2FcY9/SrQeM6Fz2Rlu1Q\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 184748.0, \"color\": \"#ee8afd\", \"hover\": \"184748.0\"}}, \"UBvzeFzQMqnE1mhmQnp41Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 18576.0, \"color\": \"#c12abd\", \"hover\": \"18576.0\"}}, \"pw1Urc5iVfS4y0uLi0eh1Q\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 67261.0, \"color\": \"#abf295\", \"hover\": \"67261.0\"}}, \"2kwqkjb20NhFUxxC1Tm51Q\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 150091.0, \"color\": \"#a7d52c\", \"hover\": \"150091.0\"}}, \"WEDPEOtHnqBwx2mcLMq81Q\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 107633.0, \"color\": \"#75fa8b\", \"hover\": \"107633.0\"}}, \"fxKELfeW2mmDU7Q7omK/1Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 184750.0, \"color\": \"#1bd89a\", \"hover\": \"184750.0\"}}, \"AC/zkftBMezqxbBtqK7W1Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 262.0, \"color\": \"#9ee08f\", \"hover\": \"262.0\"}}, \"iGZuWn8fO2VU2b3SzmHm1Q\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 36612.0, \"color\": \"#3c74fc\", \"hover\": \"36612.0\"}}, \"KT2hNItJ3A+7HnNu1Izt1Q\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 55135.0, \"color\": \"#99ef99\", \"hover\": \"55135.0\"}}, \"csFxYhlUWSAO8d1wOmf21Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 147154.0, \"color\": \"#c12abd\", \"hover\": \"147154.0\"}}, \"iJ1xPU/tcdkxseJn58AG1g\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 72133.0, \"color\": \"#45f210\", \"hover\": \"72133.0\"}}, \"2w6gQx/64oNIN6vPSJkq1g\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 59991.0, \"color\": \"#2795b1\", \"hover\": \"59991.0\"}}, \"HX5tAgQbmKUs5gGEs/gx1g\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 33101.0, \"color\": \"#1807f2\", \"hover\": \"33101.0\"}}, \"OSUbNnz8594/TF66ul1B1g\": {\"metadata\": {\"community_id\": 324, \"customer_id\": 170148.0, \"color\": \"#7ae9e9\", \"hover\": \"170148.0\"}}, \"lTy5ajnv+ybkdhf/wEdD1g\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 164808.0, \"color\": \"#b84038\", \"hover\": \"164808.0\"}}, \"UxZn34sPt6+EihD5AG9Y1g\": {\"metadata\": {\"community_id\": 542, \"customer_id\": 158560.0, \"color\": \"#4789f2\", \"hover\": \"158560.0\"}}, \"Smz1QIvP657gJFJUHLty1g\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 135981.0, \"color\": \"#0d14dc\", \"hover\": \"135981.0\"}}, \"HanEWAQVvp92czeWbS1z1g\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 141443.0, \"color\": \"#a7e29b\", \"hover\": \"141443.0\"}}, \"9nt26scFmwAoHlqchE2Q1g\": {\"metadata\": {\"community_id\": 218, \"customer_id\": 184922.0, \"color\": \"#d54da6\", \"hover\": \"184922.0\"}}, \"SdLACOA5NHzMq25kxSWf1g\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 66880.0, \"color\": \"#45f210\", \"hover\": \"66880.0\"}}, \"0mCvCIbvhxPg63+1mNGf1g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 28330.0, \"color\": \"#62fab8\", \"hover\": \"28330.0\"}}, \"nIgO2SB8550Bt4Vxy2bC1g\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 68795.0, \"color\": \"#c7de5b\", \"hover\": \"68795.0\"}}, \"gvILdsGxoPhTFjabAP3M1g\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 62248.0, \"color\": \"#9ee08f\", \"hover\": \"62248.0\"}}, \"7ZFgUu+P8FAztoZ9QRHP1g\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 24470.0, \"color\": \"#81a8e3\", \"hover\": \"24470.0\"}}, \"eJfOofg/VkU3qdrZNfHY1g\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 147321.0, \"color\": \"#f6a0ef\", \"hover\": \"147321.0\"}}, \"tzXhsMltVbaVhDOHG+D51g\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 130632.0, \"color\": \"#d8dd94\", \"hover\": \"130632.0\"}}, \"3SYvUVF2OJ2vB3PYtfYK1w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 154830.0, \"color\": \"#99ef99\", \"hover\": \"154830.0\"}}, \"6uEIF2c/sKN3ohddsWgT1w\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 167295.0, \"color\": \"#378cc8\", \"hover\": \"167295.0\"}}, \"ZUTxzdQNHeX1I/vY7OUf1w\": {\"metadata\": {\"community_id\": 202, \"customer_id\": 56890.0, \"color\": \"#e1c082\", \"hover\": \"56890.0\"}}, \"+CMr8Kod/3DtGz10hUou1w\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 15392.0, \"color\": \"#a6c704\", \"hover\": \"15392.0\"}}, \"S5Ym/doKX4FTQNjJEvtd1w\": {\"metadata\": {\"community_id\": 420, \"customer_id\": 64383.0, \"color\": \"#89e0bd\", \"hover\": \"64383.0\"}}, \"V42JQgL0mjSlYRIaBgRe1w\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 92787.0, \"color\": \"#1bc070\", \"hover\": \"92787.0\"}}, \"mnkauRSDn2xt+0K5bWlj1w\": {\"metadata\": {\"community_id\": 298, \"customer_id\": 22836.0, \"color\": \"#5838b6\", \"hover\": \"22836.0\"}}, \"51sIXvwdb1xZwp6D19vL1w\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 183713.0, \"color\": \"#b58c2b\", \"hover\": \"183713.0\"}}, \"w5zZguOil64NNAAULQPU1w\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 139256.0, \"color\": \"#d53e3e\", \"hover\": \"139256.0\"}}, \"YXIjTDE6sJvw8Ctchvbo1w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 114298.0, \"color\": \"#99ef99\", \"hover\": \"114298.0\"}}, \"rfBcOTnoGOUeM+2vyb/r1w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 81985.0, \"color\": \"#78e968\", \"hover\": \"81985.0\"}}, \"GfyAUcsLzhVQEJH+riPw1w\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 193036.0, \"color\": \"#99b5fc\", \"hover\": \"193036.0\"}}, \"D4NrVD7YBPxfp97z+4wK2A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 158369.0, \"color\": \"#b70fc0\", \"hover\": \"158369.0\"}}, \"ehabqbw4OQYvR5CymUIO2A\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 25860.0, \"color\": \"#8de1ae\", \"hover\": \"25860.0\"}}, \"bDI9Og953C9gM6mQqrsd2A\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 147488.0, \"color\": \"#49de50\", \"hover\": \"147488.0\"}}, \"GolMlD0lgvRnJJ+TP7Iy2A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 143919.0, \"color\": \"#62fab8\", \"hover\": \"143919.0\"}}, \"RW96NHBcsbA7UIpMwIlD2A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 196926.0, \"color\": \"#33b9bc\", \"hover\": \"196926.0\"}}, \"TmqXuZAq3jcxGFGloddE2A\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 91953.0, \"color\": \"#8bd742\", \"hover\": \"91953.0\"}}, \"7D9a/qbeWge1uN9fmApJ2A\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 88964.0, \"color\": \"#eba59b\", \"hover\": \"88964.0\"}}, \"wKQEKDM6bFf7YQhZ0rV32A\": {\"metadata\": {\"community_id\": 435, \"customer_id\": 34074.0, \"color\": \"#b330ae\", \"hover\": \"34074.0\"}}, \"eSgl7OxOKLGg4wMgFP+C2A\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 84087.0, \"color\": \"#8e21cf\", \"hover\": \"84087.0\"}}, \"X3iS8Dq3cq8It+tMVZGR2A\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 116642.0, \"color\": \"#45f210\", \"hover\": \"116642.0\"}}, \"opICajuz4lb9z9H3bjGb2A\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 195134.0, \"color\": \"#8df20e\", \"hover\": \"195134.0\"}}, \"Sy2muxkb3YKQEB3A+UWj2A\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 93834.0, \"color\": \"#5dfc9d\", \"hover\": \"93834.0\"}}, \"h+D0DMg6qkCwcplM2Gqo2A\": {\"metadata\": {\"community_id\": 549, \"customer_id\": 77690.0, \"color\": \"#b16de3\", \"hover\": \"77690.0\"}}, \"jr/tmb8gfujXSG5D58/n2A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 114932.0, \"color\": \"#b58c2b\", \"hover\": \"114932.0\"}}, \"AwPAXKgosGfgMgf3zbXw2A\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 126109.0, \"color\": \"#e1aa5b\", \"hover\": \"126109.0\"}}, \"nks5WSx4QKKAPQCWyIn32A\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 143021.0, \"color\": \"#f9c58d\", \"hover\": \"143021.0\"}}, \"TmA41kwRYQQsZVMXIhz82A\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 167263.0, \"color\": \"#a60aef\", \"hover\": \"167263.0\"}}, \"X2tMjZDabILeP8FJTJQK2Q\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 21973.0, \"color\": \"#5dca06\", \"hover\": \"21973.0\"}}, \"TzJZOxXPxEKpEtCKqcAY2Q\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 136945.0, \"color\": \"#3b61cf\", \"hover\": \"136945.0\"}}, \"8ZgtUC5oiX3t5uq7NRAe2Q\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 26248.0, \"color\": \"#0cd5fa\", \"hover\": \"26248.0\"}}, \"Xyt8E9Vly0yzp9vAum9d2Q\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 133799.0, \"color\": \"#b21c5c\", \"hover\": \"133799.0\"}}, \"QliDnvMJ5gshMhitECBf2Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 23498.0, \"color\": \"#f6a0ef\", \"hover\": \"23498.0\"}}, \"0dPQX4HZuIcEoHZnu61i2Q\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 48579.0, \"color\": \"#99ef99\", \"hover\": \"48579.0\"}}, \"cHPtw67C6L5578ABzu9m2Q\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 61012.0, \"color\": \"#33b9bc\", \"hover\": \"61012.0\"}}, \"CJLO+byWnEBKLAAlusiW2Q\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 133985.0, \"color\": \"#df7e88\", \"hover\": \"133985.0\"}}, \"+lVxYLjIFO+Ycwih/VOi2Q\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 111576.0, \"color\": \"#1e5cf7\", \"hover\": \"111576.0\"}}, \"aobPH6KJJmtGIvnX9Mes2Q\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 4422.0, \"color\": \"#e1de3c\", \"hover\": \"4422.0\"}}, \"lvthtbal/X6FAsz6GwDo2Q\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 109820.0, \"color\": \"#f73d92\", \"hover\": \"109820.0\"}}, \"AOZ6RzZdEBiJwiF5Ba7v2Q\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 50213.0, \"color\": \"#e0b23c\", \"hover\": \"50213.0\"}}, \"M28X/3X9XhtMKEhs+6oP2g\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 32261.0, \"color\": \"#32bc93\", \"hover\": \"32261.0\"}}, \"pTMybSugouBc0nZLe/g+2g\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 46773.0, \"color\": \"#c7de5b\", \"hover\": \"46773.0\"}}, \"PPSZWersRoR/CWl2j5xK2g\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 183525.0, \"color\": \"#a41adf\", \"hover\": \"183525.0\"}}, \"l0YHJYM4046cMOuZp7BR2g\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 95283.0, \"color\": \"#f6a0ef\", \"hover\": \"95283.0\"}}, \"DaTobGDBd8qNG33vbIxl2g\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 38655.0, \"color\": \"#b32f69\", \"hover\": \"38655.0\"}}, \"P84WP5DJo+ONWAPG0AZm2g\": {\"metadata\": {\"community_id\": 521, \"customer_id\": 103169.0, \"color\": \"#86dfc8\", \"hover\": \"103169.0\"}}, \"ORocJgkETt4cgx7zJX1m2g\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 130126.0, \"color\": \"#e66d6e\", \"hover\": \"130126.0\"}}, \"1OrWmmA6yMO4aEFHG0dy2g\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 61175.0, \"color\": \"#9a62ce\", \"hover\": \"61175.0\"}}, \"xabMDvWi51n0Cul936172g\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 136516.0, \"color\": \"#80df70\", \"hover\": \"136516.0\"}}, \"Qj3rnYYTG625wVOHb1OG2g\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 175981.0, \"color\": \"#33aac6\", \"hover\": \"175981.0\"}}, \"BzxNAuFyU0u79vAaduSj2g\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 99169.0, \"color\": \"#f27280\", \"hover\": \"99169.0\"}}, \"aNKtA7iq1FYEJ6bLoj+s2g\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 140914.0, \"color\": \"#d16060\", \"hover\": \"140914.0\"}}, \"5ecY7ptJ6w2uSJ548yiw2g\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 45344.0, \"color\": \"#e4e59e\", \"hover\": \"45344.0\"}}, \"F1YGf+WOJFyqnwxZfAmy2g\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 40960.0, \"color\": \"#4bdb47\", \"hover\": \"40960.0\"}}, \"TO1aIK0+tIq16RepokHF2g\": {\"metadata\": {\"community_id\": 550, \"customer_id\": 116885.0, \"color\": \"#69e9c3\", \"hover\": \"116885.0\"}}, \"YHY1mcZdSq+ai241CebG2g\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 142837.0, \"color\": \"#83aedd\", \"hover\": \"142837.0\"}}, \"RdHJ6h70jpiHt3m/vAPL2g\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 134586.0, \"color\": \"#9a62ce\", \"hover\": \"134586.0\"}}, \"+ko4YzNx60P+2xghNILs2g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 156411.0, \"color\": \"#eba59b\", \"hover\": \"156411.0\"}}, \"O61qmbeWRO9KIoKQ+zT/2g\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 180740.0, \"color\": \"#f3585b\", \"hover\": \"180740.0\"}}, \"UWN2fvz659JGxKe9R1s92w\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 141420.0, \"color\": \"#87cefd\", \"hover\": \"141420.0\"}}, \"MVxpMOd/YHo81uKU8J1D2w\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 65570.0, \"color\": \"#9ee08f\", \"hover\": \"65570.0\"}}, \"X7rqqVePj30IkrUqT51Y2w\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 148911.0, \"color\": \"#f29712\", \"hover\": \"148911.0\"}}, \"qjM9bPDJ6Esfd1jc9Zuv2w\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 67805.0, \"color\": \"#b32f69\", \"hover\": \"67805.0\"}}, \"RSkzRcKCWXkgyP3wyubL2w\": {\"metadata\": {\"community_id\": 439, \"customer_id\": 140548.0, \"color\": \"#6474e9\", \"hover\": \"140548.0\"}}, \"HLd4WCwL+lRguGJbPDTi2w\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 137191.0, \"color\": \"#04d838\", \"hover\": \"137191.0\"}}, \"89IPAn8CnXhoaYUJqaDq2w\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 176087.0, \"color\": \"#f8a36c\", \"hover\": \"176087.0\"}}, \"FvxwjKG0LXhMuBY9DSns2w\": {\"metadata\": {\"community_id\": 145, \"customer_id\": 106749.0, \"color\": \"#78cf2f\", \"hover\": \"106749.0\"}}, \"5uLj1jBgYrE5DbDDhJXy2w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 141653.0, \"color\": \"#33b9bc\", \"hover\": \"141653.0\"}}, \"TFGivlNpyvLKfXPJLvfz2w\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 25459.0, \"color\": \"#14c9e9\", \"hover\": \"25459.0\"}}, \"eodI+fnS3UzxZQs/glMJ3A\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 126160.0, \"color\": \"#e66d6e\", \"hover\": \"126160.0\"}}, \"csgs7Ozxjop4sTVUvthD3A\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 143524.0, \"color\": \"#f06655\", \"hover\": \"143524.0\"}}, \"/3tQ7PX7u87uXADeI4RE3A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 43172.0, \"color\": \"#62fab8\", \"hover\": \"43172.0\"}}, \"ZfGEvBA0I2qr5e3lQr9r3A\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 155383.0, \"color\": \"#961ac7\", \"hover\": \"155383.0\"}}, \"rL3sQ4Ur3tQNivSu+s+A3A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 21366.0, \"color\": \"#0d14dc\", \"hover\": \"21366.0\"}}, \"LSmb834QdrGseWhJgOqB3A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 16896.0, \"color\": \"#62fab8\", \"hover\": \"16896.0\"}}, \"qCdC3QwLjV6GYNuI6++H3A\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 83086.0, \"color\": \"#dfd779\", \"hover\": \"83086.0\"}}, \"luYw49ThXPmJHnnREMyJ3A\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 131426.0, \"color\": \"#e311d5\", \"hover\": \"131426.0\"}}, \"vWy0S3JkUaZezamXjZGr3A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 156878.0, \"color\": \"#62fab8\", \"hover\": \"156878.0\"}}, \"EBC83dLOPfyZ6CgyHfS33A\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 30793.0, \"color\": \"#2f82a1\", \"hover\": \"30793.0\"}}, \"n4RzrfSaNuZhs0nJCUy93A\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 3667.0, \"color\": \"#eba59b\", \"hover\": \"3667.0\"}}, \"vxqJKZeQ2Vvx7xXFybjU3A\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 191904.0, \"color\": \"#9a62ce\", \"hover\": \"191904.0\"}}, \"b5hCRi7CHNEVt5U7QPDY3A\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 180669.0, \"color\": \"#272dca\", \"hover\": \"180669.0\"}}, \"QGgfp0R2eZB+GeRcldbr3A\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 123121.0, \"color\": \"#f27249\", \"hover\": \"123121.0\"}}, \"PrFs5bxt6PWZ7A7m8WT73A\": {\"metadata\": {\"community_id\": 433, \"customer_id\": 187109.0, \"color\": \"#23bcae\", \"hover\": \"187109.0\"}}, \"rbPtcSfWqHkkTq1H9XUV3Q\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 52025.0, \"color\": \"#b3df71\", \"hover\": \"52025.0\"}}, \"aFm47kcWDzPz7Wqd9p8m3Q\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 25137.0, \"color\": \"#ade5d7\", \"hover\": \"25137.0\"}}, \"EdXT816QZBfXGmfl0EIs3Q\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 79637.0, \"color\": \"#83aedd\", \"hover\": \"79637.0\"}}, \"zn3v+4i0Sftl8cICrCEv3Q\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 156450.0, \"color\": \"#99f46c\", \"hover\": \"156450.0\"}}, \"MQPdmGkC0zRnm1rkJvU43Q\": {\"metadata\": {\"community_id\": 216, \"customer_id\": 50111.0, \"color\": \"#df9414\", \"hover\": \"50111.0\"}}, \"k+P5VcOaZtVHG+bmx8RO3Q\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 7855.0, \"color\": \"#671efa\", \"hover\": \"7855.0\"}}, \"e/a+enA4pnyYG3utbQBY3Q\": {\"metadata\": {\"community_id\": 444, \"customer_id\": 134985.0, \"color\": \"#b960d9\", \"hover\": \"134985.0\"}}, \"BZ9LMeimyr0YWPJ0IsRj3Q\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 189530.0, \"color\": \"#38cb21\", \"hover\": \"189530.0\"}}, \"pegI6X4Bu+bbTMgjISqE3Q\": {\"metadata\": {\"community_id\": 548, \"customer_id\": 167626.0, \"color\": \"#cbd569\", \"hover\": \"167626.0\"}}, \"4oguTPOWhhe1/AWJ+xWz3Q\": {\"metadata\": {\"community_id\": 417, \"customer_id\": 74582.0, \"color\": \"#2465ae\", \"hover\": \"74582.0\"}}, \"pMfrOXJD/g4uwkoIH3y23Q\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 76885.0, \"color\": \"#d36ae2\", \"hover\": \"76885.0\"}}, \"8WN1NiIQPhTV+ZS87Mq43Q\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 80011.0, \"color\": \"#dfd779\", \"hover\": \"80011.0\"}}, \"V8ksPyfaupEEfgw8dUrT3Q\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 157425.0, \"color\": \"#f0fe05\", \"hover\": \"157425.0\"}}, \"6U2XGydHRg50tnJ3g1rb3Q\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 27605.0, \"color\": \"#31ab2f\", \"hover\": \"27605.0\"}}, \"SmyQ4JHD7+SEeH4ITXT13Q\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 134367.0, \"color\": \"#10d82f\", \"hover\": \"134367.0\"}}, \"wBpP5H4NcclejiuYfAsH3g\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 27990.0, \"color\": \"#e275e7\", \"hover\": \"27990.0\"}}, \"7Lkk4/i0RsX0pZPWuSQ+3g\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 128414.0, \"color\": \"#8cf43c\", \"hover\": \"128414.0\"}}, \"ogtreaWirNMWiQt6NBNF3g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 19856.0, \"color\": \"#f8a36c\", \"hover\": \"19856.0\"}}, \"bUm8ndxdpk/K+EnRPsxM3g\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 189681.0, \"color\": \"#a372d3\", \"hover\": \"189681.0\"}}, \"ifErMyAVjoUcEphHINV83g\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 153587.0, \"color\": \"#9aa931\", \"hover\": \"153587.0\"}}, \"hKdbfGbrvmmwC8+BbLia3g\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 194923.0, \"color\": \"#6bdba1\", \"hover\": \"194923.0\"}}, \"kx3qpS4wFrfj4AUSvD273g\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 5352.0, \"color\": \"#b3df71\", \"hover\": \"5352.0\"}}, \"mcallpj5pQ42vQPCDSTb3g\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 76273.0, \"color\": \"#d8dd94\", \"hover\": \"76273.0\"}}, \"qYX/hJ1iKWEAkuu9BK/y3g\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 34749.0, \"color\": \"#78e968\", \"hover\": \"34749.0\"}}, \"wgnKCuVk0397zKbR5iz43g\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 53878.0, \"color\": \"#b58c2b\", \"hover\": \"53878.0\"}}, \"C42qArnqlgCXYV5Eb3YR3w\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 171658.0, \"color\": \"#dcc694\", \"hover\": \"171658.0\"}}, \"hMo5gNfTHyj3lOFtJAwj3w\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 53199.0, \"color\": \"#65e08d\", \"hover\": \"53199.0\"}}, \"lnsdRCpfQaAQ/sNzVzgm3w\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 28778.0, \"color\": \"#a192f1\", \"hover\": \"28778.0\"}}, \"BXpeYYaO1qQF8B0NEv4r3w\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 50020.0, \"color\": \"#9ee08f\", \"hover\": \"50020.0\"}}, \"I7yLN7s/WeYO56T867I33w\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 133486.0, \"color\": \"#b3df71\", \"hover\": \"133486.0\"}}, \"0t6hQrq58/AjvNmfKQJA3w\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 68733.0, \"color\": \"#eda379\", \"hover\": \"68733.0\"}}, \"RM6AZcUBqJk+lS+c9+dB3w\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 168789.0, \"color\": \"#72ebb4\", \"hover\": \"168789.0\"}}, \"8zxchcDckT1281RKsWBF3w\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 53427.0, \"color\": \"#b5cd2e\", \"hover\": \"53427.0\"}}, \"eof82uJ+FIvvh5PWSJZF3w\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 163724.0, \"color\": \"#f790f0\", \"hover\": \"163724.0\"}}, \"iiHdIj3dYCnLmrkXpUxV3w\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 180648.0, \"color\": \"#1e5cf7\", \"hover\": \"180648.0\"}}, \"w7AN2URAar7AQyqiyJ5h3w\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 169440.0, \"color\": \"#5f53f0\", \"hover\": \"169440.0\"}}, \"ZsXj1rezqrBl2BtRb/pv3w\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 21535.0, \"color\": \"#7eddd4\", \"hover\": \"21535.0\"}}, \"jWO2RP4ylPUUhglRRs1y3w\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 114792.0, \"color\": \"#f73d92\", \"hover\": \"114792.0\"}}, \"jv+QLRmhrtNe/K3zwfC03w\": {\"metadata\": {\"community_id\": 385, \"customer_id\": 88781.0, \"color\": \"#05d2af\", \"hover\": \"88781.0\"}}, \"RU7ImjsrRJsKlzFRmKjN3w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 108534.0, \"color\": \"#33b9bc\", \"hover\": \"108534.0\"}}, \"JQF9x7q7foGGWrdOMznT3w\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 151636.0, \"color\": \"#c2fe3c\", \"hover\": \"151636.0\"}}, \"uc+Wd5vnGQDGlFDnpkze3w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 106377.0, \"color\": \"#33b9bc\", \"hover\": \"106377.0\"}}, \"cyZ5Pkk5ztmXzP61SVHf3w\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 132640.0, \"color\": \"#fe58fe\", \"hover\": \"132640.0\"}}, \"d7gA8hz1s23obdi8bo7s3w\": {\"metadata\": {\"community_id\": 326, \"customer_id\": 164300.0, \"color\": \"#f7c28c\", \"hover\": \"164300.0\"}}, \"vfR6i2mpCYgIbWLbkuX03w\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 178896.0, \"color\": \"#4b2fa5\", \"hover\": \"178896.0\"}}, \"AWjelWpqAs1TTbdNOEv63w\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 70973.0, \"color\": \"#f29712\", \"hover\": \"70973.0\"}}, \"fGRC6V2KP/aLwu7ryLIH4A\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 159893.0, \"color\": \"#9a62ce\", \"hover\": \"159893.0\"}}, \"yW3srrSTsNB2YpFbKqcI4A\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 171235.0, \"color\": \"#d16060\", \"hover\": \"171235.0\"}}, \"+z27pdsw9ziRL7iqccgQ4A\": {\"metadata\": {\"community_id\": 524, \"customer_id\": 127117.0, \"color\": \"#fc5d1f\", \"hover\": \"127117.0\"}}, \"z74I6YSnuYW7jPenY9cb4A\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 4600.0, \"color\": \"#78e968\", \"hover\": \"4600.0\"}}, \"Df0dOb7XVmqj7vlzc20y4A\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 111666.0, \"color\": \"#32bc93\", \"hover\": \"111666.0\"}}, \"IzWwQQvk67Hujjt0zNQ74A\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 176388.0, \"color\": \"#7ff6fa\", \"hover\": \"176388.0\"}}, \"Ek+y8Dv6MgaaKLo1u1FL4A\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 79071.0, \"color\": \"#b356f5\", \"hover\": \"79071.0\"}}, \"lGkpU3/jy713soPYjV1X4A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 45600.0, \"color\": \"#c12abd\", \"hover\": \"45600.0\"}}, \"6m9tGrKN+j3fMpyWX+dk4A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 41619.0, \"color\": \"#0d14dc\", \"hover\": \"41619.0\"}}, \"iLCK0JeQAw5z+bYWs/914A\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 46329.0, \"color\": \"#c70b3b\", \"hover\": \"46329.0\"}}, \"2af10RCETu3QPCGmsHF+4A\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 88364.0, \"color\": \"#45f210\", \"hover\": \"88364.0\"}}, \"6jhFejUN6c7Aff2g3e674A\": {\"metadata\": {\"community_id\": 551, \"customer_id\": 120029.0, \"color\": \"#b3872b\", \"hover\": \"120029.0\"}}, \"CqoXzfpGmzyXa3+Qf/nb4A\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 16865.0, \"color\": \"#e880f5\", \"hover\": \"16865.0\"}}, \"pzuucJl3E3Cj8Dvv2sjs4A\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 33263.0, \"color\": \"#a372d3\", \"hover\": \"33263.0\"}}, \"Ad2FQPLN06d20a77mVj34A\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 186256.0, \"color\": \"#2f82a1\", \"hover\": \"186256.0\"}}, \"j6By1U2pa9tCpe2vghUI4Q\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 144254.0, \"color\": \"#c57051\", \"hover\": \"144254.0\"}}, \"v8VP8XKjxrPYZLyLtott4Q\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 40599.0, \"color\": \"#08cad9\", \"hover\": \"40599.0\"}}, \"jlP5eV/l50w203+qmY934Q\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 15376.0, \"color\": \"#417dfc\", \"hover\": \"15376.0\"}}, \"IWWaiBa/jxZXyRG8dtN64Q\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 104999.0, \"color\": \"#3a92b5\", \"hover\": \"104999.0\"}}, \"75GLam0GiNbHonLi9pd/4Q\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 72235.0, \"color\": \"#2a72e6\", \"hover\": \"72235.0\"}}, \"aPDfJ/RktssG6+PgDXeC4Q\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 124382.0, \"color\": \"#e66d6e\", \"hover\": \"124382.0\"}}, \"kY61IiZ5s0vlBeduAWKr4Q\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 187489.0, \"color\": \"#c093fc\", \"hover\": \"187489.0\"}}, \"GlcKEh14eBpQ2/SFLeSt4Q\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 114755.0, \"color\": \"#d820bf\", \"hover\": \"114755.0\"}}, \"aR1c8SzxQDZLCwWHtvut4Q\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 19838.0, \"color\": \"#abf295\", \"hover\": \"19838.0\"}}, \"nNdeLertJElPQpss2WS+4Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 12826.0, \"color\": \"#f6a0ef\", \"hover\": \"12826.0\"}}, \"0J6oEUNhkVYrIsWJGBnL4Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 97848.0, \"color\": \"#c12abd\", \"hover\": \"97848.0\"}}, \"eXnfZLXLieBorLzxKlLM4Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 103455.0, \"color\": \"#c12abd\", \"hover\": \"103455.0\"}}, \"mJoSuOtK1NC4MEDpqX/U4Q\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 7858.0, \"color\": \"#511fd0\", \"hover\": \"7858.0\"}}, \"R6b4LdI57QEcTyehRwfo4Q\": {\"metadata\": {\"community_id\": 543, \"customer_id\": 163461.0, \"color\": \"#40fa33\", \"hover\": \"163461.0\"}}, \"8RvOVn53HohruwyrXukI4g\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 167436.0, \"color\": \"#9a62ce\", \"hover\": \"167436.0\"}}, \"ze9Ajo7bQIrDR2Q61Vkf4g\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 6757.0, \"color\": \"#c273fd\", \"hover\": \"6757.0\"}}, \"ofSL6fj3xO5/y83Iczo74g\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 194410.0, \"color\": \"#eb06bc\", \"hover\": \"194410.0\"}}, \"cCPz7uMZwRbQ3ki4aClO4g\": {\"metadata\": {\"community_id\": 453, \"customer_id\": 95326.0, \"color\": \"#ab93ef\", \"hover\": \"95326.0\"}}, \"bPIwjFI4aO3BnDDiSWmD4g\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 40235.0, \"color\": \"#72ebb4\", \"hover\": \"40235.0\"}}, \"S0cvWu7kth8Hv99QFfiW4g\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 28799.0, \"color\": \"#1e5cf7\", \"hover\": \"28799.0\"}}, \"qKdc7yaOfDNQ3Ioddlqw4g\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 135661.0, \"color\": \"#7eddd4\", \"hover\": \"135661.0\"}}, \"2LHI1R6SjODg/VQK0mSy4g\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 183641.0, \"color\": \"#e0b23c\", \"hover\": \"183641.0\"}}, \"X+ETh+ba1MHT0Np6yw/i4g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 95647.0, \"color\": \"#f8a36c\", \"hover\": \"95647.0\"}}, \"XsBDmmlxAWof97JjGRrn4g\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 3603.0, \"color\": \"#a3ace6\", \"hover\": \"3603.0\"}}, \"1swWkYMcwILy7Fx6Zpvz4g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 190219.0, \"color\": \"#f8a36c\", \"hover\": \"190219.0\"}}, \"Ggedp8qPy5kyWh6extUQ4w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 175277.0, \"color\": \"#78e968\", \"hover\": \"175277.0\"}}, \"zt6YnIKyd/GMP/yZsi074w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 174701.0, \"color\": \"#92e5be\", \"hover\": \"174701.0\"}}, \"Q9DbiBLOUlsRxS7bC1lH4w\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 156591.0, \"color\": \"#5937d3\", \"hover\": \"156591.0\"}}, \"sJ1m92koFlNMH0NSe7dO4w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 134019.0, \"color\": \"#45f210\", \"hover\": \"134019.0\"}}, \"jU2QIPHqLFIT2TilhstV4w\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 139230.0, \"color\": \"#f27249\", \"hover\": \"139230.0\"}}, \"JS6lrSB32ihzfJ1UR7xw4w\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 185240.0, \"color\": \"#8bd742\", \"hover\": \"185240.0\"}}, \"vlSMwSjwxW6VB+DOD3V94w\": {\"metadata\": {\"community_id\": 551, \"customer_id\": 94952.0, \"color\": \"#b3872b\", \"hover\": \"94952.0\"}}, \"aBJgsjUUxSbjLvqC8G6w4w\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 176121.0, \"color\": \"#dcc694\", \"hover\": \"176121.0\"}}, \"8WlJWpfvSrkQ4/HN21rW4w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 2906.0, \"color\": \"#33b9bc\", \"hover\": \"2906.0\"}}, \"96AWJdjtpTR2ckzh2+cg5A\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 3963.0, \"color\": \"#309f40\", \"hover\": \"3963.0\"}}, \"MtpjJ6XcmH6qPnAjbjY75A\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 28088.0, \"color\": \"#9cdc65\", \"hover\": \"28088.0\"}}, \"OPbynxn1A1QV0hBtvMlC5A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 29043.0, \"color\": \"#62fab8\", \"hover\": \"29043.0\"}}, \"+cNenZQZhgXXSMyomN525A\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 170648.0, \"color\": \"#4451e7\", \"hover\": \"170648.0\"}}, \"yow/PWjTeFNHBFPlDU175A\": {\"metadata\": {\"community_id\": 552, \"customer_id\": 145942.0, \"color\": \"#2432bd\", \"hover\": \"145942.0\"}}, \"CrXNrrAB8QyAfPxNLYKG5A\": {\"metadata\": {\"community_id\": 450, \"customer_id\": 184693.0, \"color\": \"#34979f\", \"hover\": \"184693.0\"}}, \"cs5JGUqcJ2G/Y8pV2hyj5A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 2139.0, \"color\": \"#b70fc0\", \"hover\": \"2139.0\"}}, \"e3FcS3oHYa8J5QfMPcqk5A\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 35808.0, \"color\": \"#b3df71\", \"hover\": \"35808.0\"}}, \"6W3ZK4Q6x6D3AFIqq66p5A\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 126899.0, \"color\": \"#99b5fc\", \"hover\": \"126899.0\"}}, \"cymvFwyYZ7rZh6oQjfmq5A\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 147266.0, \"color\": \"#bdea14\", \"hover\": \"147266.0\"}}, \"z+Erzv6FAAAlpHglkqjD5A\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 60900.0, \"color\": \"#d6f98a\", \"hover\": \"60900.0\"}}, \"nQbo89EjFqendC5KI+7G5A\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 16000.0, \"color\": \"#c05c10\", \"hover\": \"16000.0\"}}, \"R9reG8IlWahr3kb1OVLP5A\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 7020.0, \"color\": \"#31ab2f\", \"hover\": \"7020.0\"}}, \"JsbwtB1EcoPAvi4PBiPR5A\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 134552.0, \"color\": \"#7ff6fa\", \"hover\": \"134552.0\"}}, \"nFb5wObag+REOsnnoRX95A\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 134821.0, \"color\": \"#4037bc\", \"hover\": \"134821.0\"}}, \"7B3pLJTfNbhA56BMabUB5Q\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 57050.0, \"color\": \"#7eddd4\", \"hover\": \"57050.0\"}}, \"rqiARZpwzVbzZK73amgN5Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 96465.0, \"color\": \"#1bd89a\", \"hover\": \"96465.0\"}}, \"oUJBjKPhjCGJybVjNgQS5Q\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 71658.0, \"color\": \"#8ceceb\", \"hover\": \"71658.0\"}}, \"pe7UfIlXV+bs378EUzk/5Q\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 162517.0, \"color\": \"#a6c704\", \"hover\": \"162517.0\"}}, \"TCOdjfPB4zlgBAP2zQBP5Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 133193.0, \"color\": \"#f6a0ef\", \"hover\": \"133193.0\"}}, \"CYlt9MHJ4J2C75oqnK5X5Q\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 65097.0, \"color\": \"#df7e88\", \"hover\": \"65097.0\"}}, \"ZU65SFXBVuu8L57SNcJ25Q\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 179200.0, \"color\": \"#72f75d\", \"hover\": \"179200.0\"}}, \"hy9P4OdYnBfVowDKaFx75Q\": {\"metadata\": {\"community_id\": 533, \"customer_id\": 130001.0, \"color\": \"#d336ee\", \"hover\": \"130001.0\"}}, \"JnvphYTbY0KnOUfWIwmU5Q\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 91397.0, \"color\": \"#9aa92e\", \"hover\": \"91397.0\"}}, \"o8icG02ljIVugMJm5yWV5Q\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 126808.0, \"color\": \"#62fab8\", \"hover\": \"126808.0\"}}, \"uwrCTZHxVx7vgzrTvSCk5Q\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 89113.0, \"color\": \"#a3b818\", \"hover\": \"89113.0\"}}, \"7wGu38lzo0Yvxy5GLpCk5Q\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 54306.0, \"color\": \"#81a8e3\", \"hover\": \"54306.0\"}}, \"9V9YsR5v4buQUr0rs0XJ5Q\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 67868.0, \"color\": \"#b3df71\", \"hover\": \"67868.0\"}}, \"zVKc5Pn9CM7t8WCnSUvK5Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 36663.0, \"color\": \"#1bd89a\", \"hover\": \"36663.0\"}}, \"8+SDMPAJnM5smfsvJtvU5Q\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 139210.0, \"color\": \"#e5a6ba\", \"hover\": \"139210.0\"}}, \"7pHWyJ9eZRLIiBaTaCHx5Q\": {\"metadata\": {\"community_id\": 373, \"customer_id\": 180346.0, \"color\": \"#9399ea\", \"hover\": \"180346.0\"}}, \"xYqY6+nbtRNwS10J4bsI5g\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 177664.0, \"color\": \"#bb97df\", \"hover\": \"177664.0\"}}, \"jHAJcxhvB/SV+T/mOYoN5g\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 61926.0, \"color\": \"#e0b23c\", \"hover\": \"61926.0\"}}, \"1TyGrvk8SzqnwelG70YR5g\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 150154.0, \"color\": \"#9bc430\", \"hover\": \"150154.0\"}}, \"8qqjl2xkJE59URBcF20x5g\": {\"metadata\": {\"community_id\": 193, \"customer_id\": 125688.0, \"color\": \"#ccc319\", \"hover\": \"125688.0\"}}, \"yh404VRB85qtz9EJBxRg5g\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 100814.0, \"color\": \"#f73d92\", \"hover\": \"100814.0\"}}, \"9kEfT969BAAcMsgbk9Cq5g\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 25748.0, \"color\": \"#d3da39\", \"hover\": \"25748.0\"}}, \"4OBgakItKw3fodKU1F695g\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 159210.0, \"color\": \"#c12abd\", \"hover\": \"159210.0\"}}, \"FTana0mhDAQ7pDlNgeTo5g\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 29179.0, \"color\": \"#f6a0ef\", \"hover\": \"29179.0\"}}, \"zF5RWzd/hWtBb1PxEuX85g\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 2653.0, \"color\": \"#99ef99\", \"hover\": \"2653.0\"}}, \"b5xBGTs/P8P/y3nzl3AF5w\": {\"metadata\": {\"community_id\": 472, \"customer_id\": 74154.0, \"color\": \"#a78d24\", \"hover\": \"74154.0\"}}, \"ODLi5SBwNecxZWLF9IQr5w\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 170260.0, \"color\": \"#f8a36c\", \"hover\": \"170260.0\"}}, \"ZPZgl2SWzho28I+rPXI85w\": {\"metadata\": {\"community_id\": 233, \"customer_id\": 116260.0, \"color\": \"#3ec8e7\", \"hover\": \"116260.0\"}}, \"UREpM2NrwJ3mDq2vU5pV5w\": {\"metadata\": {\"community_id\": 102, \"customer_id\": 159243.0, \"color\": \"#8ebce5\", \"hover\": \"159243.0\"}}, \"1GcyNvq3jZbe4TsvLsCH5w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 72533.0, \"color\": \"#92e5be\", \"hover\": \"72533.0\"}}, \"DQOcWsYX6ai57NZ4jqyY5w\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 198270.0, \"color\": \"#b32f69\", \"hover\": \"198270.0\"}}, \"bkqQRjjzTNbHJ7cOrH+65w\": {\"metadata\": {\"community_id\": 545, \"customer_id\": 107270.0, \"color\": \"#aa47c3\", \"hover\": \"107270.0\"}}, \"9Vql7Mlk/vvWRyGpTsvc5w\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 106961.0, \"color\": \"#c273fd\", \"hover\": \"106961.0\"}}, \"4znuuTThxX8nevY99oHk5w\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 71078.0, \"color\": \"#7ff6fa\", \"hover\": \"71078.0\"}}, \"9kcQWmhhEp5EveGkbaTs5w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 777.0, \"color\": \"#6bdba1\", \"hover\": \"777.0\"}}, \"ZRNoNQxBeXtO+lXWqSXw5w\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 111969.0, \"color\": \"#4bdb47\", \"hover\": \"111969.0\"}}, \"20HOk3v2PjQqD5WCqjcF6A\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 58432.0, \"color\": \"#e4f354\", \"hover\": \"58432.0\"}}, \"FuObJ7wvtRHTUJ+/118I6A\": {\"metadata\": {\"community_id\": 539, \"customer_id\": 24503.0, \"color\": \"#569fee\", \"hover\": \"24503.0\"}}, \"D9pzXh+m3X+Q11g+VAoQ6A\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 36216.0, \"color\": \"#1e5cf7\", \"hover\": \"36216.0\"}}, \"MLDh6bSGi6PSwySBAYEg6A\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 7479.0, \"color\": \"#b621e2\", \"hover\": \"7479.0\"}}, \"BqRKgn0/xYzfcP4hJf0j6A\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 172212.0, \"color\": \"#1807f2\", \"hover\": \"172212.0\"}}, \"JP3yhcbiuU7ifkiJqEgw6A\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 159532.0, \"color\": \"#d3da39\", \"hover\": \"159532.0\"}}, \"QEht9uW34xjqCjer4vFM6A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 110928.0, \"color\": \"#c12abd\", \"hover\": \"110928.0\"}}, \"kupGrdK+N6ZXbgVOCJGI6A\": {\"metadata\": {\"community_id\": 492, \"customer_id\": 140148.0, \"color\": \"#e23f89\", \"hover\": \"140148.0\"}}, \"yA42YJjumsokSSLXucqU6A\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 39300.0, \"color\": \"#10d82f\", \"hover\": \"39300.0\"}}, \"G1snS5Vz0lVn2WsUSlOh6A\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 2652.0, \"color\": \"#99ef99\", \"hover\": \"2652.0\"}}, \"6woUhm96mgbzRsURDIij6A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 178510.0, \"color\": \"#33b9bc\", \"hover\": \"178510.0\"}}, \"Ri+0Jy7gEDnrphImzdan6A\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 65282.0, \"color\": \"#0cd5fa\", \"hover\": \"65282.0\"}}, \"rToxk4r0uYkTlZK66ha06A\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 154423.0, \"color\": \"#7aefcb\", \"hover\": \"154423.0\"}}, \"tPGsf2lNyo/YwJKk//Xn6A\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 154157.0, \"color\": \"#92e5be\", \"hover\": \"154157.0\"}}, \"AheEjR6jraasDVl7HQ0q6Q\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 35236.0, \"color\": \"#e0b23c\", \"hover\": \"35236.0\"}}, \"AC7hxczsJaJ2uIOIqoo66Q\": {\"metadata\": {\"community_id\": 550, \"customer_id\": 132314.0, \"color\": \"#69e9c3\", \"hover\": \"132314.0\"}}, \"RrwVqK/gCHzzTMUpXDhB6Q\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 124892.0, \"color\": \"#c67fed\", \"hover\": \"124892.0\"}}, \"Wbuc7nVa2E5KBLrpb9Rr6Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 51210.0, \"color\": \"#272dca\", \"hover\": \"51210.0\"}}, \"QTkc8476vXtqFJNyISCv6Q\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 123397.0, \"color\": \"#d8c96d\", \"hover\": \"123397.0\"}}, \"Fdf8JL4Yug+BKZDs2me/6Q\": {\"metadata\": {\"community_id\": 514, \"customer_id\": 13155.0, \"color\": \"#bfde5f\", \"hover\": \"13155.0\"}}, \"/D6LrHV3O/2uD7GGDRXj6Q\": {\"metadata\": {\"community_id\": 330, \"customer_id\": 157333.0, \"color\": \"#85bcfc\", \"hover\": \"157333.0\"}}, \"TbsMX0lpn0ca3Jbu0oDj6Q\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 99141.0, \"color\": \"#d8dd17\", \"hover\": \"99141.0\"}}, \"jnYl9d4UZUupzck1m5Xl6Q\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 179645.0, \"color\": \"#4bdb47\", \"hover\": \"179645.0\"}}, \"xmCrALNj7UEjOj1fRMfp6Q\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 11245.0, \"color\": \"#cb84ef\", \"hover\": \"11245.0\"}}, \"AvVCWm591ZvQ6DEW2qb+6Q\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 95359.0, \"color\": \"#72ebb4\", \"hover\": \"95359.0\"}}, \"BEjSdCilxicLKERRH2kM6g\": {\"metadata\": {\"community_id\": 345, \"customer_id\": 182819.0, \"color\": \"#a9732d\", \"hover\": \"182819.0\"}}, \"7RXVddCVGk1aSOf5BMkg6g\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 50028.0, \"color\": \"#c830c7\", \"hover\": \"50028.0\"}}, \"RuZEZek+dIdNb16T8TQk6g\": {\"metadata\": {\"community_id\": 390, \"customer_id\": 199720.0, \"color\": \"#9fb3f1\", \"hover\": \"199720.0\"}}, \"Hleul4MTT22k47YOIAou6g\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 33412.0, \"color\": \"#fa6270\", \"hover\": \"33412.0\"}}, \"IpE9fW8G0hjWR87t7DYy6g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 151497.0, \"color\": \"#b70fc0\", \"hover\": \"151497.0\"}}, \"WMgcdy+BnPYK8Xma4/5A6g\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 17680.0, \"color\": \"#29f3a8\", \"hover\": \"17680.0\"}}, \"O/m49NG+OSq7jZLZYq9E6g\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 42439.0, \"color\": \"#25a9a6\", \"hover\": \"42439.0\"}}, \"RSZUgKf+wntpgqok5ehF6g\": {\"metadata\": {\"community_id\": 396, \"customer_id\": 176785.0, \"color\": \"#a52fa6\", \"hover\": \"176785.0\"}}, \"PyEwC8P2XWgBNOn//O9W6g\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 52035.0, \"color\": \"#c36a1f\", \"hover\": \"52035.0\"}}, \"tmZPh+CU+d/qziRFshhf6g\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 158571.0, \"color\": \"#d36ae2\", \"hover\": \"158571.0\"}}, \"fl4EFQq7n5+GbI3MLNGA6g\": {\"metadata\": {\"community_id\": 549, \"customer_id\": 16264.0, \"color\": \"#b16de3\", \"hover\": \"16264.0\"}}, \"4hgZUR2UUQ4ngEjM6puM6g\": {\"metadata\": {\"community_id\": 546, \"customer_id\": 104013.0, \"color\": \"#f1ec88\", \"hover\": \"104013.0\"}}, \"uoq9y01xGOC/8QgrrSih6g\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 132479.0, \"color\": \"#eda379\", \"hover\": \"132479.0\"}}, \"H07w+dzMUBY1Tb8aYnul6g\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 98226.0, \"color\": \"#185cd8\", \"hover\": \"98226.0\"}}, \"6suweX+9HNHlp9Z3oC+26g\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 405.0, \"color\": \"#e5e372\", \"hover\": \"405.0\"}}, \"WNt4O+KU1Es4d3huye/V6g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 151371.0, \"color\": \"#62fab8\", \"hover\": \"151371.0\"}}, \"KlNDoIf7EQkwaCaUTuTr6g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 199956.0, \"color\": \"#b70fc0\", \"hover\": \"199956.0\"}}, \"9pyAHATD/zmm5A0TXWbt6g\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 194163.0, \"color\": \"#1bd89a\", \"hover\": \"194163.0\"}}, \"DoWrGTWQg6VqcUOPqKQA6w\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 176504.0, \"color\": \"#d6b552\", \"hover\": \"176504.0\"}}, \"PnXhu4rcpkk+qyLW1koE6w\": {\"metadata\": {\"community_id\": 553, \"customer_id\": 52467.0, \"color\": \"#7fa2d7\", \"hover\": \"52467.0\"}}, \"SU/6PQhlsHPBRc4pxcQR6w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 136962.0, \"color\": \"#99ef99\", \"hover\": \"136962.0\"}}, \"eYfvAr+UfKq1aCZN2x4y6w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 50690.0, \"color\": \"#99ef99\", \"hover\": \"50690.0\"}}, \"NSXGAgdB/FWrkkUOClxL6w\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 180894.0, \"color\": \"#10d82f\", \"hover\": \"180894.0\"}}, \"NjVhdiC4UmNJkZgJOcpn6w\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 18672.0, \"color\": \"#c98e0a\", \"hover\": \"18672.0\"}}, \"LsulSTGDU78TB0LMXI5p6w\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 59655.0, \"color\": \"#dcc694\", \"hover\": \"59655.0\"}}, \"Q6evY2lIk1V0daivfGCf6w\": {\"metadata\": {\"community_id\": 277, \"customer_id\": 138586.0, \"color\": \"#8ec8ec\", \"hover\": \"138586.0\"}}, \"EtI18D9Vh8zUwjfqDOPC6w\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 37802.0, \"color\": \"#e880f5\", \"hover\": \"37802.0\"}}, \"qOLZfj6vsjEJBm5kg+Dv6w\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 122570.0, \"color\": \"#eba59b\", \"hover\": \"122570.0\"}}, \"PWbZ/xn60ZHGlQtufbHz6w\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 133972.0, \"color\": \"#f29712\", \"hover\": \"133972.0\"}}, \"wZSNMWPhftzSTbrv/fr26w\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 150920.0, \"color\": \"#c12abd\", \"hover\": \"150920.0\"}}, \"JboAWyXnCoash2wb7PAb7A\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 105032.0, \"color\": \"#c05c10\", \"hover\": \"105032.0\"}}, \"9i5R1KEvmESEXUfnrcMo7A\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 52837.0, \"color\": \"#10d82f\", \"hover\": \"52837.0\"}}, \"Q67OfOXxwmAszDzGwwMu7A\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 3187.0, \"color\": \"#32ee1f\", \"hover\": \"3187.0\"}}, \"+SvqYAQ7ewPmjmJjL0407A\": {\"metadata\": {\"community_id\": 473, \"customer_id\": 172318.0, \"color\": \"#64d9e0\", \"hover\": \"172318.0\"}}, \"PL1tDqyryL2f0TlTwStn7A\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 8680.0, \"color\": \"#72ebb4\", \"hover\": \"8680.0\"}}, \"Arwkdm13CeJyyFNcAAd37A\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 27765.0, \"color\": \"#7ff6fa\", \"hover\": \"27765.0\"}}, \"rZdJjoqtPTUMWxcXz3eV7A\": {\"metadata\": {\"community_id\": 553, \"customer_id\": 70764.0, \"color\": \"#7fa2d7\", \"hover\": \"70764.0\"}}, \"Yxer1BQHw8ayI4coIJWc7A\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 134270.0, \"color\": \"#7eddd4\", \"hover\": \"134270.0\"}}, \"irv2V2npI9brdjcEY6Oj7A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 11499.0, \"color\": \"#c12abd\", \"hover\": \"11499.0\"}}, \"9YW+EyakNJaWXROQrcCs7A\": {\"metadata\": {\"community_id\": 538, \"customer_id\": 74244.0, \"color\": \"#27dc16\", \"hover\": \"74244.0\"}}, \"iK9ayHc/AXaY84l64fm17A\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 161179.0, \"color\": \"#272dca\", \"hover\": \"161179.0\"}}, \"XM0o8pv01Pfg5sFKZWng7A\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 173730.0, \"color\": \"#08dbec\", \"hover\": \"173730.0\"}}, \"gX5Pg2JVF4BoVkEjHysF7Q\": {\"metadata\": {\"community_id\": 399, \"customer_id\": 114553.0, \"color\": \"#78c4db\", \"hover\": \"114553.0\"}}, \"sC8E7ogEQy46R5hXT18S7Q\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 182339.0, \"color\": \"#d3da39\", \"hover\": \"182339.0\"}}, \"idWTK0b8n3wVMKQEAfsV7Q\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 157273.0, \"color\": \"#08dbec\", \"hover\": \"157273.0\"}}, \"I3druwziJ9VuG37wcrxL7Q\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 45857.0, \"color\": \"#d53e3e\", \"hover\": \"45857.0\"}}, \"0vcRHc9EWC9/1eD5IRNO7Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 79122.0, \"color\": \"#1bd89a\", \"hover\": \"79122.0\"}}, \"2t1yVN7Z9uNwoEmgU8tS7Q\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 50818.0, \"color\": \"#6acd09\", \"hover\": \"50818.0\"}}, \"lDoIy/LAU8b2oJsLZrxV7Q\": {\"metadata\": {\"community_id\": 38, \"customer_id\": 194836.0, \"color\": \"#4ff699\", \"hover\": \"194836.0\"}}, \"CdBQ4Oo4C+AcTcnfb21i7Q\": {\"metadata\": {\"community_id\": 504, \"customer_id\": 116582.0, \"color\": \"#d088da\", \"hover\": \"116582.0\"}}, \"91ATqeatEnZnOl7GYatz7Q\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 85391.0, \"color\": \"#b58c2b\", \"hover\": \"85391.0\"}}, \"xJ4etXa+11viKMelSA2I7Q\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 100948.0, \"color\": \"#09ef53\", \"hover\": \"100948.0\"}}, \"fRdioxsCKtEz2G0T13qL7Q\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 109396.0, \"color\": \"#33b9bc\", \"hover\": \"109396.0\"}}, \"eRxPWjT//2+yUjJyJK+N7Q\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 93883.0, \"color\": \"#8827b3\", \"hover\": \"93883.0\"}}, \"G0HrHwXCAPzndCm/PFCQ7Q\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 162370.0, \"color\": \"#32bc93\", \"hover\": \"162370.0\"}}, \"aU8RxAk5dpz79KvpKp2W7Q\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 17260.0, \"color\": \"#e5a6ba\", \"hover\": \"17260.0\"}}, \"kpts1Dex2CaSJVU8vdHE7Q\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 42247.0, \"color\": \"#e493a3\", \"hover\": \"42247.0\"}}, \"JdHgLTmCpdKriVMq73fU7Q\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 19671.0, \"color\": \"#7a80f3\", \"hover\": \"19671.0\"}}, \"Q4g51W5/PH9o2PLu7gz07Q\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 98926.0, \"color\": \"#b58c2b\", \"hover\": \"98926.0\"}}, \"D8DysmbmW6oUH3yRrTMK7g\": {\"metadata\": {\"community_id\": 475, \"customer_id\": 34997.0, \"color\": \"#1fb0f2\", \"hover\": \"34997.0\"}}, \"L64aCDPhMOIOwxJW4cYO7g\": {\"metadata\": {\"community_id\": 449, \"customer_id\": 183425.0, \"color\": \"#baf398\", \"hover\": \"183425.0\"}}, \"rWQC/DPCbi8TmSYUD9IW7g\": {\"metadata\": {\"community_id\": 65, \"customer_id\": 15692.0, \"color\": \"#95e17f\", \"hover\": \"15692.0\"}}, \"ohyQWYf1WFaWLvKobSUl7g\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 96777.0, \"color\": \"#6ea5d0\", \"hover\": \"96777.0\"}}, \"sItUzgzzeSRXDdp40okl7g\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 43450.0, \"color\": \"#45f210\", \"hover\": \"43450.0\"}}, \"6Yaj5oRg5gSr4WRlWPo17g\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 58672.0, \"color\": \"#32ee1f\", \"hover\": \"58672.0\"}}, \"yBjDJxBREU7HWT+JDb5e7g\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 161084.0, \"color\": \"#b129ec\", \"hover\": \"161084.0\"}}, \"k5j3NuK3cCPLJA+hN4xu7g\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 105417.0, \"color\": \"#99b5fc\", \"hover\": \"105417.0\"}}, \"IQOr8oWTplyMdqllGFB/7g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 47879.0, \"color\": \"#62fab8\", \"hover\": \"47879.0\"}}, \"7BPRKy4C5yefrrHo632x7g\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 233.0, \"color\": \"#d74a1b\", \"hover\": \"233.0\"}}, \"WbIwPdpoyybcirBTSc677g\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 22745.0, \"color\": \"#1bd89a\", \"hover\": \"22745.0\"}}, \"+XX4ipo2EDh1Vw861N3B7g\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 122221.0, \"color\": \"#33b9bc\", \"hover\": \"122221.0\"}}, \"h+88TEDu69e76yofbFUC7w\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 61249.0, \"color\": \"#10d82f\", \"hover\": \"61249.0\"}}, \"LFxJPJkguSiDBpErKUVQ7w\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 182665.0, \"color\": \"#a372d3\", \"hover\": \"182665.0\"}}, \"8FaU6NkPlqE9UM1z6SSa7w\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 154537.0, \"color\": \"#6acd09\", \"hover\": \"154537.0\"}}, \"T3l0u3ldOx9jtSUKFA+k7w\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 50608.0, \"color\": \"#98e1c6\", \"hover\": \"50608.0\"}}, \"XxgcW3KOOwIwxZx0l+ao7w\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 23906.0, \"color\": \"#d74a1b\", \"hover\": \"23906.0\"}}, \"lwXZItcbXUc7Z5GW8Cyu7w\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 12981.0, \"color\": \"#5831d3\", \"hover\": \"12981.0\"}}, \"CbkkslpELDMcPtNI+j667w\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 11325.0, \"color\": \"#d8dd94\", \"hover\": \"11325.0\"}}, \"wXuMAPhfrJpUDgsV2ojS7w\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 169546.0, \"color\": \"#4451e7\", \"hover\": \"169546.0\"}}, \"gzeycB4zCQKXkJ6WXWTl7w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 161113.0, \"color\": \"#45f210\", \"hover\": \"161113.0\"}}, \"SfINEI59msrKitc7M6Ln7w\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 153705.0, \"color\": \"#185cd8\", \"hover\": \"153705.0\"}}, \"HHgt/4RevkljghcN58sE8A\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 97447.0, \"color\": \"#32bc93\", \"hover\": \"97447.0\"}}, \"q7vfrx1Y2yIt4jU/MTVU8A\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 71118.0, \"color\": \"#d53e3e\", \"hover\": \"71118.0\"}}, \"9el4Yb1FIodeYe4QeztY8A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 38112.0, \"color\": \"#33b9bc\", \"hover\": \"38112.0\"}}, \"GcCIv1eDsDxcnxww5BRk8A\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 118985.0, \"color\": \"#04d838\", \"hover\": \"118985.0\"}}, \"+vQfJbdbrfUr7z53avxu8A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 182643.0, \"color\": \"#b70fc0\", \"hover\": \"182643.0\"}}, \"qIWaissn6WMBkpy7C7Z28A\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 151309.0, \"color\": \"#4de2c4\", \"hover\": \"151309.0\"}}, \"9Pjx+U21nuLt9VnXHy6I8A\": {\"metadata\": {\"community_id\": 349, \"customer_id\": 102162.0, \"color\": \"#f2e162\", \"hover\": \"102162.0\"}}, \"7WZO2jjMqEHtvBBYv4mK8A\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 133660.0, \"color\": \"#27b4b4\", \"hover\": \"133660.0\"}}, \"B6rKl7EmbpqDIvSaOn+W8A\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 86577.0, \"color\": \"#d3da39\", \"hover\": \"86577.0\"}}, \"Jk7T08xaG4CWAcdaiJqg8A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 172794.0, \"color\": \"#62fab8\", \"hover\": \"172794.0\"}}, \"az7UoLqYUBxUBYpQRZ+k8A\": {\"metadata\": {\"community_id\": 544, \"customer_id\": 143842.0, \"color\": \"#be1b33\", \"hover\": \"143842.0\"}}, \"AT3qrNx2AwwIt990BkGz8A\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 3590.0, \"color\": \"#a192f1\", \"hover\": \"3590.0\"}}, \"+eS3brz3jZWT+U9Z0Na78A\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 261.0, \"color\": \"#e9d844\", \"hover\": \"261.0\"}}, \"w4Gwasum6XPWxFODHnnT8A\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 178396.0, \"color\": \"#4dcbac\", \"hover\": \"178396.0\"}}, \"ZhZVkXk5CkcWX5ZOOMDl8A\": {\"metadata\": {\"community_id\": 310, \"customer_id\": 26594.0, \"color\": \"#89f08b\", \"hover\": \"26594.0\"}}, \"rlfr5T7gVr1mF/7T01QP8Q\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 170513.0, \"color\": \"#7eddd4\", \"hover\": \"170513.0\"}}, \"DmkQdDNsbUmmMLkddnQT8Q\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 140396.0, \"color\": \"#aad6ea\", \"hover\": \"140396.0\"}}, \"Q+4EDqYZPaAgWbykhywf8Q\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 101681.0, \"color\": \"#10d82f\", \"hover\": \"101681.0\"}}, \"W08SC5+MMRtUmoI8eb8p8Q\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 183250.0, \"color\": \"#9aa92e\", \"hover\": \"183250.0\"}}, \"LW7RUp4WpBDp3yrEPkJV8Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 185370.0, \"color\": \"#c12abd\", \"hover\": \"185370.0\"}}, \"felsQ1UdIZxKSSJZnxxh8Q\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 1857.0, \"color\": \"#f0fe05\", \"hover\": \"1857.0\"}}, \"2MVXq8uLdwsJtUdF9Q1v8Q\": {\"metadata\": {\"community_id\": 527, \"customer_id\": 30400.0, \"color\": \"#94faa2\", \"hover\": \"30400.0\"}}, \"fNckhogPhWH5mD6GuOx38Q\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 41564.0, \"color\": \"#24d0d9\", \"hover\": \"41564.0\"}}, \"bXt54Mwr7PfZh3d4YYJ/8Q\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 11574.0, \"color\": \"#6bdba1\", \"hover\": \"11574.0\"}}, \"1Obr3k6eda+LMdvKYYeK8Q\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 28990.0, \"color\": \"#45f210\", \"hover\": \"28990.0\"}}, \"zmKJzX//sBLtc3CjqO6M8Q\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 174682.0, \"color\": \"#33b9bc\", \"hover\": \"174682.0\"}}, \"gB2Nx5Ypjd0LXJEVbjiV8Q\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 193166.0, \"color\": \"#c32841\", \"hover\": \"193166.0\"}}, \"92gCbscZjdcp5CNIO3Cd8Q\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 26250.0, \"color\": \"#ae692e\", \"hover\": \"26250.0\"}}, \"+SV4sfwaeMk9N7sb4Di38Q\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 32421.0, \"color\": \"#e6c381\", \"hover\": \"32421.0\"}}, \"tL8Oc0Tm9BAb2WU2KCrC8Q\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 159926.0, \"color\": \"#974bf4\", \"hover\": \"159926.0\"}}, \"ttNA9EtrRO4vzKDbSnXp8Q\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 77856.0, \"color\": \"#b84038\", \"hover\": \"77856.0\"}}, \"xRIZCO6SRfXLOE0+vaXu8Q\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 1929.0, \"color\": \"#d33b43\", \"hover\": \"1929.0\"}}, \"qmYAqbFNd0dcizzEDHwK8g\": {\"metadata\": {\"community_id\": 532, \"customer_id\": 46810.0, \"color\": \"#9beda9\", \"hover\": \"46810.0\"}}, \"3Ng3uPfQ3DOyUb7bZW0S8g\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 114012.0, \"color\": \"#2f82a1\", \"hover\": \"114012.0\"}}, \"+tWCi7UnnHlKpwgxsZYw8g\": {\"metadata\": {\"community_id\": 543, \"customer_id\": 66323.0, \"color\": \"#40fa33\", \"hover\": \"66323.0\"}}, \"Av+NJ6AdBIQWI6bttPc38g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 176592.0, \"color\": \"#eba59b\", \"hover\": \"176592.0\"}}, \"Lr/YyivEgc6AEL9LZFQ58g\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 171564.0, \"color\": \"#9e78f3\", \"hover\": \"171564.0\"}}, \"DjoWz5wRHMv7J5CcM1FN8g\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 106623.0, \"color\": \"#29f3a8\", \"hover\": \"106623.0\"}}, \"WFWWw2jQ8tZw5iRQSFNP8g\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 136711.0, \"color\": \"#2575dd\", \"hover\": \"136711.0\"}}, \"84cQ3j2fcrmCy4xje6xR8g\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 108560.0, \"color\": \"#33b9bc\", \"hover\": \"108560.0\"}}, \"/++dgXP7Ji1DX6Jjqmpl8g\": {\"metadata\": {\"community_id\": 357, \"customer_id\": 19527.0, \"color\": \"#d68246\", \"hover\": \"19527.0\"}}, \"x6k18KHyhLwDGjL9tJ1o8g\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 180824.0, \"color\": \"#0f50c0\", \"hover\": \"180824.0\"}}, \"ya2o5/Rbz4LKL7fJB/aH8g\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 144467.0, \"color\": \"#31ab2f\", \"hover\": \"144467.0\"}}, \"rxcVniLDqVaT6evzgA+m8g\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 39482.0, \"color\": \"#6bf189\", \"hover\": \"39482.0\"}}, \"VPe/WBhgMRDejNmchQGp8g\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 27181.0, \"color\": \"#e4a1a2\", \"hover\": \"27181.0\"}}, \"Hz0AHLYlerZt66T6kgGt8g\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 176323.0, \"color\": \"#a372d3\", \"hover\": \"176323.0\"}}, \"pOLt7ElwS+F5q/0I72e28g\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 35689.0, \"color\": \"#1807f2\", \"hover\": \"35689.0\"}}, \"bkTpfRcqaOJ298DCRgK68g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 66692.0, \"color\": \"#eba59b\", \"hover\": \"66692.0\"}}, \"3vOibLjBb4VNYZOlRffs8g\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 120735.0, \"color\": \"#92e5be\", \"hover\": \"120735.0\"}}, \"l5XDIvoOxlEM5vDuvZb/8g\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 188234.0, \"color\": \"#b58c2b\", \"hover\": \"188234.0\"}}, \"cqM9tGYlXqAFmhSOz3cz8w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 109320.0, \"color\": \"#45f210\", \"hover\": \"109320.0\"}}, \"Nhtm09YjxapjrWGAhjE88w\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 32543.0, \"color\": \"#99f46c\", \"hover\": \"32543.0\"}}, \"bwWPWOOz5uHVBrqvXEpW8w\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 156998.0, \"color\": \"#b3df71\", \"hover\": \"156998.0\"}}, \"HhV9VWKbsizXigvZATJX8w\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 181446.0, \"color\": \"#d8dd94\", \"hover\": \"181446.0\"}}, \"TjSWBmQ46SH6wSdnCe5g8w\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 136322.0, \"color\": \"#c67fed\", \"hover\": \"136322.0\"}}, \"w159VscyStCfuNPVMuBj8w\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 167102.0, \"color\": \"#1bc070\", \"hover\": \"167102.0\"}}, \"YSeBLUEND64U5fx2jVt88w\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 125447.0, \"color\": \"#9a62ce\", \"hover\": \"125447.0\"}}, \"SqG/l6IbODdXxSygyTzS8w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 164477.0, \"color\": \"#33b9bc\", \"hover\": \"164477.0\"}}, \"aewBFp5Orqz4bzZqctfT8w\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 99873.0, \"color\": \"#511fd0\", \"hover\": \"99873.0\"}}, \"xkCQC4UuNjDrwruLbTgC9A\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 145954.0, \"color\": \"#8543c3\", \"hover\": \"145954.0\"}}, \"fNS5Dg9E+rY2v60BUkcE9A\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 174201.0, \"color\": \"#9bc430\", \"hover\": \"174201.0\"}}, \"+Uehy6uzLhVLgSMe+7wQ9A\": {\"metadata\": {\"community_id\": 534, \"customer_id\": 86115.0, \"color\": \"#c4bd20\", \"hover\": \"86115.0\"}}, \"0FP+iQv1XrY7Of94fEgU9A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 27008.0, \"color\": \"#c12abd\", \"hover\": \"27008.0\"}}, \"lstYZJhfvS9jBG5xm+8U9A\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 173499.0, \"color\": \"#f9c58d\", \"hover\": \"173499.0\"}}, \"4t1AHK2HFYcR5D9nIC0Y9A\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 61538.0, \"color\": \"#c57051\", \"hover\": \"61538.0\"}}, \"PX0uMM9zOfkfjyAq6RMg9A\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 67688.0, \"color\": \"#99b5fc\", \"hover\": \"67688.0\"}}, \"6Q/OMdobhpcAL8bNzgFA9A\": {\"metadata\": {\"community_id\": 512, \"customer_id\": 138236.0, \"color\": \"#76d3a2\", \"hover\": \"138236.0\"}}, \"htQlzVTv1oTgctxDSfBI9A\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 55352.0, \"color\": \"#d8dd94\", \"hover\": \"55352.0\"}}, \"KQfkDTCpE+13mWT03/1e9A\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 172298.0, \"color\": \"#a372d3\", \"hover\": \"172298.0\"}}, \"CThZPER+VAiHSpO3wsKG9A\": {\"metadata\": {\"community_id\": 119, \"customer_id\": 145356.0, \"color\": \"#77c146\", \"hover\": \"145356.0\"}}, \"y49HkmqZsWWjpBlDEZSH9A\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 42209.0, \"color\": \"#10d82f\", \"hover\": \"42209.0\"}}, \"I8/gD89DiH9csk/ZEjSV9A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 123342.0, \"color\": \"#33b9bc\", \"hover\": \"123342.0\"}}, \"MN7xyy9w1gl/dMjSgcew9A\": {\"metadata\": {\"community_id\": 496, \"customer_id\": 25048.0, \"color\": \"#ba8939\", \"hover\": \"25048.0\"}}, \"lVZDXqF6yl10XUMzZzLN9A\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 81641.0, \"color\": \"#2f55bf\", \"hover\": \"81641.0\"}}, \"UNcq6WxV761Qp8/suVLX9A\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 199471.0, \"color\": \"#974bf4\", \"hover\": \"199471.0\"}}, \"34S4/qPUMbfIiVg4qPcv9Q\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 19484.0, \"color\": \"#1807f2\", \"hover\": \"19484.0\"}}, \"U3v3OOBqhXPTXAhsLPhL9Q\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 196573.0, \"color\": \"#99b5fc\", \"hover\": \"196573.0\"}}, \"Rtz5xYqf3eobdXs3wUh79Q\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 7684.0, \"color\": \"#6bf189\", \"hover\": \"7684.0\"}}, \"rYeKyIqBFeSZKrfVe3KU9Q\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 192901.0, \"color\": \"#0d14dc\", \"hover\": \"192901.0\"}}, \"earNIEZ8UXTMmJ3RjUfJ9Q\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 189705.0, \"color\": \"#b2e3a4\", \"hover\": \"189705.0\"}}, \"Ou1odl5Hnptn3TUh/Xnw9Q\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 32036.0, \"color\": \"#b70fc0\", \"hover\": \"32036.0\"}}, \"xbWKQYE6mafD8ye2m0H89Q\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 147058.0, \"color\": \"#1e5cf7\", \"hover\": \"147058.0\"}}, \"cinjXKTI9MAJtco6S1n+9Q\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 180631.0, \"color\": \"#32ee1f\", \"hover\": \"180631.0\"}}, \"X+JG0+UOYlsa2OzMINsA9g\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 120247.0, \"color\": \"#7eddd4\", \"hover\": \"120247.0\"}}, \"qzW5fohBXdhHaVpKw/wW9g\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 47669.0, \"color\": \"#38cb21\", \"hover\": \"47669.0\"}}, \"jW7V0TO2LoawsPs4sppD9g\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 191036.0, \"color\": \"#32bc93\", \"hover\": \"191036.0\"}}, \"zasWMA2ujUekpJ/0C/VH9g\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 132769.0, \"color\": \"#32bc93\", \"hover\": \"132769.0\"}}, \"mLUf20JHZo0y4cZdGEJL9g\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 109513.0, \"color\": \"#67d2f9\", \"hover\": \"109513.0\"}}, \"W5vKZMcezwUnhC22O8hM9g\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 22948.0, \"color\": \"#96fa14\", \"hover\": \"22948.0\"}}, \"bGDOuVUdJKIu5Ixbo/hl9g\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 47103.0, \"color\": \"#2795b1\", \"hover\": \"47103.0\"}}, \"iDYq70C/dqdj+xr2nJmR9g\": {\"metadata\": {\"community_id\": 457, \"customer_id\": 159976.0, \"color\": \"#b495ee\", \"hover\": \"159976.0\"}}, \"MauRd73SPuaI/SsIA8Wh9g\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 7830.0, \"color\": \"#e4f354\", \"hover\": \"7830.0\"}}, \"p3hHahidj29YCDuFAGKz9g\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 49027.0, \"color\": \"#c093fc\", \"hover\": \"49027.0\"}}, \"vDRBQBe5FIOF6UackNq59g\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 868.0, \"color\": \"#d80bad\", \"hover\": \"868.0\"}}, \"8E4XB9kLowELIYjeWrbT9g\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 92655.0, \"color\": \"#a461cc\", \"hover\": \"92655.0\"}}, \"SW7VFc8aTUoC/Mh9jAjh9g\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 193932.0, \"color\": \"#2f82a1\", \"hover\": \"193932.0\"}}, \"8iXe8Rxo1mY3KR7nSIb99g\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 43028.0, \"color\": \"#99ef99\", \"hover\": \"43028.0\"}}, \"ARQKqak9qdhuK77IC6wK9w\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 109967.0, \"color\": \"#1514df\", \"hover\": \"109967.0\"}}, \"UmPwQU3QXSrVekUbTxop9w\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 144736.0, \"color\": \"#10d82f\", \"hover\": \"144736.0\"}}, \"iFxq8blHvCT13CeFg1Uq9w\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 17740.0, \"color\": \"#1bd89a\", \"hover\": \"17740.0\"}}, \"gc13kItc+IZ6DRIGAC079w\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 36720.0, \"color\": \"#9a62ce\", \"hover\": \"36720.0\"}}, \"IMUJNk7CzjopvcMmzqpY9w\": {\"metadata\": {\"community_id\": 441, \"customer_id\": 85268.0, \"color\": \"#e4e769\", \"hover\": \"85268.0\"}}, \"BOc1xHBOTdSOq7ejXwNe9w\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 32254.0, \"color\": \"#1bd89a\", \"hover\": \"32254.0\"}}, \"p0boa2/V9lIl4dB2qQdk9w\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 118137.0, \"color\": \"#2f55bf\", \"hover\": \"118137.0\"}}, \"M65c5Nr2OwUx4RrgWBt69w\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 40483.0, \"color\": \"#dfd779\", \"hover\": \"40483.0\"}}, \"oLmHykDqis1sd6wnFn+L9w\": {\"metadata\": {\"community_id\": 79, \"customer_id\": 164582.0, \"color\": \"#e46066\", \"hover\": \"164582.0\"}}, \"ooA+ANlPZHsTTGT2ER+g9w\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 57298.0, \"color\": \"#7d88fb\", \"hover\": \"57298.0\"}}, \"kzUAXz7bYWQC2//Px2au9w\": {\"metadata\": {\"community_id\": 500, \"customer_id\": 152092.0, \"color\": \"#d4dd50\", \"hover\": \"152092.0\"}}, \"jV2svVJMSyO+sjV8yHa59w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 29679.0, \"color\": \"#78e968\", \"hover\": \"29679.0\"}}, \"vXN+LDp/laVyi1suSYO89w\": {\"metadata\": {\"community_id\": 100, \"customer_id\": 186614.0, \"color\": \"#41d2d9\", \"hover\": \"186614.0\"}}, \"fwii0M7bzVssIDM+LpTE9w\": {\"metadata\": {\"community_id\": 118, \"customer_id\": 113443.0, \"color\": \"#9c9d2f\", \"hover\": \"113443.0\"}}, \"lmCvKTCRZckGDMS8v1XR9w\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 195040.0, \"color\": \"#8ceceb\", \"hover\": \"195040.0\"}}, \"M3mzslSGFKL89Hr6jj7Y9w\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 1004.0, \"color\": \"#2a72e6\", \"hover\": \"1004.0\"}}, \"kr3m2Rujat20L97MZk719w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 92893.0, \"color\": \"#6bdba1\", \"hover\": \"92893.0\"}}, \"rx7rNseK4tgtTGeyt8759w\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 47444.0, \"color\": \"#f6bf7b\", \"hover\": \"47444.0\"}}, \"ILLw32m9uRu0mMk194ka+A\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 46780.0, \"color\": \"#e4f354\", \"hover\": \"46780.0\"}}, \"h37mnRkwndeMxNuIzr0k+A\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 138127.0, \"color\": \"#5f53f0\", \"hover\": \"138127.0\"}}, \"gHJfO8svh+gm3L4Lwbss+A\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 169814.0, \"color\": \"#4bdb47\", \"hover\": \"169814.0\"}}, \"i1YhmqPsCV5G50aFCHtD+A\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 14120.0, \"color\": \"#eb7a31\", \"hover\": \"14120.0\"}}, \"hVK8NzQ7oT41nmHBitdj+A\": {\"metadata\": {\"community_id\": 554, \"customer_id\": 150625.0, \"color\": \"#2bbee3\", \"hover\": \"150625.0\"}}, \"00+hT3AJnNlMB1LEokJt+A\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 39515.0, \"color\": \"#d80bad\", \"hover\": \"39515.0\"}}, \"J1g4OQI92LIr7/d8aT91+A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 61192.0, \"color\": \"#c12abd\", \"hover\": \"61192.0\"}}, \"6nVimOMEXjUysUG7JcyP+A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 106979.0, \"color\": \"#33b9bc\", \"hover\": \"106979.0\"}}, \"W/xMOfCQTNSfmwDOYwfP+A\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 34322.0, \"color\": \"#8543c3\", \"hover\": \"34322.0\"}}, \"Rg71KvMVmp7RPzqsdMHX+A\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 174247.0, \"color\": \"#a2b81a\", \"hover\": \"174247.0\"}}, \"1T2sFz5Oi3Wp2m3UyDTc+A\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 45514.0, \"color\": \"#f06b92\", \"hover\": \"45514.0\"}}, \"d2qx8yj2Zh1IDP8WjIPe+A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 113411.0, \"color\": \"#62fab8\", \"hover\": \"113411.0\"}}, \"MJMUTT4JMMSyMzSkOKjr+A\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 165096.0, \"color\": \"#9aa92e\", \"hover\": \"165096.0\"}}, \"s50Uk1EXn+VMFjiSTbju+A\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 9697.0, \"color\": \"#36dfc2\", \"hover\": \"9697.0\"}}, \"ki2D2kbSKwtmj52dz5bw+A\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 126624.0, \"color\": \"#78e968\", \"hover\": \"126624.0\"}}, \"odc3xGllAo0CLlmOvS30+A\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 154924.0, \"color\": \"#f9855b\", \"hover\": \"154924.0\"}}, \"iiF7p6VpUVIaVpsvU3UB+Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 42020.0, \"color\": \"#c12abd\", \"hover\": \"42020.0\"}}, \"Po1F1afptpiGxInRk3sK+Q\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 124562.0, \"color\": \"#d8dd94\", \"hover\": \"124562.0\"}}, \"r+f8AzuIChCT+43z1V4r+Q\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 165374.0, \"color\": \"#d6f98a\", \"hover\": \"165374.0\"}}, \"I/O27hbD2ZdHsBYgQYVQ+Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 56401.0, \"color\": \"#f6a0ef\", \"hover\": \"56401.0\"}}, \"/bOpgNw5PZsjwLRRUphn+Q\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 93241.0, \"color\": \"#62fab8\", \"hover\": \"93241.0\"}}, \"J9lncln67Ektsz70Jz1s+Q\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 197692.0, \"color\": \"#25a9a6\", \"hover\": \"197692.0\"}}, \"uutpyYx9BmxXdQaPX/yA+Q\": {\"metadata\": {\"community_id\": 390, \"customer_id\": 116101.0, \"color\": \"#9fb3f1\", \"hover\": \"116101.0\"}}, \"KXsJCgCkQt7RulySZ6+H+Q\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 25328.0, \"color\": \"#f8a36c\", \"hover\": \"25328.0\"}}, \"r8kHtYO3piUAlwogK5+R+Q\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 115460.0, \"color\": \"#62fab8\", \"hover\": \"115460.0\"}}, \"NW0G+AcQre0eRgnoS0q2+Q\": {\"metadata\": {\"community_id\": 541, \"customer_id\": 151820.0, \"color\": \"#88dda0\", \"hover\": \"151820.0\"}}, \"hh6NSnvkUKiF9tEcyxTk+Q\": {\"metadata\": {\"community_id\": 419, \"customer_id\": 197838.0, \"color\": \"#ee82a4\", \"hover\": \"197838.0\"}}, \"RZ1gq+G6Ry3quch8vo8E+g\": {\"metadata\": {\"community_id\": 202, \"customer_id\": 62333.0, \"color\": \"#e1c082\", \"hover\": \"62333.0\"}}, \"7jyOu3xNAXh9K/BlvEEH+g\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 15438.0, \"color\": \"#a32d58\", \"hover\": \"15438.0\"}}, \"WaZcaQu0SHC/mL5lo4gZ+g\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 32284.0, \"color\": \"#a192f1\", \"hover\": \"32284.0\"}}, \"8dAZq6dnSSBoaukyGPkp+g\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 12242.0, \"color\": \"#32fdb8\", \"hover\": \"12242.0\"}}, \"9Ym5cu26ZERosFfZto1n+g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 88860.0, \"color\": \"#b70fc0\", \"hover\": \"88860.0\"}}, \"aA9DZNqpSuugH0fbqslt+g\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 94498.0, \"color\": \"#185cd8\", \"hover\": \"94498.0\"}}, \"rSNn/s244brhIQqf3dJ++g\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 99640.0, \"color\": \"#f0f3a3\", \"hover\": \"99640.0\"}}, \"LIeJPRncazKd2mFj47eC+g\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 92026.0, \"color\": \"#b58c2b\", \"hover\": \"92026.0\"}}, \"yXEVx+7BMBM9SJGPv2+Z+g\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 43272.0, \"color\": \"#4df1e8\", \"hover\": \"43272.0\"}}, \"AF7PlX/ZzcbqbqppKNmq+g\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 9336.0, \"color\": \"#272dca\", \"hover\": \"9336.0\"}}, \"NqodyajY7zmF5d3Dvz7o+g\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 115153.0, \"color\": \"#7a01d9\", \"hover\": \"115153.0\"}}, \"9IPFunlVMTqnxWTnopQX+w\": {\"metadata\": {\"community_id\": 216, \"customer_id\": 5056.0, \"color\": \"#df9414\", \"hover\": \"5056.0\"}}, \"s7tM0RevRJ3A+NCTWbwY+w\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 88091.0, \"color\": \"#80df70\", \"hover\": \"88091.0\"}}, \"ghJksWt+/t2VYaCzm/Qs+w\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 152863.0, \"color\": \"#bb97df\", \"hover\": \"152863.0\"}}, \"tEeYd2NRrb/Qi528JuN1+w\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 75323.0, \"color\": \"#75fa8b\", \"hover\": \"75323.0\"}}, \"5qxQ32uiDgE9ejioUCp3+w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 57022.0, \"color\": \"#45f210\", \"hover\": \"57022.0\"}}, \"ZYIgMFU3qCf6nt4PPviA+w\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 17628.0, \"color\": \"#8ceceb\", \"hover\": \"17628.0\"}}, \"1K11RU9HVahHEfRalAKE+w\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 74603.0, \"color\": \"#d46da8\", \"hover\": \"74603.0\"}}, \"TqzXbkZUYgz9e5gRVLOw+w\": {\"metadata\": {\"community_id\": 397, \"customer_id\": 130416.0, \"color\": \"#dc389c\", \"hover\": \"130416.0\"}}, \"13uhEOHN+3Mmm20+Zv+x+w\": {\"metadata\": {\"community_id\": 328, \"customer_id\": 117556.0, \"color\": \"#c7596d\", \"hover\": \"117556.0\"}}, \"P/7py6K8bExzhGEq33Cz+w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 183741.0, \"color\": \"#78e968\", \"hover\": \"183741.0\"}}, \"VUQ6UQmjN3zdCP6QZmfM+w\": {\"metadata\": {\"community_id\": 555, \"customer_id\": 162096.0, \"color\": \"#f7353d\", \"hover\": \"162096.0\"}}, \"nrmey3lo5Rp0gzeNirbf+w\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 165105.0, \"color\": \"#a2e3bf\", \"hover\": \"165105.0\"}}, \"9mD9nAC16EqruXerVjPh+w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 23957.0, \"color\": \"#6bdba1\", \"hover\": \"23957.0\"}}, \"g8S6E8i7+yu/FTfvB/Hx+w\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 127871.0, \"color\": \"#a372d3\", \"hover\": \"127871.0\"}}, \"budk6JQt4FfXRTibqggC/A\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 67726.0, \"color\": \"#f3585b\", \"hover\": \"67726.0\"}}, \"JER9Xy8EJNJsJUdMor0K/A\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 155052.0, \"color\": \"#f31347\", \"hover\": \"155052.0\"}}, \"Llcr5KlFvbooWVvHhDsk/A\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 47258.0, \"color\": \"#48d68f\", \"hover\": \"47258.0\"}}, \"zIMloag8qUWv9b91U8kx/A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 157278.0, \"color\": \"#62fab8\", \"hover\": \"157278.0\"}}, \"6BlHPEWxjD7W/EXGlQA8/A\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 164205.0, \"color\": \"#45f210\", \"hover\": \"164205.0\"}}, \"Crhp8YifQTQDrSTRS7ZX/A\": {\"metadata\": {\"community_id\": 552, \"customer_id\": 43964.0, \"color\": \"#2432bd\", \"hover\": \"43964.0\"}}, \"en3A02Nh2kO7dedg0Atp/A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 21095.0, \"color\": \"#c12abd\", \"hover\": \"21095.0\"}}, \"jxKUOp9v5E13ytG1Rsdy/A\": {\"metadata\": {\"community_id\": 129, \"customer_id\": 73851.0, \"color\": \"#daee90\", \"hover\": \"73851.0\"}}, \"L5j3a+KEjVvruGkUNWZ0/A\": {\"metadata\": {\"community_id\": 446, \"customer_id\": 144569.0, \"color\": \"#da6ec4\", \"hover\": \"144569.0\"}}, \"LvyOqWz4vSyOBqiyi115/A\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 97620.0, \"color\": \"#6bdba1\", \"hover\": \"97620.0\"}}, \"rwxpB8UX/weoLJqfaRmJ/A\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 137346.0, \"color\": \"#8e21cf\", \"hover\": \"137346.0\"}}, \"wJdydwMBpGIslyVgQAeX/A\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 5558.0, \"color\": \"#f3979c\", \"hover\": \"5558.0\"}}, \"kQosw2/KpfaGFP4bb1WZ/A\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 116662.0, \"color\": \"#d53cea\", \"hover\": \"116662.0\"}}, \"WbjeTkam/jv1EPnvm9ya/A\": {\"metadata\": {\"community_id\": 283, \"customer_id\": 83650.0, \"color\": \"#f696af\", \"hover\": \"83650.0\"}}, \"XEXq4+EHfYmpdLTINBij/A\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 94538.0, \"color\": \"#fd72cc\", \"hover\": \"94538.0\"}}, \"AHEUlQrOxnWxZmPc8t6s/A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 5294.0, \"color\": \"#b70fc0\", \"hover\": \"5294.0\"}}, \"QmC0hKSul+B5fhM04xGv/A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 68576.0, \"color\": \"#b58c2b\", \"hover\": \"68576.0\"}}, \"if2uIOOYU984PgU0edHV/A\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 153366.0, \"color\": \"#8317fe\", \"hover\": \"153366.0\"}}, \"vKmWBYMfWo3uIw8qjxft/A\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 134874.0, \"color\": \"#d2ab67\", \"hover\": \"134874.0\"}}, \"VPdHZjf9KiBl83zYDl/v/A\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 52810.0, \"color\": \"#1bd89a\", \"hover\": \"52810.0\"}}, \"Vdww/iwpIzuxddWe+uDx/A\": {\"metadata\": {\"community_id\": 372, \"customer_id\": 152182.0, \"color\": \"#53f592\", \"hover\": \"152182.0\"}}, \"XXYop3GzPhl9y1ZdDhb0/A\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 126012.0, \"color\": \"#c093fc\", \"hover\": \"126012.0\"}}, \"rbgnt5R6NMMlyp1yD64C/Q\": {\"metadata\": {\"community_id\": 367, \"customer_id\": 19613.0, \"color\": \"#d7e285\", \"hover\": \"19613.0\"}}, \"jkpvxKRjEj8FPx3tXIoH/Q\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 89214.0, \"color\": \"#7eddd4\", \"hover\": \"89214.0\"}}, \"87Wr7TVFyifRYRaEQ6oJ/Q\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 26291.0, \"color\": \"#78e968\", \"hover\": \"26291.0\"}}, \"S0ly3S1BjPwd+7c5UZob/Q\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 194472.0, \"color\": \"#0920dc\", \"hover\": \"194472.0\"}}, \"GFetumiakdGmPB9Is78i/Q\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 27502.0, \"color\": \"#32bc93\", \"hover\": \"27502.0\"}}, \"wVc80t3sNC598XKNFbIp/Q\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 116554.0, \"color\": \"#75fe54\", \"hover\": \"116554.0\"}}, \"cLHU/6vH3d8z8+Z/CLor/Q\": {\"metadata\": {\"community_id\": 554, \"customer_id\": 97513.0, \"color\": \"#2bbee3\", \"hover\": \"97513.0\"}}, \"rMyZnSKrpHKJOv0TZsU+/Q\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 29025.0, \"color\": \"#eba59b\", \"hover\": \"29025.0\"}}, \"6RqXWDqyVqOwgmmmqWtA/Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 127861.0, \"color\": \"#272dca\", \"hover\": \"127861.0\"}}, \"hqp2t7RlXH1cOLweIj9B/Q\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 163252.0, \"color\": \"#81a8e3\", \"hover\": \"163252.0\"}}, \"m6ZpojGcm6og1aNvWaJL/Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 70939.0, \"color\": \"#9ee08f\", \"hover\": \"70939.0\"}}, \"j0LG2TBfq7KBMfdREM9O/Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 135550.0, \"color\": \"#9ee08f\", \"hover\": \"135550.0\"}}, \"TxqzbO7ePlGSEd2f2wxP/Q\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 111794.0, \"color\": \"#dc1d4e\", \"hover\": \"111794.0\"}}, \"+zz49PYLjgQ+HgQ+JdRW/Q\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 57117.0, \"color\": \"#f3a1c6\", \"hover\": \"57117.0\"}}, \"6AgjnpDes64fRskfpRul/Q\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 191840.0, \"color\": \"#dfd779\", \"hover\": \"191840.0\"}}, \"U04BOACjO7txW+arJZbh/Q\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 38505.0, \"color\": \"#e4a1a2\", \"hover\": \"38505.0\"}}, \"PfRfZgTMHakV3AWfo/3x/Q\": {\"metadata\": {\"community_id\": 225, \"customer_id\": 146867.0, \"color\": \"#e95475\", \"hover\": \"146867.0\"}}, \"MUKgszdFzAs+hYndndby/Q\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 144200.0, \"color\": \"#d8dd94\", \"hover\": \"144200.0\"}}, \"UeNVG+95L2zCCPYwGhYQ/g\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 137990.0, \"color\": \"#c95b7f\", \"hover\": \"137990.0\"}}, \"DLqvxwV6cLRbZzV/S6ce/g\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 163629.0, \"color\": \"#a3ace6\", \"hover\": \"163629.0\"}}, \"6sNhg3eDE+xREDSk2Lsh/g\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 12872.0, \"color\": \"#c70b3b\", \"hover\": \"12872.0\"}}, \"DzAacUBELnXef51TNOgh/g\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 143894.0, \"color\": \"#d6b552\", \"hover\": \"143894.0\"}}, \"l6Sm+jycAFacN6Fc/Ho//g\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 47813.0, \"color\": \"#08cad9\", \"hover\": \"47813.0\"}}, \"m2zFkWR4ShPkpk94te9r/g\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 126384.0, \"color\": \"#1807f2\", \"hover\": \"126384.0\"}}, \"c6l/6JPY8da2RBVQz7qV/g\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 42200.0, \"color\": \"#09ef53\", \"hover\": \"42200.0\"}}, \"f1nU9QKf5radbUNVzHHM/g\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 116074.0, \"color\": \"#10d82f\", \"hover\": \"116074.0\"}}, \"oaZRRjQzjqiXM8H0BFXs/g\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 76724.0, \"color\": \"#68e09d\", \"hover\": \"76724.0\"}}, \"h6LTY3LaaE6dWUsrCOYj/w\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 22321.0, \"color\": \"#7aefcb\", \"hover\": \"22321.0\"}}, \"Qy0hhxrb9Nmf8+xAUfVp/w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 60837.0, \"color\": \"#92e5be\", \"hover\": \"60837.0\"}}, \"iZG0kK83mAwI7l40kRt+/w\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 115184.0, \"color\": \"#8c25b7\", \"hover\": \"115184.0\"}}, \"u2at6zf9OYlpg8Ts5KiK/w\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 158088.0, \"color\": \"#0cd5fa\", \"hover\": \"158088.0\"}}, \"H0zZceW5WCpd+LBiEJSR/w\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 199692.0, \"color\": \"#e880f5\", \"hover\": \"199692.0\"}}, \"pQboYj1uZMjFOkzVaqCR/w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 82959.0, \"color\": \"#45f210\", \"hover\": \"82959.0\"}}, \"TeLYnQ4sMDKjTiO/ulKS/w\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 39350.0, \"color\": \"#a461cc\", \"hover\": \"39350.0\"}}, \"TbiaKQeWZOhnP0oW13uX/w\": {\"metadata\": {\"community_id\": 287, \"customer_id\": 118060.0, \"color\": \"#28f3cb\", \"hover\": \"118060.0\"}}, \"g8omXv57dirNyxDKqHKY/w\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 2603.0, \"color\": \"#f3a1c6\", \"hover\": \"2603.0\"}}, \"xU481WCGtb6/SRex5nLP/w\": {\"metadata\": {\"community_id\": 509, \"customer_id\": 123855.0, \"color\": \"#b2fc98\", \"hover\": \"123855.0\"}}, \"ez0QStHl7M10wuzVy4Le/w\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 167632.0, \"color\": \"#4bdb47\", \"hover\": \"167632.0\"}}, \"IOl829hIWWsSYYNSeFTw/w\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 49225.0, \"color\": \"#32bc93\", \"hover\": \"49225.0\"}}, \"NMYv+LLIhjsJ1pMbww3z/w\": {\"metadata\": {\"community_id\": 555, \"customer_id\": 82870.0, \"color\": \"#f7353d\", \"hover\": \"82870.0\"}}}, \"edges\": [{\"source\": \"fVKL4EddhfGDpPg7OR8RJQ\", \"target\": \"hQf90cj929FuImXMCvoPAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HX5tAgQbmKUs5gGEs/gx1g\", \"target\": \"hQf90cj929FuImXMCvoPAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hQf90cj929FuImXMCvoPAA\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PW5eXomrVVdens7S5nsYAA\", \"target\": \"aKkEMSzcA3tK7Ey9aHwJXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PW5eXomrVVdens7S5nsYAA\", \"target\": \"qrsjsWUS7pNe8p0FWJp9kA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"PW5eXomrVVdens7S5nsYAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IG8eHOg/b+unaewr10IpAA\", \"target\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IG8eHOg/b+unaewr10IpAA\", \"target\": \"navgg+2v2IpcTItMEGeWWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3buh1bQHBjYvBLTs3k1pcg\", \"target\": \"IG8eHOg/b+unaewr10IpAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pgaiIo5Awks0fC4Gk+ABPw\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qOLZfj6vsjEJBm5kg+Dv6w\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"rMyZnSKrpHKJOv0TZsU+/Q\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dBRqkyn6shmbpWrSZaHARg\", \"target\": \"fI0SQXFag/uwL3gZbcAzAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YUMbaFzgJYeU3f4B//ckTg\", \"target\": \"fI0SQXFag/uwL3gZbcAzAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6jNVAJhI7DMcPITe0gOFzw\", \"target\": \"fI0SQXFag/uwL3gZbcAzAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TS1jpzHgr2OGkdbO2yRZAA\", \"target\": \"cjaT01wvS95eIsEKQUdEWw\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"TS1jpzHgr2OGkdbO2yRZAA\", \"target\": \"yn7/uMKk6kJRsbDh+tSncA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"cWeqFfe/2MVwGRvaRnVhAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cWeqFfe/2MVwGRvaRnVhAA\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IsbmmrPvHfOSoTAvdVW3mw\", \"target\": \"cWeqFfe/2MVwGRvaRnVhAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tg4htVvjR8oGHx8uubBYDQ\", \"target\": \"zXQksXsT2mt3BhPZ6cWFAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"zXQksXsT2mt3BhPZ6cWFAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OmSfnOYOTGiS6crbu4XSdg\", \"target\": \"zXQksXsT2mt3BhPZ6cWFAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rb3i7BmlE+LOhKhqsvyMAA\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rb3i7BmlE+LOhKhqsvyMAA\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rb3i7BmlE+LOhKhqsvyMAA\", \"target\": \"tH9869I8NvruzTNOD7edxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gt6r2GNUZyrgLRd88ouJQA\", \"target\": \"ywDGLEp7FJEDUqpecKOSAA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"fER/DxHaRHDkeDgOkISTAA\", \"target\": \"jqJFx9HvH9iThG9UFQWpAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fER/DxHaRHDkeDgOkISTAA\", \"target\": \"sclXs6iGF2XdJL6CuOjmFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SuNo1A6pPVft9vfEaDA7PQ\", \"target\": \"fER/DxHaRHDkeDgOkISTAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LYvZLRcYPyx6i9EsF+OdAA\", \"target\": \"Phron2p9O2Ta3MB1nqnQfg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"LYvZLRcYPyx6i9EsF+OdAA\", \"target\": \"iCmJjgRRw00iNyTBA5WEfw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"KMEoeG0uw8FmOZpGW4S/KA\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TETkfceYjomyctQgahadNA\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"d6I/erSUp/qMli3JCSWeAA\", \"target\": \"iqOPT8+OtBjqMEsIZx2STQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NIgmiC1e5egjTL/hoRRzaQ\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d6I/erSUp/qMli3JCSWeAA\", \"target\": \"tNJL9Wj9xM3IyYmtsaGaqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U4i+J3Mg/18Sw6mvXmO4AA\", \"target\": \"Y84rzA1oQbbFi71z+Qn7JA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"U4i+J3Mg/18Sw6mvXmO4AA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U4i+J3Mg/18Sw6mvXmO4AA\", \"target\": \"pA2XvK7a3lX0398AJNHdsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q67OfOXxwmAszDzGwwMu7A\", \"target\": \"Ynri23BTcQZf7q1ZB3nQAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Yaj5oRg5gSr4WRlWPo17g\", \"target\": \"Ynri23BTcQZf7q1ZB3nQAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ynri23BTcQZf7q1ZB3nQAA\", \"target\": \"cinjXKTI9MAJtco6S1n+9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"58W4qaSq64j+ulfZWQ/wAA\", \"target\": \"efFeB1sBxrXang8mpgSWdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"58W4qaSq64j+ulfZWQ/wAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"58W4qaSq64j+ulfZWQ/wAA\", \"target\": \"hM8yiIQ7+esJXnbg0aGGfA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dAmdzT0drYiMbV9rJdJvIw\", \"target\": \"rH6RbiXkJiiUuAAEjKjyAA\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"0J6oEUNhkVYrIsWJGBnL4Q\", \"target\": \"rH6RbiXkJiiUuAAEjKjyAA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"target\": \"ddWC8vEq1erqKkMFxMX2AA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"fJzjXhx6RpVTmbayvJb8AA\", \"target\": \"kr3m2Rujat20L97MZk719w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"fJzjXhx6RpVTmbayvJb8AA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"fJzjXhx6RpVTmbayvJb8AA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0l7C/zbIFeNPorEw6JmxlA\", \"target\": \"wRTW/+oB5yTa8TE0+m0hAQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"target\": \"wRTW/+oB5yTa8TE0+m0hAQ\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"6GKfoX6YG4cXZ/tmSek4AQ\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6GKfoX6YG4cXZ/tmSek4AQ\", \"target\": \"OP3VuJz0MOYOFOeABeBvHw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6GKfoX6YG4cXZ/tmSek4AQ\", \"target\": \"lDzqred3r2TxyB7oTUd/IA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6eYVvoIorRNDLfLelJvIAw\", \"target\": \"dFHxkVjZ2ik0MnOo7Vg/AQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b0c1d26mJFr1jSCe2avt1A\", \"target\": \"dFHxkVjZ2ik0MnOo7Vg/AQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OPbynxn1A1QV0hBtvMlC5A\", \"target\": \"dFHxkVjZ2ik0MnOo7Vg/AQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R4IB/HUVgvrUvfMC8GVKAQ\", \"target\": \"gONZ8FNFW+3XX1iIAp4hKw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"+KNmFytU12EQiuKiLmQCGw\", \"target\": \"NDxcCyBxZoUiLjOrzqtlAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JtLiGrVMyc63d3hcU/qYoA\", \"target\": \"NDxcCyBxZoUiLjOrzqtlAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NDxcCyBxZoUiLjOrzqtlAQ\", \"target\": \"k+P5VcOaZtVHG+bmx8RO3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"target\": \"gDmaiqqCwKaXYRbCoJ12AQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NB36u7yBXPdWuZqt6xVvoA\", \"target\": \"gDmaiqqCwKaXYRbCoJ12AQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"gDmaiqqCwKaXYRbCoJ12AQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"target\": \"xFk+R95VR+VNMHohSoiPAQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"UO0lgGjJDkOz6FUtncKYAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OkpZWWmaKw6a1Opzusv4pg\", \"target\": \"UO0lgGjJDkOz6FUtncKYAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TgyNoh7F93CAwdFFP4NWvA\", \"target\": \"UO0lgGjJDkOz6FUtncKYAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jqJFx9HvH9iThG9UFQWpAQ\", \"target\": \"sclXs6iGF2XdJL6CuOjmFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SuNo1A6pPVft9vfEaDA7PQ\", \"target\": \"jqJFx9HvH9iThG9UFQWpAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+qwToh+fbgIAa8uOXduCbQ\", \"target\": \"V2i35ONWlJBWq4+LQVfIAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"R0VympemlR1IDHdJpudzlA\", \"target\": \"V2i35ONWlJBWq4+LQVfIAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V2i35ONWlJBWq4+LQVfIAQ\", \"target\": \"rZGX7tiTLIup6b1UOtdDoA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AUj6QW3vDA5gQHwExjGtHw\", \"target\": \"jOLAPViUhhy/+Xp6gcrlAQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"9lWRTdSse5DK1FFLjbbtAQ\", \"target\": \"JHN1RRKwapnUWKCl3tIioQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+VLSwuuXCcLbYcRl6hvWtg\", \"target\": \"9lWRTdSse5DK1FFLjbbtAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lWRTdSse5DK1FFLjbbtAQ\", \"target\": \"jl+NiomZ13QCt0ovVOEn1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UFyIf35pkvmN2BDkQ7IHAg\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9SJVLkajTeR4POfLrh2KvQ\", \"target\": \"UFyIf35pkvmN2BDkQ7IHAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"13NDORsV0NBpE78voJX8zg\", \"target\": \"UFyIf35pkvmN2BDkQ7IHAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JHFyiY2GWrFLW2LkHfM0Ag\", \"target\": \"gdgrqfKRzrB2XWkXMYRgQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"JHFyiY2GWrFLW2LkHfM0Ag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BN+YmIxT+3E9xyYfA94pdg\", \"target\": \"JHFyiY2GWrFLW2LkHfM0Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c8YTUXnfbNhnroJsMeNvTg\", \"target\": \"dKV+F/lGc338Se79BNBIAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2WZ+QLWazLW8nSczXoOlzA\", \"target\": \"dKV+F/lGc338Se79BNBIAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MtpjJ6XcmH6qPnAjbjY75A\", \"target\": \"dKV+F/lGc338Se79BNBIAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"xuD5Tu/T3V0eT3pRkefCGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UpdDOZZ/nnNC6z5GD0lrPQ\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"j4IK5nCCNuS7CCju09hlQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"rbgJY/m+OO8EhjJplaEWRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"75emx1Xn05NP13ZlbDnqjg\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"riYzk3GZZhFYefWPcH7rnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Em0/xm51jDdmoLNgvocVtQ\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IPgGExpgq0OmbJYAJoFSwQ\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"cyZ5Pkk5ztmXzP61SVHf3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bXjJTelLYoEi73QE3iZjAg\", \"target\": \"fc6IFrUFydQMo2hfHcOqLg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bXjJTelLYoEi73QE3iZjAg\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bXjJTelLYoEi73QE3iZjAg\", \"target\": \"uczLdKTFHKiIVXA00xpOqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"target\": \"bXjJTelLYoEi73QE3iZjAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2CCWZd0r/q3XhcVZAzQo1A\", \"target\": \"bXjJTelLYoEi73QE3iZjAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"51sIXvwdb1xZwp6D19vL1w\", \"target\": \"bXjJTelLYoEi73QE3iZjAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OJiYUyGs6B5DAq7vTuuOmQ\", \"target\": \"T1K8qvsx95ZGwtuYYWhpAg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"HCQfPvdV3dud4rWme5lsAg\", \"target\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HCQfPvdV3dud4rWme5lsAg\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"74bZRN5X5IW1TnM8MGtaXA\", \"target\": \"HCQfPvdV3dud4rWme5lsAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8T+q5wBfnFew/y6izv5ADA\", \"target\": \"ezqC3OZ5uMF5Au1ZBLhsAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OrBRfCSfh8JjEK1NoKq2JA\", \"target\": \"ezqC3OZ5uMF5Au1ZBLhsAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Lkk4/i0RsX0pZPWuSQ+3g\", \"target\": \"ezqC3OZ5uMF5Au1ZBLhsAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MCapP5unA/zN5ZVofbt5Ag\", \"target\": \"wwgZ4aqOeVTXMNCdUON5WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MCapP5unA/zN5ZVofbt5Ag\", \"target\": \"g2//Y847Q3iYW+VM33+Ksw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MCapP5unA/zN5ZVofbt5Ag\", \"target\": \"xGYjzaN7LnHvZGeHcLTD0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c/FYJcXeWjIHYyY6uVwytw\", \"target\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"3VKE9O3qoeFicDCMezlWxA\", \"target\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"csFxYhlUWSAO8d1wOmf21Q\", \"target\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"target\": \"irv2V2npI9brdjcEY6Oj7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2lyFL4MZm9NN+aGet2M8Jg\", \"target\": \"FmbUTCW+dXlCtaOElLmlAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ThrLo2r7sbGKGToF5D/UA\", \"target\": \"FmbUTCW+dXlCtaOElLmlAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6qLyFjJCSb5H4btWpQA2eA\", \"target\": \"FmbUTCW+dXlCtaOElLmlAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BsPPFI0hRbbHh2Yj6wNZHQ\", \"target\": \"hd4qptNMNRHMho4wDPi1Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"hd4qptNMNRHMho4wDPi1Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5gbSqQi7aHAiU/tNOC4hqQ\", \"target\": \"hd4qptNMNRHMho4wDPi1Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4zB2+QLb9Jh+kso8ALPFAg\", \"target\": \"5iSNxr/itO4I17fTbTbe0Q\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"XgXD4ybBbpiAlnG51DRSjw\", \"target\": \"uDUms27bopm4431AO3jRAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lDoIy/LAU8b2oJsLZrxV7Q\", \"target\": \"uDUms27bopm4431AO3jRAg\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"XLE2vu1FUTz8Xy1xR5HyAg\", \"target\": \"qBq08MAwQ9kFkITDvTQaFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IQM9aWomrU3BEDzBJmVLug\", \"target\": \"XLE2vu1FUTz8Xy1xR5HyAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ARQKqak9qdhuK77IC6wK9w\", \"target\": \"XLE2vu1FUTz8Xy1xR5HyAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H+It2SD4KPOr34Qht7sHsw\", \"target\": \"YfiKcShGGIA2CCmhUFT4Ag\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"NebVzZMmzgiasU+OJOAHAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"ZK6YeSt70T5UPes8Tj68ig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"IsbmmrPvHfOSoTAvdVW3mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"eJfOofg/VkU3qdrZNfHY1g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"l0YHJYM4046cMOuZp7BR2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NebVzZMmzgiasU+OJOAHAw\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NebVzZMmzgiasU+OJOAHAw\", \"target\": \"l0YHJYM4046cMOuZp7BR2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JTvwqLDX31+2hz07xl5yOg\", \"target\": \"nDUnoHoN1IZz5VVEbw0IAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"nDUnoHoN1IZz5VVEbw0IAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nDUnoHoN1IZz5VVEbw0IAw\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SaBANbUR2bQfaUhYskW9CA\", \"target\": \"njfAI7X9I/LeJL0XOHAMAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hmoij6THJzrv9Ud2clOGIA\", \"target\": \"njfAI7X9I/LeJL0XOHAMAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dyG5yCEuXNa7zINq/JKjYg\", \"target\": \"njfAI7X9I/LeJL0XOHAMAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jmHEm9bw2NfaqUmujDITAw\", \"target\": \"vyL9TIMjcuScOBNcE+ScRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eNm73uTArP4UKMj8vLHpRw\", \"target\": \"jmHEm9bw2NfaqUmujDITAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"jmHEm9bw2NfaqUmujDITAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUmeD6EQPRf0Zw7B+iN6Rg\", \"target\": \"mEi10Jc94OYw+33Y7Y4qAw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"FtdeHjc9NwGOcxZhz/NLAw\", \"target\": \"aUsB1m1dWOhCOv1IOrurOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FtdeHjc9NwGOcxZhz/NLAw\", \"target\": \"jDNhsvbjunwQKLmvhy38bw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"FtdeHjc9NwGOcxZhz/NLAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gsc5I5v27i46ZSFXLzgsaw\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8DMefT1OSM5d4f8qFzt9kA\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lnJYySQ1nGxJ0pjUAVqwg\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"swp8nA1IIlV5HAlku2M7xg\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SdLACOA5NHzMq25kxSWf1g\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pQboYj1uZMjFOkzVaqCR/w\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B/PZxF0sz0DmnH62c7wt0A\", \"target\": \"oUk3kJWF+hNWYPEDJst4Aw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"TEAWGHOPP2tHHZOSAaaHAw\", \"target\": \"aZ9AyPjf2OgaKfRYk4KuRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TEAWGHOPP2tHHZOSAaaHAw\", \"target\": \"YRplCx8z9GNMnXrPdwUkWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TEAWGHOPP2tHHZOSAaaHAw\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ecEqhLbyDQgEYoVuFzsD0Q\", \"target\": \"jBwZb8cDwBQ8vw1sOumcAw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"DKE0oHHGtU5ACYya+k/FGA\", \"target\": \"boWAWGMTTmVsVRAQAbKjAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"boWAWGMTTmVsVRAQAbKjAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"boWAWGMTTmVsVRAQAbKjAw\", \"target\": \"zl2ldV3zCVo7TVH54oYQyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"h7tJb75L/DGOrm2tEwq6Aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h7tJb75L/DGOrm2tEwq6Aw\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"R2NZRIws+qXh4yWI4/Iayg\", \"target\": \"h7tJb75L/DGOrm2tEwq6Aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dN9W3T2orZCjIBwgp+G7Aw\", \"target\": \"v/vdz8S9uvE40Xq38f5rIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Oho6Z20dihFORKOVpu6SQ\", \"target\": \"dN9W3T2orZCjIBwgp+G7Aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dN9W3T2orZCjIBwgp+G7Aw\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XkYOl3ks1X2aSgiy+kcncg\", \"target\": \"YnPv4j68pE/W942eamy+Aw\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"KZtvq/LYMl5NR+CL3I0cfA\", \"target\": \"YnPv4j68pE/W942eamy+Aw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"6eYVvoIorRNDLfLelJvIAw\", \"target\": \"b0c1d26mJFr1jSCe2avt1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6eYVvoIorRNDLfLelJvIAw\", \"target\": \"OPbynxn1A1QV0hBtvMlC5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NQycxBqIh2cAluZ/Nfbimg\", \"target\": \"qJ2LGi8vR2yFU+3Ag9/TAw\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"target\": \"bYXVmppvlbPB4PlIcylRGg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"target\": \"VWYTv+j475LNrLs7gCP9Qg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"target\": \"navgg+2v2IpcTItMEGeWWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3buh1bQHBjYvBLTs3k1pcg\", \"target\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"kzsOxATPrhpBx7IBvCnnAw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"kzsOxATPrhpBx7IBvCnnAw\", \"target\": \"lohttfXsDNw5mIztqHPOvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X7rqqVePj30IkrUqT51Y2w\", \"target\": \"kzsOxATPrhpBx7IBvCnnAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PWbZ/xn60ZHGlQtufbHz6w\", \"target\": \"kzsOxATPrhpBx7IBvCnnAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"t6XdsRzzXBLRdH5YUv3tAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"target\": \"t6XdsRzzXBLRdH5YUv3tAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AohI5f/BkoR8P/9gC7RUzw\", \"target\": \"t6XdsRzzXBLRdH5YUv3tAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iDe29J4gwYshIWUHA/b3Aw\", \"target\": \"pFICOOzAX8cSt8/tz2OSsA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"/5aq7+ftpNqXyXw1sIEABA\", \"target\": \"4DmdVWN83PEzQefueAI5FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/5aq7+ftpNqXyXw1sIEABA\", \"target\": \"HiQHZwhiV5ctprO+wg5bGQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/5aq7+ftpNqXyXw1sIEABA\", \"target\": \"suNMjRNdU2uGcnzGvZaFoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EKGxuN6zNqEuBdsNTTQ2bA\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rjKKulZvbM7JwFTyyDQHBA\", \"target\": \"v6rEtj7X5ZMJKzcuXNJhhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rjKKulZvbM7JwFTyyDQHBA\", \"target\": \"xmdiNDAZrXb96DU6G+YMjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H+wkAyPI5bSb8Bb+y88Lqg\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hGQwGeez8E92ZELQ24STqw\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rjKKulZvbM7JwFTyyDQHBA\", \"target\": \"uXgRv+EhLbgeoK6stpaXww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BqRKgn0/xYzfcP4hJf0j6A\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34S4/qPUMbfIiVg4qPcv9Q\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m2zFkWR4ShPkpk94te9r/g\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UNOLeg/WMaA/VufGSfsoBA\", \"target\": \"hz+LWfgYGJpvD5KkesmnHQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"402+Q4nAghzmmhzcXv9sUw\", \"target\": \"q7YXEwzZduMnshd7h280BA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"I30MbYfSHDEjmEPf+7g6BA\", \"target\": \"LWvoOHWcJwMOVIrQGvXLQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I30MbYfSHDEjmEPf+7g6BA\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I30MbYfSHDEjmEPf+7g6BA\", \"target\": \"Lkgw2dolfwaJQyooYYppfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"k0T6CV1d9JF83IPY9sRpBA\", \"target\": \"ym1mmV/zdlaPSNH2NZRaQw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"eASPTOXK12Ia9KKBynl7BA\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eASPTOXK12Ia9KKBynl7BA\", \"target\": \"qnfy1S5fbWxIZW6Zb7k6YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2HdF9Vrsld08yjF+lXBrdQ\", \"target\": \"eASPTOXK12Ia9KKBynl7BA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G5OBgEAy078qSQ8c2NaJBA\", \"target\": \"pslubpS6aAxQnPsj4LiuXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G5OBgEAy078qSQ8c2NaJBA\", \"target\": \"bp/cH5b+nBTbc8NY0tOcow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G5OBgEAy078qSQ8c2NaJBA\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c9uAkbAxw0Nggb2/V2aNog\", \"target\": \"dFZgvv+KytDAWW2FZvWeBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"dFZgvv+KytDAWW2FZvWeBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y/HkWrJ/U/Bxbdr7NgH3sw\", \"target\": \"dFZgvv+KytDAWW2FZvWeBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dFZgvv+KytDAWW2FZvWeBA\", \"target\": \"rWsZvRAvM0Pq4qaN4/BJ0w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"JL2vKI4zx00+rvHhg/a3BA\", \"target\": \"n/wtIbSj4hJctHmq4SrGUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JL2vKI4zx00+rvHhg/a3BA\", \"target\": \"iImUqiPNPbAQT9k7P7UswA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"FP3VoLmMd2eZRBobuqshxQ\", \"target\": \"JL2vKI4zx00+rvHhg/a3BA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7B3pLJTfNbhA56BMabUB5Q\", \"target\": \"JL2vKI4zx00+rvHhg/a3BA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XlsXjzT8f9ch/bu0Se+BA\", \"target\": \"muD2o32/rvJ6qO3uaY8vQw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XlsXjzT8f9ch/bu0Se+BA\", \"target\": \"v6OGQ3IGrh7t1+9Pc5ClVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XlsXjzT8f9ch/bu0Se+BA\", \"target\": \"olMAQl+wwkOfD/g3eOeP0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EeLZzQRqDNrmxT6Ry8jILQ\", \"target\": \"weWsVGpyQWEtcjno/vjDBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gUFSWzIUmsXeT+D4FdTbWA\", \"target\": \"weWsVGpyQWEtcjno/vjDBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MX1iQXm9JIumNefXUd9PXA\", \"target\": \"weWsVGpyQWEtcjno/vjDBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"EpojG5aJx6PyG41OzHPFBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"EpojG5aJx6PyG41OzHPFBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpojG5aJx6PyG41OzHPFBA\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+dvhAHBxRpcc3JD0l919MA\", \"target\": \"EpojG5aJx6PyG41OzHPFBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpojG5aJx6PyG41OzHPFBA\", \"target\": \"X9jduueKJ+ghpIqAdXSLWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpojG5aJx6PyG41OzHPFBA\", \"target\": \"j8j5NMqGbzwWyCZEIxS8sg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mwfUPAmhfq3WL1IJbJnmBA\", \"target\": \"u0hqitzAeMaRXHE8QpRhow\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"mwfUPAmhfq3WL1IJbJnmBA\", \"target\": \"rWQC/DPCbi8TmSYUD9IW7g\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"recx5iQEJCHdzKCUtRzqBA\", \"target\": \"vL+/RI7kdpbY/Np/ysigXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"recx5iQEJCHdzKCUtRzqBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"recx5iQEJCHdzKCUtRzqBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eq74A7rCBGlzj9kZ5ivyBA\", \"target\": \"gIxrZCDuvc5b7R0ldO3ofA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"0+rvvOXJDQjr7VAdZsx7ew\", \"target\": \"MtE30z/9i4UlBVz237X3BA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EPqSyzWGXSd1L8fp3h/Uow\", \"target\": \"MtE30z/9i4UlBVz237X3BA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"MtE30z/9i4UlBVz237X3BA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ECPLScyImUDmwsrLCs5Uw\", \"target\": \"Ld5SnvpmO0dTU9pLJ9VZBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ld5SnvpmO0dTU9pLJ9VZBQ\", \"target\": \"f+E8VIalbsW65FQq5Z+peQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JHN1RRKwapnUWKCl3tIioQ\", \"target\": \"Ld5SnvpmO0dTU9pLJ9VZBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oPA7Ek4wtSq0BMvlM9NbBQ\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KvjMCetZz2V1Zmw8U58vnA\", \"target\": \"oPA7Ek4wtSq0BMvlM9NbBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oPA7Ek4wtSq0BMvlM9NbBQ\", \"target\": \"qlJAbL1oAT+FwtNvVKFspA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O0bYqn+5ERSyAfk2Hp0JGA\", \"target\": \"sOtAEyswqgKga5X8XaJnBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"sOtAEyswqgKga5X8XaJnBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"sOtAEyswqgKga5X8XaJnBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L4sDCVFWrTHh7llFYJt7BQ\", \"target\": \"Twc7MU80HZFmKWQy9ecLEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L4sDCVFWrTHh7llFYJt7BQ\", \"target\": \"uM6ABrtAGxdrSP3XP8y9Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"L4sDCVFWrTHh7llFYJt7BQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ZpUxaN+Bxlij295UkHIxA\", \"target\": \"XlUvPcSVB19I7/xBVi18BQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"jOQmPyjpJ2VZCJGgDj8CCQ\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"T34SlORyNdAitBu1jVAVaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"7464ADYEqh2JXvYPcQ9YmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GGG3GLyEkkn6TlX9FkYjNg\", \"target\": \"x2PpcJCRk3CPPXasFMSMBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JZ/SP3mwjV46p9S5v9Mwgw\", \"target\": \"x2PpcJCRk3CPPXasFMSMBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tag4XqPZ1ovS8C2YXBc2iw\", \"target\": \"x2PpcJCRk3CPPXasFMSMBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VIllveNwdGr1N7Obls5ozQ\", \"target\": \"ia0ODu/Mzcn+VMhzIPuiBQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"p6f1uKYuioXHNdpVxiiLLQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"X9jduueKJ+ghpIqAdXSLWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"/RiRhji19HANI2EN5WdnhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"/VSjNgh6mEKfWVR2yolAmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"j8j5NMqGbzwWyCZEIxS8sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"AAoMjjx0U7e1swPFxDgm1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WABQPNkh2bbg/P7bjkCsBQ\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WABQPNkh2bbg/P7bjkCsBQ\", \"target\": \"k55CIte3Gp7p6qcb3qdhaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"WABQPNkh2bbg/P7bjkCsBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tbTvcuy9kJL2IF+hTs/KBQ\", \"target\": \"xabMDvWi51n0Cul936172g\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"h37mnRkwndeMxNuIzr0k+A\", \"target\": \"m1CBBx6XxEjJqDAajmXWBQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"o2bKAZR6aYNtSggKGSVPhw\", \"target\": \"oVvh1/LhQNGZkZa6/BXjBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RrwVqK/gCHzzTMUpXDhB6Q\", \"target\": \"oVvh1/LhQNGZkZa6/BXjBQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TjSWBmQ46SH6wSdnCe5g8w\", \"target\": \"oVvh1/LhQNGZkZa6/BXjBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpcQIYBeWxlYbVGbUuUNBg\", \"target\": \"fcFSRQ5f5s0sLFOMwmYsiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EpcQIYBeWxlYbVGbUuUNBg\", \"target\": \"RY9tUqtEDoNHUOJc5OdH0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"EpcQIYBeWxlYbVGbUuUNBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"krbO1Orz4+7uOfN3/U0VBg\", \"target\": \"vRAPwQoW49NhdfqTKtHjIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iCmnZi9CFvdYvyiq1vugYA\", \"target\": \"krbO1Orz4+7uOfN3/U0VBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4fsPI0x1OUVboOOVA84FzQ\", \"target\": \"krbO1Orz4+7uOfN3/U0VBg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OPRaSJorA7Bn84ebGAcbBg\", \"target\": \"lVZDXqF6yl10XUMzZzLN9A\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"8gDLDfXLxM28SJRP0dizSA\", \"target\": \"L+WoRdbM8VN0eR4BJH8kBg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"+zyhG4nujadKknUVwouJew\", \"target\": \"W6tdbPp/lngBYmJ1jRA9Bg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6PmG+WOw26Drh15tZVs1fA\", \"target\": \"W6tdbPp/lngBYmJ1jRA9Bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"W6tdbPp/lngBYmJ1jRA9Bg\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SgMaBxIjaJ4QFHkgR8jgFA\", \"target\": \"vyneOlAXeITWh9VMTnlpBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Oon+nAU+Py1QICO0rL3Lg\", \"target\": \"vyneOlAXeITWh9VMTnlpBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0tfzKiqfAXj9nFago+QBRw\", \"target\": \"vyneOlAXeITWh9VMTnlpBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+dvhAHBxRpcc3JD0l919MA\", \"target\": \"3vRzyyQTeevcUQARp057Bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"Of3cqqWX3hgee7b+lotWVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"VPdHZjf9KiBl83zYDl/v/A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"wejGITS2BOdmjKi8FU98Bg\", \"target\": \"yJIJ7wkgqGm/P0x11wpmeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"wejGITS2BOdmjKi8FU98Bg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wejGITS2BOdmjKi8FU98Bg\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Dgq/UdldN2qmFsTmC6ZBg\", \"target\": \"D32fNkXbGb8JntDyIq0DVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2a+0fWSXMHaZ2Hov9wcXcw\", \"target\": \"9Dgq/UdldN2qmFsTmC6ZBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Dgq/UdldN2qmFsTmC6ZBg\", \"target\": \"E5A0lMr/AClmZHz1S2qRtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+ukLSirK9Uz5XpuYpv9NJg\", \"target\": \"FYbzAow8vzQx9kBhUKjEBg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FYbzAow8vzQx9kBhUKjEBg\", \"target\": \"gRn+/8gycwpXhkV24zExlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FYbzAow8vzQx9kBhUKjEBg\", \"target\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wHck3P+jbG5b7P7g6njBg\", \"target\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wHck3P+jbG5b7P7g6njBg\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0wHck3P+jbG5b7P7g6njBg\", \"target\": \"AOZ6RzZdEBiJwiF5Ba7v2Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3zEvoHEuEfGdg42FaZwNKg\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"AM3uwVnDG1KnTdlX1elJzA\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"JER9Xy8EJNJsJUdMor0K/A\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"ghRXhwcooWZVz+sji7osBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RTckRKEGiClaU/kOghmIWQ\", \"target\": \"ghRXhwcooWZVz+sji7osBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ghRXhwcooWZVz+sji7osBw\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YB0LA09nHexQq8yaL6RqJA\", \"target\": \"rIV/xeomuiLXmdx2FXNKBw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KXmPvXyy4ZqMu2NJW680bw\", \"target\": \"rIV/xeomuiLXmdx2FXNKBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kwhLDg0U+a3YNXYiod7Vxg\", \"target\": \"rIV/xeomuiLXmdx2FXNKBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5tI3LUyY0xlcEPUXgstLBw\", \"target\": \"deCbWH/yBvku8SIrHZFsTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5tI3LUyY0xlcEPUXgstLBw\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5tI3LUyY0xlcEPUXgstLBw\", \"target\": \"QGgfp0R2eZB+GeRcldbr3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"vmXUUgC4eVFgr5kzAftUBw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"C0NnqLBhV+x4qrVn6I0TVw\", \"target\": \"VjJomYArChr9VC8MLDuRBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"target\": \"VjJomYArChr9VC8MLDuRBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"target\": \"VjJomYArChr9VC8MLDuRBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"lApkjHlZQL30kASE3uHCBw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"Ee+PzZHHk1pLNU6kTEnDKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"dOitCDCE63Unt2Uz+02yPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"2xWzE0Ep6ErJ3OdsXO9HqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"Qj3rnYYTG625wVOHb1OG2g\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"poVGGFYyF0gYXNCFJkQI0g\", \"target\": \"xm9BSRzU9csZKcndYMbQBw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"1gbwYab1ggpNW1ZgEUvqBw\", \"target\": \"D8uBDEKTvYV7V2AXqdYNRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1gbwYab1ggpNW1ZgEUvqBw\", \"target\": \"hWotMeINwSMsuStZDvr2mw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1gbwYab1ggpNW1ZgEUvqBw\", \"target\": \"FgYx9haFz7m/jpwNa8RpoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ni7y9F5zD15CH+lj9WSJvw\", \"target\": \"i0B7Cxb5LxImrSSUJbgNCA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"OTYw29EpzE8fZI954el3Rg\", \"target\": \"qBVSMRip8iPJgMQHjR8SCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"71iA9qV2BUl8sqhSgukASA\", \"target\": \"qBVSMRip8iPJgMQHjR8SCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gU019BfAhgOxjJPgknBZpQ\", \"target\": \"qBVSMRip8iPJgMQHjR8SCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"target\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DiTNRzvHxe9KujjLA7t6dw\", \"target\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RcN8xiuUhv2kkieL87f/ig\", \"target\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"target\": \"hvsaBnv2e212vOtI9S2HwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9myB9RP92+4bs0DcfUY/CA\", \"target\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"Wadm1Lv/yBVy7yCmh8nkHg\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Vd7FOp9N0ziiH4xcw34vTA\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mnnag11a3xzR2DFZMNdTCA\", \"target\": \"vZRT0MW4o7/ERY8DWdbdrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q62OQKXh0F0IVOGJ/nxxsw\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9T2ULlgOdsI1nizKDTvRDw\", \"target\": \"WCwzOmjwPWbpLhw2NFCICA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"WCwzOmjwPWbpLhw2NFCICA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WCwzOmjwPWbpLhw2NFCICA\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HXJ7/V8OtxHH2EN916GePA\", \"target\": \"RkaicZuK8b+6K3e9xpupCA\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"3jrXS2+LmrfF9eZI2o6rCA\", \"target\": \"rzFcxkmo/fUZ0TWEtvO2Mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3jrXS2+LmrfF9eZI2o6rCA\", \"target\": \"LbpAv4RD73ZyJlP8Viv4ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3jrXS2+LmrfF9eZI2o6rCA\", \"target\": \"8+ZNPAfLfJ4E3rqIsOm3zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"eyAGwsikTSRHjosKLqBeLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"72sWJrEiMlL0pIoWjHY5WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"O6j0sHDBfrnArqvkE5CKXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"BZgWCBNlAJw0MgydF4igoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"r1iREzOib40Fq3xYyqDR0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"wZSNMWPhftzSTbrv/fr26w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"LW7RUp4WpBDp3yrEPkJV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"J1g4OQI92LIr7/d8aT91+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2UD2PaViHF8ssFnmB6i1JA\", \"target\": \"Wwwb2NcSPoh6VpCTJ/2vCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wwwb2NcSPoh6VpCTJ/2vCA\", \"target\": \"XXV6z+C21UqJfmBajVoCvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"target\": \"Wwwb2NcSPoh6VpCTJ/2vCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hmoij6THJzrv9Ud2clOGIA\", \"target\": \"SaBANbUR2bQfaUhYskW9CA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SaBANbUR2bQfaUhYskW9CA\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rlz1JkRVqbwaCVUWl/fHA\", \"target\": \"6Fqk6IruRBNgJN0iEHwACQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Fqk6IruRBNgJN0iEHwACQ\", \"target\": \"VZDm4Fhi1cPeNnGwibUPPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Fqk6IruRBNgJN0iEHwACQ\", \"target\": \"shPnJN4xCSk7oXmY9Q4wuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"wBPjg88aMjlnEh95gkEOCQ\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"uELFW8vZx+O4j0k4uggbCQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X5dyuyZq3obza709mjmSrg\", \"target\": \"uELFW8vZx+O4j0k4uggbCQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8iXe8Rxo1mY3KR7nSIb99g\", \"target\": \"uELFW8vZx+O4j0k4uggbCQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/8ZHI0PSoRjZLb0dttQiCQ\", \"target\": \"jyjn/VXmPCyky36DAXHIRg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"1diDn2TqVXffSDwuCsufwA\", \"target\": \"pemNyO15uTZEp00imOk6CQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"Mm0vBMit1GguUSAVAZk8CQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"target\": \"Mm0vBMit1GguUSAVAZk8CQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"Mm0vBMit1GguUSAVAZk8CQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"WtJSCwtDxnvu4DgTlZNICQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K53b7HORgyhLUuQ9WN0kbA\", \"target\": \"WtJSCwtDxnvu4DgTlZNICQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"WtJSCwtDxnvu4DgTlZNICQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FGyuprTxUFE21nTnfcVLCQ\", \"target\": \"tt5c/hfUXcsvf076ArMHkA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"JuVP3exlf4shYDoAoKVSqw\", \"target\": \"noYMPGSzt8FmEPjFjBxVCQ\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"/sG+lWv0qnoQuVdyd5KUUw\", \"target\": \"1bo994GZOV8HEds5eJJdCQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1bo994GZOV8HEds5eJJdCQ\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1bo994GZOV8HEds5eJJdCQ\", \"target\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QA/4eqtZ2nkJ9kFc29hgCQ\", \"target\": \"aU4n2x4OPkJodk0KxvLYig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QA/4eqtZ2nkJ9kFc29hgCQ\", \"target\": \"R9reG8IlWahr3kb1OVLP5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QA/4eqtZ2nkJ9kFc29hgCQ\", \"target\": \"ya2o5/Rbz4LKL7fJB/aH8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"LvOiWpCmoGTwHrNYQ0mpHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"oMgttsFpag2MzaDeUJLmQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"AWjelWpqAs1TTbdNOEv63w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9RJFsdiJwVjivPdqJGglA\", \"target\": \"lgj72idvG8jObtcuyfuDCQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"lgj72idvG8jObtcuyfuDCQ\", \"target\": \"vXN+LDp/laVyi1suSYO89w\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"target\": \"ixroP3o8cYcrdNuKfyajCQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"OLXOzJVz75+GOsLskyKgxw\", \"target\": \"xOfZoAfLV2KucgwJ/2G2CQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"SchPEfGmLGDrGUJawxRbxw\", \"target\": \"tm2icdHnb7GlDxJ6W1m9CQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"UREpM2NrwJ3mDq2vU5pV5w\", \"target\": \"tm2icdHnb7GlDxJ6W1m9CQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"4SV/Zm1taO3Sqac5TAHjCQ\", \"target\": \"WE/sSgPkeYnLGUNDQA/Rxg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"target\": \"f5y9NZ/5KqlQ9HqDpcXuCQ\", \"metadata\": {\"weight\": 46, \"hover\": 46}}, {\"source\": \"f5y9NZ/5KqlQ9HqDpcXuCQ\", \"target\": \"lkzhROxDtXgOQX5cWdPhSw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"SlRbWsroLBnECZVyHkDkwQ\", \"target\": \"f5y9NZ/5KqlQ9HqDpcXuCQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"7hu/3SxzMzOw+99hxtf/CQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7hu/3SxzMzOw+99hxtf/CQ\", \"target\": \"BdDwgZDolJQo4Ovd47SGIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7hu/3SxzMzOw+99hxtf/CQ\", \"target\": \"SECy+0u+2YtIyzgbZIcgSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"At3rUhegSM4L6VVjR4gMCg\", \"target\": \"CxXkjGu2Nlr/09RxlGrpRQ\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"0RrC2C1QeJuEtTZ5IdghCg\", \"target\": \"4P7OO9NwOYS6JeJqHVBNCw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"0RrC2C1QeJuEtTZ5IdghCg\", \"target\": \"eXyRv8MXYpLkGNQSuZBjmQ\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"0RrC2C1QeJuEtTZ5IdghCg\", \"target\": \"8RvOVn53HohruwyrXukI4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JoTHChXP0mi1f8VYxlwkCg\", \"target\": \"rXfvX3u/2hfcp3byjIJBRw\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"JoTHChXP0mi1f8VYxlwkCg\", \"target\": \"t4T3wmGipQx4c4H54HxOiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JoTHChXP0mi1f8VYxlwkCg\", \"target\": \"nQbo89EjFqendC5KI+7G5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZU+OQckB0MkyN1L5DK2HFg\", \"target\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"74bZRN5X5IW1TnM8MGtaXA\", \"target\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"czubaTois5tckUTLyS9bCg\", \"target\": \"kX1AeJhRCfClQVM+CSaZPg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"n4roh3AOe24VZvsRp3GOCg\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F5HRLcAVvtui7yRoAlPYYw\", \"target\": \"n4roh3AOe24VZvsRp3GOCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"f0mUmJg46NO2Wq++aSKWZg\", \"target\": \"n4roh3AOe24VZvsRp3GOCg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"/vWYb5IsDMKj6AN7glY4rA\", \"target\": \"n4roh3AOe24VZvsRp3GOCg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7BBG6FgT1nw6/Z7scC0Srg\", \"target\": \"ok/Lchkv4GjTnk17aaeZCg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"PLGQnhzQvSiNlgoZ53mxCg\", \"target\": \"Z8jlpMCdujC4++qzmq3BPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PLGQnhzQvSiNlgoZ53mxCg\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"PLGQnhzQvSiNlgoZ53mxCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FX0+HeMaZhtd3d6RYuS3Cg\", \"target\": \"rK+9r/bJqlMdwX6xNutDWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"68Q7ajA1itdZfaO6FmPPZg\", \"target\": \"FX0+HeMaZhtd3d6RYuS3Cg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FX0+HeMaZhtd3d6RYuS3Cg\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5jVxL0tV6gu/JeDMXjrJCg\", \"target\": \"hYb/rNnUevsWhOUyS1R9oA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"/DasHcz9qDrGxipjpxZYPw\", \"target\": \"ddiFjjFLVjBntpPih2rVCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2fLiXD3Oi+ti5kp4tkA5cw\", \"target\": \"ddiFjjFLVjBntpPih2rVCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ddiFjjFLVjBntpPih2rVCg\", \"target\": \"ooA+ANlPZHsTTGT2ER+g9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C4Of7edAVhVldWmHOs7pCg\", \"target\": \"ud5x3n4d6/TNWqjX6Uwwyw\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"PyX2urRShWHuCxtIg3wHCw\", \"target\": \"Zt02CNrU6B6qoZWAhb0yqQ\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E1+WI9OuYxMGF9bKHnDWdg\", \"target\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"target\": \"Pp3qG3oSNALuUCiYsoPszA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"target\": \"x7rARw2qNlJ5MASYYmzq0w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"NBxN5qJ8r7125hIr2g4fCw\", \"target\": \"fTIctR0vW2sc4q6ZyMg6XQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NBxN5qJ8r7125hIr2g4fCw\", \"target\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NBxN5qJ8r7125hIr2g4fCw\", \"target\": \"rwxpB8UX/weoLJqfaRmJ/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"Y2m2ytV0Q1JDR/YJX38+Cw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xi2Gq8LSXq700zET/00Esg\", \"target\": \"Y2m2ytV0Q1JDR/YJX38+Cw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y2m2ytV0Q1JDR/YJX38+Cw\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M1JMvCs+uDhLtqeDvq0/Cw\", \"target\": \"fwii0M7bzVssIDM+LpTE9w\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"WVjZ3jfRpc6j80QIVDVJCw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WVjZ3jfRpc6j80QIVDVJCw\", \"target\": \"icW9xFiUc3lytmLbrRx/hA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WVjZ3jfRpc6j80QIVDVJCw\", \"target\": \"XIRrwR+1QmICAcgD/JfPrQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4P7OO9NwOYS6JeJqHVBNCw\", \"target\": \"fGRC6V2KP/aLwu7ryLIH4A\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"+frVo3muv6V06M/IKtzvLg\", \"target\": \"KlmYcWvHRSzF4ZNlEcxnCw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"4cWGKQFBhAZ6Esy/epNxCw\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4cWGKQFBhAZ6Esy/epNxCw\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4cWGKQFBhAZ6Esy/epNxCw\", \"target\": \"WSYFeSzGx7LhdNhRlOcfzg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"73yjV+3srPBqZeDnfep6Cw\", \"target\": \"QDWv7h3lOsHFQ1F5qRaXdg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"HWEW1PkDeiZClhSCd6pjIg\", \"target\": \"vwAGZn6uuaOVd++P1UOFCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uRBQkWEdVbeNQ9xfJLkIRg\", \"target\": \"vwAGZn6uuaOVd++P1UOFCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oLBEewI2+TtOi/P+zFONmw\", \"target\": \"vwAGZn6uuaOVd++P1UOFCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"21kRQo8Kh+9oMACtB7K9Cw\", \"target\": \"amTcXluqwFvvCKvAyPmXhA\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"target\": \"Z3dQiuHWEPMgFSV0fhboCw\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"FFbkW5jsHSFbGrWaW3rsCw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FFbkW5jsHSFbGrWaW3rsCw\", \"target\": \"KF5Dbm9cM754JWLe3NAXuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FFbkW5jsHSFbGrWaW3rsCw\", \"target\": \"zn3v+4i0Sftl8cICrCEv3Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8T+q5wBfnFew/y6izv5ADA\", \"target\": \"OrBRfCSfh8JjEK1NoKq2JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8T+q5wBfnFew/y6izv5ADA\", \"target\": \"Svv21VeSyogknGWZLq0qjw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"7Lkk4/i0RsX0pZPWuSQ+3g\", \"target\": \"8T+q5wBfnFew/y6izv5ADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YY8z/h69E0yzLPuqomxiDA\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"YY8z/h69E0yzLPuqomxiDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YY8z/h69E0yzLPuqomxiDA\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1nWATN6mEw6+v/LPb5VjDA\", \"target\": \"5Mnxw2ItqZFTnRcqOtQ/Nw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"target\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D5+KfnZfLerid2bgjR8uPQ\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhHo3HeMfTGX/H0KDyMNYw\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wHmU4WakYx1Hqi9omUJAIg\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"nXuX1q5CqzGnJV+eNRDISA\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VzXB6IJaLXEXJ8d8MMJbVA\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KyOVJoQ1KBIHYx7862Clww\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F4RdrvgcVitZblPtUleopA\", \"target\": \"TpoKQKJcrw56yPne71zHDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5I/RxqOeoSM2vBkJK5xS0g\", \"target\": \"TpoKQKJcrw56yPne71zHDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DmkQdDNsbUmmMLkddnQT8Q\", \"target\": \"TpoKQKJcrw56yPne71zHDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wVgJQ8f3+v7juEd6iN8JQ\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"tg4htVvjR8oGHx8uubBYDQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OmSfnOYOTGiS6crbu4XSdg\", \"target\": \"tg4htVvjR8oGHx8uubBYDQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jxKUOp9v5E13ytG1Rsdy/A\", \"target\": \"qeuatAkhLNLIi8/FbpRgDQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"A4dMXilHUsHQSR6kFSqJDQ\", \"target\": \"wnxxkY/h8HD42E/vv4Y7gw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"SYg1UZl2xRlPu6/W05iOSw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"9u2HDSvX//SeuxXrnZqtyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"n4RzrfSaNuZhs0nJCUy93A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HjbBXpRquXhoMGLikIGrOA\", \"target\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"target\": \"jSN7JY5CiEq76H/IKAPBWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"target\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"+26sXlxBKwgvLpy9E5shDg\", \"target\": \"YyTqT6rBjf31jnAhbMJ1Jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+26sXlxBKwgvLpy9E5shDg\", \"target\": \"8l4iqTxQwu+5R2t40Ua0NQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+26sXlxBKwgvLpy9E5shDg\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7VxW5gODW0HzIt9IxfRVOA\", \"target\": \"onHQmElJIR/+Us7Pz/k8Dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lve+wd/wKPyn3CsMesLZyQ\", \"target\": \"onHQmElJIR/+Us7Pz/k8Dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q+4EDqYZPaAgWbykhywf8Q\", \"target\": \"onHQmElJIR/+Us7Pz/k8Dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"target\": \"ekYddT4Tcr2RVgRanxVxDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8WlJWpfvSrkQ4/HN21rW4w\", \"target\": \"ekYddT4Tcr2RVgRanxVxDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+XX4ipo2EDh1Vw861N3B7g\", \"target\": \"ekYddT4Tcr2RVgRanxVxDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6NReZq5WCWs8b8h2ZGKADg\", \"target\": \"rREDvHm7au3O8D+GCoHzGQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6NReZq5WCWs8b8h2ZGKADg\", \"target\": \"tZ670LCRnqYmZFgy501YSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6NReZq5WCWs8b8h2ZGKADg\", \"target\": \"VrJZ30qKInj1L/u4OmCrfQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Itxv0yte/EDqR+pR1jeLDg\", \"target\": \"YnVhfjodTZIUtQxbZcQiEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CudMQtlo+Z7PKAT27MOcGw\", \"target\": \"Itxv0yte/EDqR+pR1jeLDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9i5R1KEvmESEXUfnrcMo7A\", \"target\": \"Itxv0yte/EDqR+pR1jeLDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CUfNFmcagh/iWZdQRYiTDg\", \"target\": \"Vr6vzOHfwIdWVbGufER7Hg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0AvZ3yTTfxKv6PWjeYkiSA\", \"target\": \"CUfNFmcagh/iWZdQRYiTDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CUfNFmcagh/iWZdQRYiTDg\", \"target\": \"iFjI4Rd3CKYVzlxd3JT7eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/oz5D6qx21CJbLduu9mkRw\", \"target\": \"2YlME1YUq9QcSfq/wC6wDg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"2YlME1YUq9QcSfq/wC6wDg\", \"target\": \"bsdaANpcjpHWpeczatoMaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hJMVMW1FrtevBZ7FzuLmDg\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KlNDoIf7EQkwaCaUTuTr6g\", \"target\": \"hJMVMW1FrtevBZ7FzuLmDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+vQfJbdbrfUr7z53avxu8A\", \"target\": \"hJMVMW1FrtevBZ7FzuLmDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ub6jKcVYxpyxDLYGMRDzDg\", \"target\": \"hL75IBvLbfMhsjCx+1t8wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JP3yhcbiuU7ifkiJqEgw6A\", \"target\": \"Ub6jKcVYxpyxDLYGMRDzDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"Ub6jKcVYxpyxDLYGMRDzDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ET7J4JcMIZwIEmO2MahvFw\", \"target\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"iPRckEZ+9fRyg2mbWpNZaA\", \"target\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"target\": \"xhxYTYvGcyJprp8iGNPxkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"191Ea/Jawze72ts2Yv9mew\", \"target\": \"XVZ0iwMF2irKUx1+9gcPDw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"5xe5BK5qQuhuLpIqeBskDw\", \"target\": \"Kbhv+XSqvDoMD13AFgLghg\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"ocMqEnIQQXgXvr8DZo7BIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"BNzwQD1dzf4lnoWRJxD1bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hcPbiZB+EqklCe9mW0OlA\", \"target\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"UInULZd3JLguWndjhxn7rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"HA63TWBU2S0+FaXntjCnwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"jlP5eV/l50w203+qmY934Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gzcuyo0pazlggDZ6XHZdDw\", \"target\": \"nZemi4L/TnUeky0vAf+euw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"LO6Cn+YTpzSOAnEo9esvRg\", \"target\": \"wt1DYPl4mOHftx9dAs51Dw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"g7PJFIG6v9kmGHvuyA2yDw\", \"target\": \"vgFcKtNQ7SqjM54GthqWIw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"target\": \"g7PJFIG6v9kmGHvuyA2yDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wbch8nHNaJm78RwT0NdXw\", \"target\": \"g7PJFIG6v9kmGHvuyA2yDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Qt5reoO4qOnN5gAidO3Dw\", \"target\": \"ZvBzxChZplZxvBcbRvQNZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Qt5reoO4qOnN5gAidO3Dw\", \"target\": \"W9820uGVNNrihcyqAVBEdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Qt5reoO4qOnN5gAidO3Dw\", \"target\": \"ofSL6fj3xO5/y83Iczo74g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9b52fBh0B9XIxWekScLGDw\", \"target\": \"G3IPKxmXRobhVHi5Axf6JA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9+UpStn+i+Z+AhdJplnWfQ\", \"target\": \"9b52fBh0B9XIxWekScLGDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9b52fBh0B9XIxWekScLGDw\", \"target\": \"TDK1xqHDYg2OvbepjbOXyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9T2ULlgOdsI1nizKDTvRDw\", \"target\": \"OP3VuJz0MOYOFOeABeBvHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9T2ULlgOdsI1nizKDTvRDw\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3wSzQ1qgeYmFkPvbHBrkDw\", \"target\": \"4owBdThRITj1owKR6bwkvQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"813MKAEw6poYGq6K5JHtgw\", \"target\": \"AUVdOrb8T3ttoz82yYPuDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AUVdOrb8T3ttoz82yYPuDw\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AUVdOrb8T3ttoz82yYPuDw\", \"target\": \"o8icG02ljIVugMJm5yWV5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Yrvybt4XPQyO7urFEIJEA\", \"target\": \"SbGcVcraYDc/7ZlQ7SJ3WQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"16W7EYhBrixyb0qpYa73tg\", \"target\": \"1Yrvybt4XPQyO7urFEIJEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0UVIs06F6OpYATgqQ/oRwA\", \"target\": \"1Yrvybt4XPQyO7urFEIJEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Yrvybt4XPQyO7urFEIJEA\", \"target\": \"TzJZOxXPxEKpEtCKqcAY2Q\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"JDNp0giLIQeKYhAcasUMEA\", \"target\": \"N5rUu9Z9APXGiNRDfx7hXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7h9Fg1B195k0e5jbUGH+cg\", \"target\": \"JDNp0giLIQeKYhAcasUMEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JDNp0giLIQeKYhAcasUMEA\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0SHLOfgkxRmjD9fIfz0NEA\", \"target\": \"FvxwjKG0LXhMuBY9DSns2w\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"CudMQtlo+Z7PKAT27MOcGw\", \"target\": \"YnVhfjodTZIUtQxbZcQiEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9i5R1KEvmESEXUfnrcMo7A\", \"target\": \"YnVhfjodTZIUtQxbZcQiEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ikGVhYtT4k/Nl3xyp2AkEA\", \"target\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"BPp59nVeguhqaVYfaD8mEA\", \"target\": \"VwrOoBFsxcsMJpuOmUULSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BPp59nVeguhqaVYfaD8mEA\", \"target\": \"ju2FdjnvEwJERaFrBSF1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9NyRQB1LYCsbPHrE6bFjlg\", \"target\": \"BPp59nVeguhqaVYfaD8mEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbZPBgWRbURp0aLL0Ad4dQ\", \"target\": \"LVLFh/YaYH7KeqgCZAFbEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KnQ1veuKdeMziZDzLYjmxA\", \"target\": \"LVLFh/YaYH7KeqgCZAFbEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LVLFh/YaYH7KeqgCZAFbEA\", \"target\": \"oqa1czMKG9P74MWoG5iYyw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"nGtfX1L62Gs5wlVGT15sEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"K0pUol7h3ozvqSJCzt/0UA\", \"target\": \"nGtfX1L62Gs5wlVGT15sEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Fns6OhOXJvz0pJZ+6vorA\", \"target\": \"nGtfX1L62Gs5wlVGT15sEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BuYd2X2wZ8mIkolg6ANxEA\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"7Jz2tWyndpnXhKTatCg0NQ\", \"target\": \"w1kNagJbloN2MOhjO2uFEA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"1t5D/KAZe4O+o6FXkuWGEA\", \"target\": \"qvgHYr//5UeK5A/rGOI+WA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"m+d2LV5NUpBGnNEZWOrgfg\", \"target\": \"zIv5R4lMqa7XQ9Y+1u2NEA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"2lQwbRqYwBClEYuT3sl5jQ\", \"target\": \"zIv5R4lMqa7XQ9Y+1u2NEA\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"Aqj0URYRADum8//AEpFSTQ\", \"target\": \"HWI3Bjwl14K+GhzMZk+6EA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HWI3Bjwl14K+GhzMZk+6EA\", \"target\": \"pUettJS0B/38xCxmsnnjgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HWI3Bjwl14K+GhzMZk+6EA\", \"target\": \"lvHT9cqSms7vkDUQasI/pw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJYJXom0e+Hss7fw5b/NEA\", \"target\": \"wtugXF+7qE82ez/dX8NvSA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJYJXom0e+Hss7fw5b/NEA\", \"target\": \"b2mBfHZKw/7Wv719ImjRyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJYJXom0e+Hss7fw5b/NEA\", \"target\": \"yXEVx+7BMBM9SJGPv2+Z+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"08bGjN1u0ANSZUfU31gawA\", \"target\": \"KqW1MSythNQ3Uu61DscFEQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"Twc7MU80HZFmKWQy9ecLEQ\", \"target\": \"uM6ABrtAGxdrSP3XP8y9Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"Twc7MU80HZFmKWQy9ecLEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"target\": \"qMV0wqJZhGOHoZqSaUvaag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HRfIlCMyjqCLOAdE7RCTiQ\", \"target\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"W08SC5+MMRtUmoI8eb8p8Q\", \"target\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MJMUTT4JMMSyMzSkOKjr+A\", \"target\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"target\": \"omwCoi4xiKOAcI5uEwkgEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"omwCoi4xiKOAcI5uEwkgEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/c8KCzUU8taJjhXPkCEYwQ\", \"target\": \"omwCoi4xiKOAcI5uEwkgEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oO6Kd6k9FVO7Ltqb0hQmEQ\", \"target\": \"wuWhg4Yw6D8Ry0qr0sGCWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TH6yeUquRV0AJfYGgRgOrA\", \"target\": \"oO6Kd6k9FVO7Ltqb0hQmEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YsX1xoG1Sju1MtguNdicyQ\", \"target\": \"oO6Kd6k9FVO7Ltqb0hQmEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O2+mvXcdd33t3E2igmFuGg\", \"target\": \"eWjzxCuVwpc+jrW5PDBIEQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"DIiIhMmqvp+ATRGDxBNPEQ\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DIiIhMmqvp+ATRGDxBNPEQ\", \"target\": \"qsZtcjv/Pr7Ps1rIbC+obg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"DIiIhMmqvp+ATRGDxBNPEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PfXUa5SVqfsZ9lS1QuB3EQ\", \"target\": \"bv3PChfP/0t22LDSCoYRVA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NCsCA3Mx7MjieYPd2Ajzqw\", \"target\": \"PfXUa5SVqfsZ9lS1QuB3EQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PfXUa5SVqfsZ9lS1QuB3EQ\", \"target\": \"if2uIOOYU984PgU0edHV/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"ZkWd9g1H/KU363ma8jTeKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"Z+Df51fCeSuCjkjYnEc8Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"9Gwg2EmcZbMB7v8/o0Xbfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"8FTWC1IrA7HALNPMFE0lwQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"eUot1iW5hlu7RiRC2m4gWg\", \"target\": \"jmvmxbSBYu86uPMD/YetEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j6By1U2pa9tCpe2vghUI4Q\", \"target\": \"jmvmxbSBYu86uPMD/YetEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4t1AHK2HFYcR5D9nIC0Y9A\", \"target\": \"jmvmxbSBYu86uPMD/YetEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bp5yJKjAGqSlAhZkD8HiEQ\", \"target\": \"cwo49QWCShomLLSCPzSMGQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0yNF6u5zyDfG/4h5/Uz0aA\", \"target\": \"Bp5yJKjAGqSlAhZkD8HiEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bp5yJKjAGqSlAhZkD8HiEQ\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZYFWfvZW9YI5QbanNPHwEQ\", \"target\": \"rDXjhpwwH1xRUqGN59Ikcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"ZYFWfvZW9YI5QbanNPHwEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IKaWUv1v0QppVoq3jDu4xw\", \"target\": \"ZYFWfvZW9YI5QbanNPHwEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"kWU94fPkNTSTNWlzE9oaEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kWU94fPkNTSTNWlzE9oaEg\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZYIgMFU3qCf6nt4PPviA+w\", \"target\": \"kWU94fPkNTSTNWlzE9oaEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I2UHcG7Gi5Jq/6E+hXceEg\", \"target\": \"kZJvIqFrqBfAlh05aHf6gQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I2UHcG7Gi5Jq/6E+hXceEg\", \"target\": \"wWOB65sUCgBZmtKzkj+zkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I2UHcG7Gi5Jq/6E+hXceEg\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"txxhT5TTaq1HSahSSc02Eg\", \"target\": \"xdb7EalTUhFl41uzMWYMdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MsJMsnfAPOMulh3NVLhMgQ\", \"target\": \"txxhT5TTaq1HSahSSc02Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OkkGhjLgMjJNiAwrkAWG0Q\", \"target\": \"txxhT5TTaq1HSahSSc02Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"su6tafi80XozMhq/bUQQjQ\", \"target\": \"tUYqN6f2sv3djqz70cZWEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"tUYqN6f2sv3djqz70cZWEg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"tUYqN6f2sv3djqz70cZWEg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"hSNT1L+/WWfX3E3xDGVbEg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"R2NZRIws+qXh4yWI4/Iayg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"SmyQ4JHD7+SEeH4ITXT13Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"UmPwQU3QXSrVekUbTxop9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XXq6u/cbFQCaHiuvbcRvEg\", \"target\": \"XmgJm7ulMhmz4WN52CFLfg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"/CORzbjEzOQeZXXaFtByGg\", \"target\": \"A3mWndNu28c7vWzia6CQEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"YB0LA09nHexQq8yaL6RqJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"pVlR0mvxmhXylIv/NOu8Kw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"P7GmEF9OEFNMiorXM0//VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"VywXO7h+uJoHcQ2zWV+7Zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7rVbt5BH4NPe/afuuJbRwg\", \"target\": \"XhJTH9q0vJMKX88KdwKmEg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"M92YjPy0DN7oh97u74C0Eg\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"uM6ABrtAGxdrSP3XP8y9Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+7yOA0qi+lD/BcsfzFjNKQ\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"3twap36E2VebRsb5toQFTQ\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"oU7VQtJtQKoDumxH+arzcw\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HTmlpp/Iumoh5z1ZeAr6lg\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"SfINEI59msrKitc7M6Ln7w\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"aA9DZNqpSuugH0fbqslt+g\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"7HpSPrL0CiAmbJRmVoXfEg\", \"target\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"VHmR3tDa7EGSZ8FpyTy4Wg\", \"target\": \"rkw+3Ic423re66LntM71Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7b2RfDpW6ux8JFAhGs6unQ\", \"target\": \"rkw+3Ic423re66LntM71Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/244Bhg1oGurt3IyzwKYxQ\", \"target\": \"rkw+3Ic423re66LntM71Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"ZgH/ubaX0zuODb9Ja1X0Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"EtvEipevPIV+94kEnBlDEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"m+eJkUkV2waU1kg+shQUdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"pP36UZKw6kXrWeW9WIf6hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"DPO2KhQYp35PfWoP5h9hEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"K0pUol7h3ozvqSJCzt/0UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"wxNjDbtynlXPoy/Q5D2AXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"vD7RLkl2lIfpCxXIygFzZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"FDPwNBUTwho2jWg6cpf7bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Fns6OhOXJvz0pJZ+6vorA\", \"target\": \"DPO2KhQYp35PfWoP5h9hEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"RdHJ6h70jpiHt3m/vAPL2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"vxqJKZeQ2Vvx7xXFybjU3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"wHZn8d9tz5W3bK/Yxzp0Ew\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"EqnwVrJtqbj+nF6VjBB+Ew\", \"target\": \"lmBINJAFKbwThqfREy6/iA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EqnwVrJtqbj+nF6VjBB+Ew\", \"target\": \"S99EddmDGE9UZMtGmMlmtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EqnwVrJtqbj+nF6VjBB+Ew\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"target\": \"Z9YUiMU+AMQ1KkWYXjCuEw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"Z9YUiMU+AMQ1KkWYXjCuEw\", \"target\": \"sGb1o4in+YADYHRotfA/UA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"OPbynxn1A1QV0hBtvMlC5A\", \"target\": \"Z9YUiMU+AMQ1KkWYXjCuEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4IZ2wwGoYRjr+VSzBxa2Ew\", \"target\": \"pFJxA6EP5BLy+6YQ9ZTIaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4IZ2wwGoYRjr+VSzBxa2Ew\", \"target\": \"skeECVWpQl8ufmsJtEK60g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4IZ2wwGoYRjr+VSzBxa2Ew\", \"target\": \"nrmey3lo5Rp0gzeNirbf+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAlv0/vwcPMrCI1zCwbfOw\", \"target\": \"PTNvHk5YUZt3KumjjoG6Ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTNvHk5YUZt3KumjjoG6Ew\", \"target\": \"mf/sQ2DSs0ULStqjM3UzgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTNvHk5YUZt3KumjjoG6Ew\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BagtKawfQmam8a6BT4rNEw\", \"target\": \"EngmqUh4gyea4TS7OO9yjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BagtKawfQmam8a6BT4rNEw\", \"target\": \"H4E5AoIqhz9wh2Kf55g9ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BagtKawfQmam8a6BT4rNEw\", \"target\": \"T3l0u3ldOx9jtSUKFA+k7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL8e5mPC9uISxEF+S2UEJA\", \"target\": \"OUc82uPwlL8MMu6vQizhEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4OzUZqFa0qF+o6k0o3L/Kg\", \"target\": \"OUc82uPwlL8MMu6vQizhEw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OUc82uPwlL8MMu6vQizhEw\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IQM9aWomrU3BEDzBJmVLug\", \"target\": \"qBq08MAwQ9kFkITDvTQaFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ARQKqak9qdhuK77IC6wK9w\", \"target\": \"qBq08MAwQ9kFkITDvTQaFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dtYtPCCrTanY+AdLfGTzMw\", \"target\": \"nkGZYDuCZwgagF/AGbocFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7eOLDy+7tMw6Uf8HgmmSUQ\", \"target\": \"nkGZYDuCZwgagF/AGbocFA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"bUR856SolxjVuhh51iNJfA\", \"target\": \"nkGZYDuCZwgagF/AGbocFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"faPrc6LisKuEQ29r3v4mFA\", \"target\": \"sHv2V4ZuvehzCwHPCnOQYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"faPrc6LisKuEQ29r3v4mFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"faPrc6LisKuEQ29r3v4mFA\", \"target\": \"rBRMKV18YrOSdA+WPlz6sQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"HiQHZwhiV5ctprO+wg5bGQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"pfw6cFOu3J2geMdfjUn5nw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"suNMjRNdU2uGcnzGvZaFoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4/BeRQFQUgYrWpdf9TxKFA\", \"target\": \"oetHm4+G1SvJebQE4pyfJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4/BeRQFQUgYrWpdf9TxKFA\", \"target\": \"nQbo89EjFqendC5KI+7G5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4/BeRQFQUgYrWpdf9TxKFA\", \"target\": \"JboAWyXnCoash2wb7PAb7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CwpEQuIi8zSScd15Vffgaw\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qfuAI7Ky2KFKbcYucitdFA\", \"target\": \"qh37fflxH4crnFBSNG1ffA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"lniOuhFsg10LXewtmrul0w\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SVncppnuBWX66nGOzF5GZQ\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C42qArnqlgCXYV5Eb3YR3w\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"AuclOJMUqm+qN0kJfBknIw\", \"target\": \"CUpIgtOr0maU4VKMz/1jFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CUpIgtOr0maU4VKMz/1jFA\", \"target\": \"yo+slXRjEOyeYXIxTMtruQ\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"CUpIgtOr0maU4VKMz/1jFA\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"CUpIgtOr0maU4VKMz/1jFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9WCffFE9Mw7TEa6DHJwkQQ\", \"target\": \"GSmYxob/4rkd11kAIeF7FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"RTckRKEGiClaU/kOghmIWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"hpIBMXHnjQ7uDbzVv376rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"xFtvUt54mWyK6jRKl1JzxA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"GSmYxob/4rkd11kAIeF7FA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"target\": \"lDzqred3r2TxyB7oTUd/IA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OG2o1vAj49gdK8LP2VooSQ\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NQ2Kua1CDQH1/zRWd1YaVA\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"target\": \"o+m2QQS9epHCXQOZQQFibQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8wuDVU1YuPiCabH7EfMFA\", \"target\": \"olk1QAFpHTZg1V+12hNUYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+8wuDVU1YuPiCabH7EfMFA\", \"target\": \"7ARtNFnnaQ6GXiln4T/Qiw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+8wuDVU1YuPiCabH7EfMFA\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Oon+nAU+Py1QICO0rL3Lg\", \"target\": \"SgMaBxIjaJ4QFHkgR8jgFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0tfzKiqfAXj9nFago+QBRw\", \"target\": \"SgMaBxIjaJ4QFHkgR8jgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WRVIPJmmW1C9askKNNRiUw\", \"target\": \"zmB62BQhhI6XLXm+6ULlFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZOXH4sYXO8arQZZMzYldhQ\", \"target\": \"zmB62BQhhI6XLXm+6ULlFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"We/y8kKlzK1iY53AKV7n0w\", \"target\": \"zmB62BQhhI6XLXm+6ULlFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JAC8a1Q+hochqr5jsbLVTg\", \"target\": \"qv6D+KQaueUpvOa8xj8GFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"qv6D+KQaueUpvOa8xj8GFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A14BetnIopZaaGAnjtv9mg\", \"target\": \"qv6D+KQaueUpvOa8xj8GFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BpRR0QhEMrdljaEKAwDnOA\", \"target\": \"L2lyi9WyZ8Wx8c+cAIYbFQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"nwTwB7veJZkBspgGW8IgFQ\", \"target\": \"rLQYxyqes6lU2yi9m0LyJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Howi1yXCwy8xQvfqMDCwVg\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nwTwB7veJZkBspgGW8IgFQ\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KXsJCgCkQt7RulySZ6+H+Q\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hkbh2Z/duzjyT2lWCNZXFQ\", \"target\": \"lBimwmPeqlrqfcBOBTWMKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"Hkbh2Z/duzjyT2lWCNZXFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGdleYZfLD0f2H9xzK+zaQ\", \"target\": \"Hkbh2Z/duzjyT2lWCNZXFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"uaWvXzfkUgsilOb8D20xIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"HWZAYVBnOATRXMF9hCxmbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"dJLrv9jk7ldi+jAgapgViQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"HMLHgWFAdRQ52AVLutxJsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"l2Q/oIYm74GDWIiJ0C031Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Z8QccklhoEKl/T3txCCFQ\", \"target\": \"BrKEzkZl+oeSpp1lEm/RlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Z8QccklhoEKl/T3txCCFQ\", \"target\": \"1qh/9xi047BN/ZyQnxclpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/Z8QccklhoEKl/T3txCCFQ\", \"target\": \"qIWaissn6WMBkpy7C7Z28A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qYTLx7xi5LMIcWLTCWaFQ\", \"target\": \"FE7mqW78yTU9wwMAC7HbPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qYTLx7xi5LMIcWLTCWaFQ\", \"target\": \"EpddrIm7N5G8G23V6jMJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qYTLx7xi5LMIcWLTCWaFQ\", \"target\": \"c5qReOIC8YJQNGm3SDsY0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YalEWtRbuh74YZNW+V+rFQ\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"ODOfjCoQGHXAkZ+DJzahVA\", \"target\": \"jqTQvwtadBvjuu5420exFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC76g5K8wAxvtnuruj3moQ\", \"target\": \"jqTQvwtadBvjuu5420exFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W5vKZMcezwUnhC22O8hM9g\", \"target\": \"jqTQvwtadBvjuu5420exFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XTfpVCcfORKQ+DknxFbAFQ\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XTfpVCcfORKQ+DknxFbAFQ\", \"target\": \"wtljH1bOIKRg3l1tzqq9dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"XTfpVCcfORKQ+DknxFbAFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"vjDrwdMF72php/TR16xxQw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"9lplDmateBrR+nSpSFW2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"zhwkPccrVBCZlu4Vm/0dvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SuNo1A6pPVft9vfEaDA7PQ\", \"target\": \"sclXs6iGF2XdJL6CuOjmFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8ER2sMgrYPshQENDsp1PA\", \"target\": \"1uQP+qEOk/Iq42/PV6/xFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1uQP+qEOk/Iq42/PV6/xFQ\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1uQP+qEOk/Iq42/PV6/xFQ\", \"target\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CsWQSLgxYtAGh2euTYqX0w\", \"target\": \"cgFr4gR5TzPQo1GlEp/1FQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"YhXlhDtrAuoXpfAmHA4TFg\", \"target\": \"hUAZT7kt1KUkZ4fbtDs/Pg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YhXlhDtrAuoXpfAmHA4TFg\", \"target\": \"q/LU05EL2cNf9O5N1wNCyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"YhXlhDtrAuoXpfAmHA4TFg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pJCI7DG3PZnN4hb+DaE3Fg\", \"target\": \"zfRKs2oznM215YUmJDOzGw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"WB2s2HpFbbHYpva2vHoChg\", \"target\": \"pJCI7DG3PZnN4hb+DaE3Fg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"NFHpq1UDkaV5/g7ltpNKFg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"PAQX1YZikBf8Nx9aiRuGFg\", \"target\": \"cHPtw67C6L5578ABzu9m2Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"PAQX1YZikBf8Nx9aiRuGFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PAQX1YZikBf8Nx9aiRuGFg\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0ffo8htqDpK9tZnBD4THOA\", \"target\": \"ZU+OQckB0MkyN1L5DK2HFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"St9Ow3vHlWa+rtlVPRO3Fg\", \"target\": \"cDrqV5O9SkmmDl0mmuF2UQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"St9Ow3vHlWa+rtlVPRO3Fg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5qxQ32uiDgE9ejioUCp3+w\", \"target\": \"St9Ow3vHlWa+rtlVPRO3Fg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HOx+OKEcVbnVkHm25ejKFg\", \"target\": \"iLKRP/GmekuHICjQTLXOwg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HLd4WCwL+lRguGJbPDTi2w\", \"target\": \"HOx+OKEcVbnVkHm25ejKFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GcCIv1eDsDxcnxww5BRk8A\", \"target\": \"HOx+OKEcVbnVkHm25ejKFg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfaCWjVStturOAXfaGRhw\", \"target\": \"WbH5BOBw2wFJJDt9YHHhFg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"WbH5BOBw2wFJJDt9YHHhFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"WbH5BOBw2wFJJDt9YHHhFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2kIv0pAaPg+lCtT2KEMNpQ\", \"target\": \"z58nwbXjBrUUHo0rqUjxFg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"Ha9Vkf8aPNc6T+GtsbjxFg\", \"target\": \"runqlAXZjxQe04Ry33PAGA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"C0Wtey5jUwozMtZQ/zCGXg\", \"target\": \"Ha9Vkf8aPNc6T+GtsbjxFg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"FYUbaJqdExrKUkHpVP00Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FYUbaJqdExrKUkHpVP00Fw\", \"target\": \"wd8lEJNfPOaevsTPxygQTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CfMMoO/qZjDVZ7RWqmTmYA\", \"target\": \"FYUbaJqdExrKUkHpVP00Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"target\": \"TUhSFD6MSB6xXaa6q3dNFw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"TUhSFD6MSB6xXaa6q3dNFw\", \"target\": \"kwZZ5CI8cUe0cUTqGKF6rg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"kUA3zTQcp1YyO9n7mYZpFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CIEk6rJ4pzoVNKDg6ks8zw\", \"target\": \"kUA3zTQcp1YyO9n7mYZpFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzXKeIKTxEylrN333Zct1Q\", \"target\": \"kUA3zTQcp1YyO9n7mYZpFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ET7J4JcMIZwIEmO2MahvFw\", \"target\": \"iPRckEZ+9fRyg2mbWpNZaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ET7J4JcMIZwIEmO2MahvFw\", \"target\": \"xhxYTYvGcyJprp8iGNPxkQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EwOElxfoJhlC43UZl4agFw\", \"target\": \"Tvk5iFzPudwpAjBrr/C3PQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AXXDOz0vS2tmKhyIhXZEXA\", \"target\": \"EwOElxfoJhlC43UZl4agFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EwOElxfoJhlC43UZl4agFw\", \"target\": \"jPwI+OB8erWmfUxJgF6Nrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/+gEOXElYTfxaCAILMq4Fw\", \"target\": \"AGqG5c/VWKGwOacxedtJag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/+gEOXElYTfxaCAILMq4Fw\", \"target\": \"UvwgWrEVRAhIKi90bruZqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/+gEOXElYTfxaCAILMq4Fw\", \"target\": \"WbIwPdpoyybcirBTSc677g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ydq9OqivGkHhR4sOMxuSOQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pcAaJGkNoaKboOUIf7l9Rw\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KaWuVUZ3E9K5pqffOyoaVg\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"q+Kqu3d3s3abK4QbQdM2cg\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"byLzCXNaqxT/CDt05ruSfQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"hdbnBT9t2fyEJTsarj2ckA\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e1Y/y58FpDPgmAh5G8G4lQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNaUmTD9XiBvuQRyF+hEog\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iK9ayHc/AXaY84l64fm17A\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AF7PlX/ZzcbqbqppKNmq+g\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cB4k/wvjlkEyABHiHtqigw\", \"target\": \"klOTmfJybyIxWLFRZ4LNFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"klOTmfJybyIxWLFRZ4LNFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6W3ZK4Q6x6D3AFIqq66p5A\", \"target\": \"klOTmfJybyIxWLFRZ4LNFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"vsUVcjvzycT49sp9EfLRFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2LHI1R6SjODg/VQK0mSy4g\", \"target\": \"vsUVcjvzycT49sp9EfLRFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"target\": \"vsUVcjvzycT49sp9EfLRFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HwgiKjwo1WqhyzyKSibIKQ\", \"target\": \"VSygbfdnvtsy1YASYpTnFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VSygbfdnvtsy1YASYpTnFw\", \"target\": \"z+Erzv6FAAAlpHglkqjD5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VSygbfdnvtsy1YASYpTnFw\", \"target\": \"r+f8AzuIChCT+43z1V4r+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZgH/ubaX0zuODb9Ja1X0Fw\", \"target\": \"m+eJkUkV2waU1kg+shQUdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZgH/ubaX0zuODb9Ja1X0Fw\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"yIb+coN9LF9f+cIPj6+sJg\", \"target\": \"z4yY0KLuahKFIiCO3ET3Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"z4yY0KLuahKFIiCO3ET3Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wZ45Zz2j32LbhWQfJBEbug\", \"target\": \"z4yY0KLuahKFIiCO3ET3Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O0bYqn+5ERSyAfk2Hp0JGA\", \"target\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"O0bYqn+5ERSyAfk2Hp0JGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"w3fZ06w50iTjsguyIbkuGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"i1FG2HVaFaWVKq8Gmr+Fag\", \"target\": \"w3fZ06w50iTjsguyIbkuGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jr/tmb8gfujXSG5D58/n2A\", \"target\": \"w3fZ06w50iTjsguyIbkuGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"ovM1WzY69dbgZd2rj5c7Ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Qyug5sP5mhFfOqoC1UzsRQ\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7iLqJ+rwS9A/DZ3vrRjTVA\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"1eS0SAabJx3xGSCwWSbPVw\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"p3tybEF2UpLMP4gDgTlShw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"leIQh+Nv7Br6jyV3azMvkA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"w5zZguOil64NNAAULQPU1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"target\": \"9jTabOUPSKMaECQFrBo6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9jTabOUPSKMaECQFrBo6GA\", \"target\": \"rv9CCzm9yv3/yk7JavW0dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"9jTabOUPSKMaECQFrBo6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"w2g1mby0W+j2A70Q16k9GA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"8qqjl2xkJE59URBcF20x5g\", \"target\": \"HxXh0zliSN4s8xGCT2dFGA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"AgTa7bKh9MmBJAaiAAE6Rw\", \"target\": \"bvn2snQLkRyKUisCg3BwGA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"bXuzTviHiDvMf/HlellLfA\", \"target\": \"bvn2snQLkRyKUisCg3BwGA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Ri2CyfNyzGOJEAIOkM6NGA\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ABNMMdHuqvyWm6YJkjwegA\", \"target\": \"Ri2CyfNyzGOJEAIOkM6NGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"Ri2CyfNyzGOJEAIOkM6NGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJe1EsF6WVGhJrfpobqgGA\", \"target\": \"S72IL4YSDnZZA425LPseRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LJe1EsF6WVGhJrfpobqgGA\", \"target\": \"gAzw07bKPCnVDOF1lzf8Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJe1EsF6WVGhJrfpobqgGA\", \"target\": \"VQWWWRLbO/6gR2x5xDP3gQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b2RuDKm6BDQPlGaLg/5OGQ\", \"target\": \"mM43sNjG0c/NvOYz/JWiGA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"EKisYL+aHVjdhvRsM9ikGA\", \"target\": \"FqlSDenR1ixjbu54Vutxlg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"AFFAXTu2gNkQUc+It6w8Xw\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7u2XSrqa0R2siPqtptBvhg\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"target\": \"tNAIkX4qZor6WS+AzCs0jA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"atJoIn0HO1lHzEghWBykxQ\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"UsIPfzCA+x/4AQhfAu/AGA\", \"target\": \"fgX7ya7V38qk7fE9/baWLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UsIPfzCA+x/4AQhfAu/AGA\", \"target\": \"mt56Y7tQ3sCIsVJj4zkXXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UsIPfzCA+x/4AQhfAu/AGA\", \"target\": \"bGDOuVUdJKIu5Ixbo/hl9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j4IK5nCCNuS7CCju09hlQg\", \"target\": \"xuD5Tu/T3V0eT3pRkefCGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"75emx1Xn05NP13ZlbDnqjg\", \"target\": \"xuD5Tu/T3V0eT3pRkefCGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DKE0oHHGtU5ACYya+k/FGA\", \"target\": \"b8xddkkcHYN8w22fuuUcLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DKE0oHHGtU5ACYya+k/FGA\", \"target\": \"zl2ldV3zCVo7TVH54oYQyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X67JQd6BDRfyuEz1nK08UQ\", \"target\": \"rIJWEAmHpfJL9ygNVIDmGA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"Z+3GtyrpKpm+Q8/nh1/0GA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GFbM1Slh7/TpvUKSCABlsg\", \"target\": \"Z+3GtyrpKpm+Q8/nh1/0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XiC7FH1g29T+yR+JgexY0A\", \"target\": \"Z+3GtyrpKpm+Q8/nh1/0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiMXGNwaRu0vX1QsGU0eGQ\", \"target\": \"hBTV8gHKW131TEj7XT9BSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiMXGNwaRu0vX1QsGU0eGQ\", \"target\": \"n+6GBSL9r88/k1XUx+wJmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YiMXGNwaRu0vX1QsGU0eGQ\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"78tJaJJAzpF2sHBJTlVDGQ\", \"target\": \"9F6DxcwNzhY3s6yudOTDSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"78tJaJJAzpF2sHBJTlVDGQ\", \"target\": \"qkDwhgegxr+4Q7DZidQ+WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"78tJaJJAzpF2sHBJTlVDGQ\", \"target\": \"llovrNhzEbhUrsORmDYEXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bql4aQyUJhajEaLPowiggQ\", \"target\": \"b2RuDKm6BDQPlGaLg/5OGQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"BdDwgZDolJQo4Ovd47SGIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"SECy+0u+2YtIyzgbZIcgSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"5zGaSrpx8N1/soA9uEI+wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"W259ly2a2z+n+NPO0gK6zA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HiQHZwhiV5ctprO+wg5bGQ\", \"target\": \"suNMjRNdU2uGcnzGvZaFoA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"cVmbQo4/1D3qErZymi2IGQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"Nk2/mu/0OeJQu+AFrLKfcw\", \"target\": \"cVmbQo4/1D3qErZymi2IGQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"0yNF6u5zyDfG/4h5/Uz0aA\", \"target\": \"cwo49QWCShomLLSCPzSMGQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cwo49QWCShomLLSCPzSMGQ\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rREDvHm7au3O8D+GCoHzGQ\", \"target\": \"tZ670LCRnqYmZFgy501YSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VrJZ30qKInj1L/u4OmCrfQ\", \"target\": \"rREDvHm7au3O8D+GCoHzGQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hGN13fAWjXFjkcNbTkD8GQ\", \"target\": \"kejqF7PNFiVj0UUItLSbKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g40CLRrS7h0f2KDwtQT/pw\", \"target\": \"hGN13fAWjXFjkcNbTkD8GQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2H8qGfkq5FJFrwm6c6dCrA\", \"target\": \"hGN13fAWjXFjkcNbTkD8GQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+GJIVPTagS9nGMxEwIgDGg\", \"target\": \"yuiCkTk2AGHm5mClyk3kIw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+GJIVPTagS9nGMxEwIgDGg\", \"target\": \"GrqrBuWDMZVbhSwmYox8Og\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+GJIVPTagS9nGMxEwIgDGg\", \"target\": \"Llcr5KlFvbooWVvHhDsk/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"xu7RHPhCjrChYtE9udUIhg\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OedMXRR6GuunUdLE7Eirrw\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"92gCbscZjdcp5CNIO3Cd8Q\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"ZJABKZSq0Pb8qydMTaivHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1JUfBZJztS4NtT5jk77PHw\", \"target\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"metadata\": {\"weight\": 48, \"hover\": 48}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"IYgL0K/UrNk0p3Baa1N/RQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"VjjH8fRdx0M/KrNVGsogWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"vD7RLkl2lIfpCxXIygFzZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"FDPwNBUTwho2jWg6cpf7bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+0BvGvmt4QbfLkDdaZmPeQ\", \"target\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"Kah82w+S/u4725mVZgjAnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"gc13kItc+IZ6DRIGAC079w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4AxyPSWTXsFcTxsgK/9MGg\", \"target\": \"ZUTxzdQNHeX1I/vY7OUf1w\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"VGoT3pblWNeNvo3RyQyadQ\", \"target\": \"Zr1xQbj95+rjQg7NFHFQGg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"NVczU2cHqw/8i0p//W2MRg\", \"target\": \"z0lL6W6EpkmtxxleyFxrGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"z0lL6W6EpkmtxxleyFxrGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"z0lL6W6EpkmtxxleyFxrGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T5bmSMxYLl6Z9C5awJduGg\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34hValFnV2+dT4B4gubXVw\", \"target\": \"T5bmSMxYLl6Z9C5awJduGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Av+NJ6AdBIQWI6bttPc38g\", \"target\": \"T5bmSMxYLl6Z9C5awJduGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/CORzbjEzOQeZXXaFtByGg\", \"target\": \"pVlR0mvxmhXylIv/NOu8Kw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/CORzbjEzOQeZXXaFtByGg\", \"target\": \"VywXO7h+uJoHcQ2zWV+7Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjKIWAxyw5ZDmfV2FRGgJg\", \"target\": \"NVdzb7qEwp+JDEtZEfJ4Gg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"NVdzb7qEwp+JDEtZEfJ4Gg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HJnZCVM1Suydwko0rNZiUA\", \"target\": \"NVdzb7qEwp+JDEtZEfJ4Gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e2hKmTwsutq/a8SqkTmUSw\", \"target\": \"tKeHjSdQxe3Z9h/+9knaGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"t20xkxierOcBE/o0aSAdZg\", \"target\": \"tKeHjSdQxe3Z9h/+9knaGg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6uEIF2c/sKN3ohddsWgT1w\", \"target\": \"tKeHjSdQxe3Z9h/+9knaGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"oIY+UI7EbbGLRm9pCvgAGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"target\": \"oIY+UI7EbbGLRm9pCvgAGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oIY+UI7EbbGLRm9pCvgAGw\", \"target\": \"tX0B7WfMBbtslZFb0IpizQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+KNmFytU12EQiuKiLmQCGw\", \"target\": \"JtLiGrVMyc63d3hcU/qYoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+KNmFytU12EQiuKiLmQCGw\", \"target\": \"k+P5VcOaZtVHG+bmx8RO3Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/Pf5fjv5qaGt6+W1OJsLGw\", \"target\": \"foxuEhGkEcv65q+C8blnJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Pf5fjv5qaGt6+W1OJsLGw\", \"target\": \"w7AN2URAar7AQyqiyJ5h3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Pf5fjv5qaGt6+W1OJsLGw\", \"target\": \"h37mnRkwndeMxNuIzr0k+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vdskl6n1tgJivLOYQUDTg\", \"target\": \"7HqkGStA2UDQzJDvpHgrGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7HqkGStA2UDQzJDvpHgrGw\", \"target\": \"PwyhAzA0omnIl03SygN+bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7HqkGStA2UDQzJDvpHgrGw\", \"target\": \"M8PtUDh0BZnkoIFUB3PAzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7HqkGStA2UDQzJDvpHgrGw\", \"target\": \"sTsjjiN8dBDEMqtx8wtk1Q\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"2+CxNgy+Ysn57e25B6YtGw\", \"target\": \"lDMw8TfqrCgHHpa7WOOYhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2+CxNgy+Ysn57e25B6YtGw\", \"target\": \"H2tvrSRDcqdQ6JvqtrIzsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2+CxNgy+Ysn57e25B6YtGw\", \"target\": \"3OV376PlBaoLTaGgahvzzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G/kLdeAVerSIy1b0YS6PKA\", \"target\": \"sClFZEdxiLr55WlJAS1aGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sClFZEdxiLr55WlJAS1aGw\", \"target\": \"tMYQJ9GjNmp4dSHdunw7ew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rx7rNseK4tgtTGeyt8759w\", \"target\": \"sClFZEdxiLr55WlJAS1aGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6OdEhQQhOWIlGA0ODNLMMw\", \"target\": \"rfnJwiDawLh1XtIuXn2GGw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"RfMSIv8DiMBSeZkZW9iLGw\", \"target\": \"dGVXj5FGpjyorj3Kj9HDyg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"RfMSIv8DiMBSeZkZW9iLGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"RfMSIv8DiMBSeZkZW9iLGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cuFTE6pk6eDeLzNdCG2NGw\", \"target\": \"tQITkugM/C3R1+isp/E6PA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PFQQFTwxo7gAyWxkxct3lw\", \"target\": \"cuFTE6pk6eDeLzNdCG2NGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"cuFTE6pk6eDeLzNdCG2NGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CudMQtlo+Z7PKAT27MOcGw\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"9i5R1KEvmESEXUfnrcMo7A\", \"target\": \"CudMQtlo+Z7PKAT27MOcGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+LeAE1b8Ja4GZ8hbuVu+Gw\", \"target\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+LeAE1b8Ja4GZ8hbuVu+Gw\", \"target\": \"tfw90wbD4QM/PpDbMLj6cA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+LeAE1b8Ja4GZ8hbuVu+Gw\", \"target\": \"LRvRi7afvuVDGY7sRVUrvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mr5ZLOeckoL3eb323kIQrw\", \"target\": \"evpuxwdu8csQws8vVcHGGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eRiEisBwuuYVtjRVE01srw\", \"target\": \"evpuxwdu8csQws8vVcHGGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"evpuxwdu8csQws8vVcHGGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVzuargAqRhEhH9ikjoTlQ\", \"target\": \"gnkptQoFpXTfr9jYgmviGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"target\": \"gnkptQoFpXTfr9jYgmviGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gnkptQoFpXTfr9jYgmviGw\", \"target\": \"p3DWdLyxBb2M4TQNRHwLog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HT8WzeCrcJmlevEIilDccQ\", \"target\": \"iPVKv/6OQoTmmrmHPGorHA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"Kbhv+XSqvDoMD13AFgLghg\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gg8gSKkaDuBXakmAggtwoQ\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BEgYfzGevBQjlfcdT2lnHA\", \"target\": \"CFWuU/FXzLqvDkRrko+9TQ\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"BEgYfzGevBQjlfcdT2lnHA\", \"target\": \"gvm93D0ferkbDxApCNsyZA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"NN+6Qzmj2ZvJu6QWXZ9nHA\", \"target\": \"rubYSqpKojQtvA8qiBpXrQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"egTXUYy7nfoHpJfpy2afPg\", \"target\": \"os2gEaRsfryCfJUpkHupHA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"os2gEaRsfryCfJUpkHupHA\", \"target\": \"xYBnEJB+6rnvZzZiDcWrYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"os2gEaRsfryCfJUpkHupHA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rlz1JkRVqbwaCVUWl/fHA\", \"target\": \"VZDm4Fhi1cPeNnGwibUPPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rlz1JkRVqbwaCVUWl/fHA\", \"target\": \"shPnJN4xCSk7oXmY9Q4wuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pJz6MHBW7g/FSNEbHh3kHA\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pJz6MHBW7g/FSNEbHh3kHA\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lsLKKaHMUiMrn6Zcpfq5yA\", \"target\": \"pJz6MHBW7g/FSNEbHh3kHA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MQPdmGkC0zRnm1rkJvU43Q\", \"target\": \"ngeFPVa/1m5AWfQ95RYnHQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"9IPFunlVMTqnxWTnopQX+w\", \"target\": \"ngeFPVa/1m5AWfQ95RYnHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jbFoGmlTquAm7t9w9GQtHQ\", \"target\": \"vmO6Y+KYqGplY91Uh4otkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbNmAv8ufmo03YB7SphOmA\", \"target\": \"jbFoGmlTquAm7t9w9GQtHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jbFoGmlTquAm7t9w9GQtHQ\", \"target\": \"odc3xGllAo0CLlmOvS30+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nt26scFmwAoHlqchE2Q1g\", \"target\": \"wUSvFtg39A812eCTmXdRHQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"BsPPFI0hRbbHh2Yj6wNZHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5gbSqQi7aHAiU/tNOC4hqQ\", \"target\": \"BsPPFI0hRbbHh2Yj6wNZHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RVWH5KhijIHcLRng2KuGHQ\", \"target\": \"bjM1RTxMkbo9D2ZgF6+JVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MevGjFG48jL1EP+uRx5xZg\", \"target\": \"RVWH5KhijIHcLRng2KuGHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QljCsEz0a///Jq2IB2+cxg\", \"target\": \"RVWH5KhijIHcLRng2KuGHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LvOiWpCmoGTwHrNYQ0mpHQ\", \"target\": \"oMgttsFpag2MzaDeUJLmQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AWjelWpqAs1TTbdNOEv63w\", \"target\": \"LvOiWpCmoGTwHrNYQ0mpHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kBqWNP1i1TjWuY6XIL7Og\", \"target\": \"NZOGuB7qjlFhwGOJyC/IHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NZOGuB7qjlFhwGOJyC/IHQ\", \"target\": \"uAvywguLcy7TEJ62HqUCUg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NZOGuB7qjlFhwGOJyC/IHQ\", \"target\": \"Sy2muxkb3YKQEB3A+UWj2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oGIy1SeOMj2/qGAyuTp1SQ\", \"target\": \"oV3IniodoT+MREwyXYDOHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"j2myGcumhmoz/9p4EAE2bg\", \"target\": \"oV3IniodoT+MREwyXYDOHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIvlvNgs59hiOwj2O06peA\", \"target\": \"oV3IniodoT+MREwyXYDOHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YB0LA09nHexQq8yaL6RqJA\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P7GmEF9OEFNMiorXM0//VA\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3CAi1BHCJ4F6GOSyN9ndaA\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"vtRcGf0ox/w9MXmiOqN8qw\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+CMr8Kod/3DtGz10hUou1w\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pe7UfIlXV+bs378EUzk/5Q\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"C1v88cJyGkE/JFrP/EfwHQ\", \"target\": \"kWWat8VAJru0KAH35zPSzQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"Q7Duik1XvaT8SD31GqL3HQ\", \"target\": \"bjgiBt1reGHjsHTW+QP1Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q7Duik1XvaT8SD31GqL3HQ\", \"target\": \"ruqNFuUB6tHVOz0EcqpPWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SV4sfwaeMk9N7sb4Di38Q\", \"target\": \"Q7Duik1XvaT8SD31GqL3HQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZgUHPvya0V9G/so9Hz4HQ\", \"target\": \"8q9ThZ4dsMD6aLF39MmyxA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZZkUAgtwxPW4ue5corBtmA\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H7bKs0LhQYdNQKdCXn0esw\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+hre7gCyki7DbDJpF54Emw\", \"target\": \"XSSPDACChV7VE4V6eMoaHg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"9EimI6rdmwmnjs+mU6IhHg\", \"target\": \"BZ7Hiow+j1NpeSNm7razZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9EimI6rdmwmnjs+mU6IhHg\", \"target\": \"9x3ved1T7wjAWcFR2XFOZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5iSNxr/itO4I17fTbTbe0Q\", \"target\": \"9EimI6rdmwmnjs+mU6IhHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PfRfZgTMHakV3AWfo/3x/Q\", \"target\": \"TUKfnIVWQOWiFDAoAXcuHg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"ziAjc86faoPYn9al48FNHg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"target\": \"rt6bQoEh10pLs01D+2tgHg\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"0AvZ3yTTfxKv6PWjeYkiSA\", \"target\": \"Vr6vzOHfwIdWVbGufER7Hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Vr6vzOHfwIdWVbGufER7Hg\", \"target\": \"iFjI4Rd3CKYVzlxd3JT7eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0CEfdShHc8kj3nBl7h2IHg\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0CEfdShHc8kj3nBl7h2IHg\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0CEfdShHc8kj3nBl7h2IHg\", \"target\": \"VTOkVft5FrNUyE5fBt51Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CLSpACpTt/VOa/AJlK2HeQ\", \"target\": \"xUpvP9QHNo94QQLkF2GMHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RdxNld8Jy3rGVLi1TUSehg\", \"target\": \"xUpvP9QHNo94QQLkF2GMHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"target\": \"xUpvP9QHNo94QQLkF2GMHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1bZ6aYbjy9atWbMAFdO3Hg\", \"target\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"AfT7PVK0yxzKtJ49oQfJHg\", \"target\": \"DVXpioDNFY1CEMdD0M1BOg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2WuhL5d5X3mqFFxzpE4Siw\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"81f+4meCZgFFZXrAqsoIng\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YoguZr7Ht5VTBpiOW2uiyA\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"target\": \"tzXhsMltVbaVhDOHG+D51g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"target\": \"mcallpj5pQ42vQPCDSTb3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"Wadm1Lv/yBVy7yCmh8nkHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wadm1Lv/yBVy7yCmh8nkHg\", \"target\": \"vZRT0MW4o7/ERY8DWdbdrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"target\": \"TvwnYZLgwH2Zg3y6GBHzHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TvwnYZLgwH2Zg3y6GBHzHg\", \"target\": \"hJkECJ2HLr0UQKVZy7OAdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TvwnYZLgwH2Zg3y6GBHzHg\", \"target\": \"WcjDyJCvaIKJKcpprPVPzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DuKECx6iz87ej86wHmrk0A\", \"target\": \"NXHeZhJqzkRT6S2TvSofHw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"Wqqquk8TBr6fzWvHrWRDHw\", \"target\": \"Wto8vJIj6WsdCigVs77sTQ\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"QrdDL6JUD44vKE1FU/wgNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"mfNb4PePcIOAfwupmedlVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"1zegi/QAelz/NhbUIXIkWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"46aKlHUWbk6T7f6FIOuAgg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"bDci8BIt+vso5WXBUfZPhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"lDzqred3r2TxyB7oTUd/IA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/BzWE+Rn/GqqV38iITCZHw\", \"target\": \"KF/ggkreIF0LsX56a0nTYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/BzWE+Rn/GqqV38iITCZHw\", \"target\": \"FbaFWKwjLhE68HJWltWqyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/BzWE+Rn/GqqV38iITCZHw\", \"target\": \"Vt717tNeUr26Ht7uz3W6zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPxTZE2+n5xhFFsIWTiSag\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"l5qTdPK/f/oVgA5z56KwHw\", \"target\": \"osRoK7EJhp/uYrUewqNieg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jdQapSWmQZLmHrDF7KlSqw\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"ECrXW4TwKkiq0yhDSQsg1A\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iZG0kK83mAwI7l40kRt+/w\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5bMac/1L9Hlr4864F2GxHw\", \"target\": \"mcdYiG6tbhQYd9JW+Bfqpw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"TkGzF0VtFvMZR00o+IYWMw\", \"target\": \"yutKWTkgBBMnkbPoOKa5Hw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"Lsm4YXngM+SdFC/A8mDKfA\", \"target\": \"bOJhqCEnedN5vMG06Nu+Hw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"1JUfBZJztS4NtT5jk77PHw\", \"target\": \"VGKshU5bzIdPYiX940SwLg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"UBvzeFzQMqnE1mhmQnp41Q\", \"target\": \"v2ros2t94DbEEnUTjOnxHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"v2ros2t94DbEEnUTjOnxHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"target\": \"v2ros2t94DbEEnUTjOnxHw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2vun/ii125XeGUDqXi72Hw\", \"target\": \"QFU2MEjXqNUYBodQv55IOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2vun/ii125XeGUDqXi72Hw\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2vun/ii125XeGUDqXi72Hw\", \"target\": \"zK2i3Ls/9w5NBkwfx7F7Rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NXtITLwY/XNBuvLK70PXQw\", \"target\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hmoij6THJzrv9Ud2clOGIA\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BdDwgZDolJQo4Ovd47SGIA\", \"target\": \"SECy+0u+2YtIyzgbZIcgSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Svbu70DdkVOl27oKzxuvQQ\", \"target\": \"eC/XnuuS5o8IEr6SYqzjIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BwE/g8Wgt3CdH7ApP+YShA\", \"target\": \"eC/XnuuS5o8IEr6SYqzjIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/a9HU16WypmlvPBzMlAP1A\", \"target\": \"eC/XnuuS5o8IEr6SYqzjIA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+iDF/+NUmcimkZ/a1vDtIA\", \"target\": \"aLpHxNNDNRGUvBG7y5bCeQ\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"target\": \"b4oXjIZRDnnzcBNWeVY3IQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b4oXjIZRDnnzcBNWeVY3IQ\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3GtPhtMHl5X4mu4HSukWhQ\", \"target\": \"b4oXjIZRDnnzcBNWeVY3IQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"target\": \"cTAnscLtT1cdCB8qhxM5IQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"cTAnscLtT1cdCB8qhxM5IQ\", \"target\": \"vKmWBYMfWo3uIw8qjxft/A\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"oz8+VHSy77Ift85Thf8zWg\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9jduueKJ+ghpIqAdXSLWw\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"s933IHR2SOYkrslDC3JgXw\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hrftt1kQzCVPx8AxEdZneg\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"st4pZAhzBQKvT58+t+JCew\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"target\": \"yrXDjH5Y3GviTTblofUhkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Oho6Z20dihFORKOVpu6SQ\", \"target\": \"v/vdz8S9uvE40Xq38f5rIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ds30CGNRVqJEmviGG5Mqnw\", \"target\": \"v/vdz8S9uvE40Xq38f5rIQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"target\": \"vK+M4+nZPjX8OiBYzftzpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0ffo8htqDpK9tZnBD4THOA\", \"target\": \"4XGe9HGicBmKt37s8EN3IQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"XANgaiK1FlF7sXU9o9l4IQ\", \"target\": \"aTd06n7GzqvPoy04Amm/NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XANgaiK1FlF7sXU9o9l4IQ\", \"target\": \"i3zgrHGhwU1ZCoHDBm6BOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XANgaiK1FlF7sXU9o9l4IQ\", \"target\": \"ZU6/wYRtpnWbayzt0gCnfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bxtTY+x3AKEBwP60fpiWIQ\", \"target\": \"zN1upeQhUgH8ySChSc2hZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bxtTY+x3AKEBwP60fpiWIQ\", \"target\": \"plg79dOordUluDMn0QerlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"bxtTY+x3AKEBwP60fpiWIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"Sx+IFJGVaRwglNgrd2itIQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sx+IFJGVaRwglNgrd2itIQ\", \"target\": \"lds6GA7YRogoMFggLBQWqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sx+IFJGVaRwglNgrd2itIQ\", \"target\": \"XAkVRZGQ94PVTV2tBtEKww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sGOLVPefYSglunzn+nDIQ\", \"target\": \"wivzWNqrkkl8zEKhr6mwNQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sGOLVPefYSglunzn+nDIQ\", \"target\": \"L4+2ZMmnc8gTOu8mN1LjPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/9wvd4VqJwRqnTWtDanhig\", \"target\": \"4sGOLVPefYSglunzn+nDIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BJeUy+7Q11m2rTvepSzOIQ\", \"target\": \"WAP9f1egYnZin84aLSc0dg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"NSh4yoNJhqwR/mYpwpaehQ\", \"target\": \"tnPi10EYwtsy6vOdV8n9IQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"dM+UVga4l5SwZ6vnVIcLIg\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"DKAWdo6As2L2HUFCvXjbQg\", \"target\": \"rTKRv6DiTA6L5QsdKBYOIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Kzv484GoYuRyMQRePjjFrw\", \"target\": \"rTKRv6DiTA6L5QsdKBYOIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rTKRv6DiTA6L5QsdKBYOIg\", \"target\": \"s50Uk1EXn+VMFjiSTbju+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+5enw4eQZD6PzwL03iwbIg\", \"target\": \"OSeyIFxuP+o3Yh/Hwo4aSg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"4MUf19wYnk7EbEoo8F4rIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4MUf19wYnk7EbEoo8F4rIg\", \"target\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4MUf19wYnk7EbEoo8F4rIg\", \"target\": \"ILLw32m9uRu0mMk194ka+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dJLrv9jk7ldi+jAgapgViQ\", \"target\": \"uaWvXzfkUgsilOb8D20xIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l2Q/oIYm74GDWIiJ0C031Q\", \"target\": \"uaWvXzfkUgsilOb8D20xIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"74bZRN5X5IW1TnM8MGtaXA\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBkQGjDrY3J6TAqmfqoqg\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D4NrVD7YBPxfp97z+4wK2A\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4g2lGWPTonWIMQgJfV1eIg\", \"target\": \"xrJ3jQNVEYLKSG2wsIVQMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"4g2lGWPTonWIMQgJfV1eIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g2lGWPTonWIMQgJfV1eIg\", \"target\": \"r+bYu5Ulcywy8rBOadEYuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"APcebyIsBjD0c87yW+NgIg\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APcebyIsBjD0c87yW+NgIg\", \"target\": \"pgQHSJE9LdFJ4JX4uLFkbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APcebyIsBjD0c87yW+NgIg\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HWEW1PkDeiZClhSCd6pjIg\", \"target\": \"uRBQkWEdVbeNQ9xfJLkIRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HWEW1PkDeiZClhSCd6pjIg\", \"target\": \"oLBEewI2+TtOi/P+zFONmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5jKIs3ds0x1ZmVoyo9FaaA\", \"target\": \"ufEEAwHXUrDrhF2rnNGAIg\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"9cZ7WX4cBDmtHgG91g2OIg\", \"target\": \"bruKgrPMaRoxZXRCGPN7lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9cZ7WX4cBDmtHgG91g2OIg\", \"target\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9cZ7WX4cBDmtHgG91g2OIg\", \"target\": \"Ie2ipRiDjN8xf3W2LEwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DfFk7TlxB0SKkRl+KSWwUQ\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8rzeo+EaMha06b3mPHaFhw\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JIIcZtdNc3gO1hbq4vDzNw\", \"target\": \"hzVxuFN90gUwpycD6XSkIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cS/bpu52WCU9X+jUmZu+Yg\", \"target\": \"hzVxuFN90gUwpycD6XSkIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bXGpMEzkXLgG31dxALVXyQ\", \"target\": \"hzVxuFN90gUwpycD6XSkIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hcPbiZB+EqklCe9mW0OlA\", \"target\": \"ocMqEnIQQXgXvr8DZo7BIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UInULZd3JLguWndjhxn7rA\", \"target\": \"ocMqEnIQQXgXvr8DZo7BIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5/iIlMEl3Flhj0dFtY7JSA\", \"target\": \"XF0PlmPVwNzCZ1mS4V3QIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"XF0PlmPVwNzCZ1mS4V3QIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9n4t1Zn+X0s5hKb1T+I6rQ\", \"target\": \"XF0PlmPVwNzCZ1mS4V3QIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iCmnZi9CFvdYvyiq1vugYA\", \"target\": \"vRAPwQoW49NhdfqTKtHjIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4fsPI0x1OUVboOOVA84FzQ\", \"target\": \"vRAPwQoW49NhdfqTKtHjIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+9xYtL34ZhnLLOnUagvkIg\", \"target\": \"ZIy/WsAB3wJpL965LjmTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+9xYtL34ZhnLLOnUagvkIg\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+9xYtL34ZhnLLOnUagvkIg\", \"target\": \"GjAof1RFrIHVKY/0zm3bxg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MFadgRNeoJXgS6129bqinA\", \"target\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"target\": \"uoq9y01xGOC/8QgrrSih6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rz7xx0+t9Pg49kUuRAUxog\", \"target\": \"VoQIcll8yYQ6mu4xtEHxIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8+SDMPAJnM5smfsvJtvU5Q\", \"target\": \"VoQIcll8yYQ6mu4xtEHxIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VoQIcll8yYQ6mu4xtEHxIg\", \"target\": \"aU8RxAk5dpz79KvpKp2W7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fOV5Br0GYDzZFRxI+gQRmA\", \"target\": \"jWkbRjXrqO1AOdPk4zwUIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fO7Bg973y07RR33P9wVAvQ\", \"target\": \"jWkbRjXrqO1AOdPk4zwUIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RmT2VUCyBml1MSaKA8p4wA\", \"target\": \"jWkbRjXrqO1AOdPk4zwUIw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"target\": \"uAjnNExm68e/VriTomMVIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LkM0/MtyKDGvzCG666tvZA\", \"target\": \"uAjnNExm68e/VriTomMVIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T21csR2tiZvqkP3PvXdr0w\", \"target\": \"uAjnNExm68e/VriTomMVIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AuclOJMUqm+qN0kJfBknIw\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"AuclOJMUqm+qN0kJfBknIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"wd8lEJNfPOaevsTPxygQTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"CNaUNDtRAy8IVd9syOwtIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"CfMMoO/qZjDVZ7RWqmTmYA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"j7rR44Lsi82gyHRfHndPLA\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KSy197RLM9KmZkkCLRjLjw\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Na1dZK+2rK5VDYolao51wQ\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"pBxTXw3/vIIS3k3LzjU/Iw\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"dAmdzT0drYiMbV9rJdJvIw\", \"target\": \"evFrRg0OxE/+9bIf43KaSQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"dAmdzT0drYiMbV9rJdJvIw\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"target\": \"pejzevFVc+aG7TCaqhshYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FEdzgbkfU1GlG3WzAEOGIw\", \"target\": \"X6RG1Kq2oEGyIv4GTBqBuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FEdzgbkfU1GlG3WzAEOGIw\", \"target\": \"xkCQC4UuNjDrwruLbTgC9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FEdzgbkfU1GlG3WzAEOGIw\", \"target\": \"W/xMOfCQTNSfmwDOYwfP+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4czXzUA3cUHu4vDFhbWRIw\", \"target\": \"X60IMjZAXkAUxMSqc1sFUg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"H8ospugtmYNAXA/jIiE/Lg\", \"target\": \"Yv23/3krJRShpUgClOiRIw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"target\": \"vgFcKtNQ7SqjM54GthqWIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wbch8nHNaJm78RwT0NdXw\", \"target\": \"vgFcKtNQ7SqjM54GthqWIw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"71gwi7Mo8rnVUTFfwjLlnw\", \"target\": \"zB4WdokIJ0GBrsT2ZZSWIw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"cVjQboYulTlIt7PXc5u7pg\", \"target\": \"zB4WdokIJ0GBrsT2ZZSWIw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"TTTqxHqacNkMWmUf98OaIw\", \"target\": \"mTMmy/NAdwV89W4WJPIDUA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"EdEant+ae0LEoqOeV6jERg\", \"target\": \"rW/MwAPM82zAxZRpvjmwIw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"DlQJmZhrLcSFewBXCcWdPQ\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vD9s1XC8nMshE2yQpfmXUw\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TPUTckho+StrbYBpi7L0YA\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NzlMJMnlHuCbxGhinyGmfA\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eYfvAr+UfKq1aCZN2x4y6w\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1MJAGHkRmHjVpBC7NB7BIw\", \"target\": \"LJGylLlX+/njYiLtK5PItg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"LlaVgzJQejxtWoYhKnBQhA\", \"target\": \"VquO/JxvftDOEyHTE9vJIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"VquO/JxvftDOEyHTE9vJIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MauRd73SPuaI/SsIA8Wh9g\", \"target\": \"VquO/JxvftDOEyHTE9vJIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"target\": \"t77LdnOEMwCHq0DUADjMIw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"GrqrBuWDMZVbhSwmYox8Og\", \"target\": \"yuiCkTk2AGHm5mClyk3kIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Llcr5KlFvbooWVvHhDsk/A\", \"target\": \"yuiCkTk2AGHm5mClyk3kIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"jzNaSu+T3Qs82/UlWxzpIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"jzNaSu+T3Qs82/UlWxzpIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9JsLmui6toze4OCS9SqwtA\", \"target\": \"jzNaSu+T3Qs82/UlWxzpIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4amTqPDVM2qaCvJkvE3wIw\", \"target\": \"NusVDiix1Smp76/E438NQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4amTqPDVM2qaCvJkvE3wIw\", \"target\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4amTqPDVM2qaCvJkvE3wIw\", \"target\": \"l5XDIvoOxlEM5vDuvZb/8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ay/j/DZdTWf6cqT9NS7xIw\", \"target\": \"hNssRjdsVPWPIXeaQ55ogw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ay/j/DZdTWf6cqT9NS7xIw\", \"target\": \"stZS7egMHVmBbshb4MJJxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ay/j/DZdTWf6cqT9NS7xIw\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4OzUZqFa0qF+o6k0o3L/Kg\", \"target\": \"LL8e5mPC9uISxEF+S2UEJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL8e5mPC9uISxEF+S2UEJA\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"4HBkQGjDrY3J6TAqmfqoqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"Ut/cnsk0Y1yuS0FtNMJBwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"IpE9fW8G0hjWR87t7DYy6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f3OysywHhD6Z8jwa/VbQPQ\", \"target\": \"rTFzCPICA7CFFNNB+iYpJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rTFzCPICA7CFFNNB+iYpJA\", \"target\": \"wzAftnwgVrYbBviqd5/Nlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rTFzCPICA7CFFNNB+iYpJA\", \"target\": \"ykhADMSBj+Y4ryryeKH5uA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A5KONIHSVOBCk9kmkPF9zA\", \"target\": \"FUxstvtv/+rU5Dh+tstgJA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"P7GmEF9OEFNMiorXM0//VA\", \"target\": \"YB0LA09nHexQq8yaL6RqJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KXmPvXyy4ZqMu2NJW680bw\", \"target\": \"YB0LA09nHexQq8yaL6RqJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YB0LA09nHexQq8yaL6RqJA\", \"target\": \"kwhLDg0U+a3YNXYiod7Vxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iRbYHE+vW9ThiDFrH1S6jQ\", \"target\": \"r570zqahkepxsh2eoJ5/JA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"mp5eORPy8RbLiLTmHwiLJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"htQlzVTv1oTgctxDSfBI9A\", \"target\": \"mp5eORPy8RbLiLTmHwiLJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MUKgszdFzAs+hYndndby/Q\", \"target\": \"mp5eORPy8RbLiLTmHwiLJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nQbo89EjFqendC5KI+7G5A\", \"target\": \"oetHm4+G1SvJebQE4pyfJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JboAWyXnCoash2wb7PAb7A\", \"target\": \"oetHm4+G1SvJebQE4pyfJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9BqTzf+HI3o6WFXzcgP6Ww\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YK6pX5qLtyizeuChPu6rJA\", \"target\": \"cdtm284VM0XW/UkAuEnudA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ABNMMdHuqvyWm6YJkjwegA\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YK6pX5qLtyizeuChPu6rJA\", \"target\": \"Z9dCRzGkhMPsUVW2ZxiKmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2UD2PaViHF8ssFnmB6i1JA\", \"target\": \"XXV6z+C21UqJfmBajVoCvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2UD2PaViHF8ssFnmB6i1JA\", \"target\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Lkk4/i0RsX0pZPWuSQ+3g\", \"target\": \"OrBRfCSfh8JjEK1NoKq2JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Howi1yXCwy8xQvfqMDCwVg\", \"target\": \"rLQYxyqes6lU2yi9m0LyJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KXsJCgCkQt7RulySZ6+H+Q\", \"target\": \"rLQYxyqes6lU2yi9m0LyJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9+UpStn+i+Z+AhdJplnWfQ\", \"target\": \"G3IPKxmXRobhVHi5Axf6JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G3IPKxmXRobhVHi5Axf6JA\", \"target\": \"TDK1xqHDYg2OvbepjbOXyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"Y84rzA1oQbbFi71z+Qn7JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y84rzA1oQbbFi71z+Qn7JA\", \"target\": \"pA2XvK7a3lX0398AJNHdsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uwZmfCzbbNDnrsxq9S4EJQ\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MuG/pOvxWpq41fkfo/RhnA\", \"target\": \"uwZmfCzbbNDnrsxq9S4EJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hauBoMkrAw7jNahaRNgApA\", \"target\": \"uwZmfCzbbNDnrsxq9S4EJQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HX5tAgQbmKUs5gGEs/gx1g\", \"target\": \"fVKL4EddhfGDpPg7OR8RJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fVKL4EddhfGDpPg7OR8RJQ\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ljvza8Y1bpL3EvLFOqkYJQ\", \"target\": \"iwHVSQbCvnI2VmbeHJzpXw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"Ljvza8Y1bpL3EvLFOqkYJQ\", \"target\": \"aCn8MLPRUWx5ggppKWnMvQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"EafAcCecfOXmVtdb/5oeJQ\", \"target\": \"h8KNYZHf0bxUHrr8W4MKWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EafAcCecfOXmVtdb/5oeJQ\", \"target\": \"d+jDWSs2T6c8VQ8BAurfuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EafAcCecfOXmVtdb/5oeJQ\", \"target\": \"voyyn7epEtNpu6dfPTzP0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EJdvqKwmYlAS+Xm8bKRbJQ\", \"target\": \"FVDkPmeCBusht6HcouaOcA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EJdvqKwmYlAS+Xm8bKRbJQ\", \"target\": \"Kii3w+OpNXvyJU7mN5vIeA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EJdvqKwmYlAS+Xm8bKRbJQ\", \"target\": \"OuGpotqT00tF+qVPIIKGsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"target\": \"rfNNiCvdTiGlx3UokrcLPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LLqUTf2C7DiwEPqO9IAzaw\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1jKoWPtNZuyTySc8hwFBig\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TaylE4VzYn6LbkxhJyE6xw\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AgyaMoHm6GHD7OTM7tdmJQ\", \"target\": \"LyS4NoG1akOcBiR9Y4fkgA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"0wVgJQ8f3+v7juEd6iN8JQ\", \"target\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wVgJQ8f3+v7juEd6iN8JQ\", \"target\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9O1Kb43wxyJilyoZOe+EJQ\", \"target\": \"gaZz3FRaKrrPotJgszj/aw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"CJ2M5IpExMq2lCjRAo2IJQ\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"eKrbGVwxXslFk7tfTUidJQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"+7mhXK/ObCSwV/qE+rxsUA\", \"target\": \"4g680cdUyORUJQPIIrvZJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"HYymt0lDvgI53eZlSzAjZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"9JsLmui6toze4OCS9SqwtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"NuW0BVMZ00PqaZsud0QN0g\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"X+ETh+ba1MHT0Np6yw/i4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1swWkYMcwILy7Fx6Zpvz4g\", \"target\": \"4g680cdUyORUJQPIIrvZJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5DY6eHZJSWEo3oBtSU/dJQ\", \"target\": \"SmZUCSQkckSaD6bxuaqjSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5DY6eHZJSWEo3oBtSU/dJQ\", \"target\": \"BbkarsI6ax7N0cDQt6BIbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5DY6eHZJSWEo3oBtSU/dJQ\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VTOkVft5FrNUyE5fBt51Sg\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A4GDSAA4mHRobOibWak3lw\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O/m49NG+OSq7jZLZYq9E6g\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J9lncln67Ektsz70Jz1s+Q\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ThrLo2r7sbGKGToF5D/UA\", \"target\": \"2lyFL4MZm9NN+aGet2M8Jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2lyFL4MZm9NN+aGet2M8Jg\", \"target\": \"6qLyFjJCSb5H4btWpQA2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iF/+MGd6b6rcWMWF/4KuHw\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Os8EzZqwnhhmbmny3t/aOg\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"/VK6UvapYnz8anaV+QeKmQ\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"ma5WzktOIRb2JmWJZwlEJg\", \"target\": \"uUCDilQXqpQUOOB0ZFjJSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"target\": \"ma5WzktOIRb2JmWJZwlEJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O61qmbeWRO9KIoKQ+zT/2g\", \"target\": \"ma5WzktOIRb2JmWJZwlEJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+ukLSirK9Uz5XpuYpv9NJg\", \"target\": \"gRn+/8gycwpXhkV24zExlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+ukLSirK9Uz5XpuYpv9NJg\", \"target\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8LYpRks5YYQzVzoyQElSJg\", \"target\": \"vWcvRByQP51uOlZDbmbUbQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"target\": \"sAbMJ4JNtrkiNxfJM/22Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+JdY8sLhBcaEI+2fsGZAZA\", \"target\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"EjXIpdCPF+ANqs8VdEvHow\", \"target\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"target\": \"rKPsaIVig93SRx4sDucCrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"target\": \"wynyTIsH6t/BOa/n3aEe1Q\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"foxuEhGkEcv65q+C8blnJg\", \"target\": \"w7AN2URAar7AQyqiyJ5h3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"foxuEhGkEcv65q+C8blnJg\", \"target\": \"h37mnRkwndeMxNuIzr0k+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"il07b2ar2edXerhF1SttJg\", \"target\": \"pk5B0OVLBJS0AxojkgDPTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"il07b2ar2edXerhF1SttJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL3EugqztyFZS7UuGML+yA\", \"target\": \"il07b2ar2edXerhF1SttJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eU//jS/YGhjXUkc31H9SPA\", \"target\": \"jJ27Mbj4eUDidX1sAM9xJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hUqcqGPdKtI69S4i5SSFvg\", \"target\": \"jJ27Mbj4eUDidX1sAM9xJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"jJ27Mbj4eUDidX1sAM9xJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8l4iqTxQwu+5R2t40Ua0NQ\", \"target\": \"YyTqT6rBjf31jnAhbMJ1Jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YyTqT6rBjf31jnAhbMJ1Jg\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UZ6y6lAusJZ6T6c1pzhxMQ\", \"target\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"target\": \"fVODvtXqbIUOpKDyQOeZkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KQfkDTCpE+13mWT03/1e9A\", \"target\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"HjKIWAxyw5ZDmfV2FRGgJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HJnZCVM1Suydwko0rNZiUA\", \"target\": \"HjKIWAxyw5ZDmfV2FRGgJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+dvhAHBxRpcc3JD0l919MA\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9pyAHATD/zmm5A0TXWbt6g\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"OmSfnOYOTGiS6crbu4XSdg\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"TxvBO7S9xqj6+BYalhASmA\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wZ45Zz2j32LbhWQfJBEbug\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Xx2MKu3v/ca2MdNY+roAog\", \"target\": \"b3mYkaG76yXTbJpqkNq4Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b3mYkaG76yXTbJpqkNq4Jg\", \"target\": \"ufljtH2NardpOebKv0f7qA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b3mYkaG76yXTbJpqkNq4Jg\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"target\": \"iT8BNOTgOOsmg9/VThq0KA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiYxSGimBFYfI1PSZXEXpg\", \"target\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IO3g2MwcyRgMWLIiPvDNJg\", \"target\": \"eJr98/w3TNjFYYEosmJmlw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"jD2au3yiXlaWJnqGxkfkJg\", \"target\": \"vb55pYg/AOTWKfMFbVM7ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"jD2au3yiXlaWJnqGxkfkJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sa3pdyOhhVraK3JVehnezw\", \"target\": \"jD2au3yiXlaWJnqGxkfkJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZwC6Jos8tXbLFjtN+qWqPQ\", \"target\": \"eLFnutYUBbSaocV3w9P+Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e66HgXZ0Dd9pxVG+Mc2JRA\", \"target\": \"eLFnutYUBbSaocV3w9P+Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eLFnutYUBbSaocV3w9P+Jg\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9GHwM2Vq3oyzQrCqt5ciQ\", \"target\": \"yedb80Fwh6vLYA7MQBULJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P3m65AjR0i02EPNbMQtNqg\", \"target\": \"yedb80Fwh6vLYA7MQBULJw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BzxNAuFyU0u79vAaduSj2g\", \"target\": \"yedb80Fwh6vLYA7MQBULJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ec1JUzxjNL2uv25lY0xJw\", \"target\": \"InRmCKqhMYij+gzBJsA2PQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"0G6punNxpIrXDMozaIw8Jw\", \"target\": \"HbngqRZ1/oSZb7WR1lnUNA\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"QZOuiPvOdXLf0ipjpdZYJw\", \"target\": \"a00EzNZRMAgZFXLOFn2jpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QZOuiPvOdXLf0ipjpdZYJw\", \"target\": \"x9R/caK7uyrvHrdoHKuZqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AwPAXKgosGfgMgf3zbXw2A\", \"target\": \"QZOuiPvOdXLf0ipjpdZYJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0XjQtad182c9lBYCcGV0Jw\", \"target\": \"w/FcbfRxQvw1pK7Q0yqzSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0XjQtad182c9lBYCcGV0Jw\", \"target\": \"FaeXygmksygb2560fsqvag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0XjQtad182c9lBYCcGV0Jw\", \"target\": \"7RXVddCVGk1aSOf5BMkg6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W0nU23eN5tbdtlnxiPeyJw\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W0nU23eN5tbdtlnxiPeyJw\", \"target\": \"r2Exk8lJPGlgrhGDuXbItA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7DJ1W9saIcI9kuHgRJb9ww\", \"target\": \"W0nU23eN5tbdtlnxiPeyJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PIdgmaizGZMoimTTuaXXJw\", \"target\": \"qhjwK5yVFJXceVtxx9ARMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"PIdgmaizGZMoimTTuaXXJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PIdgmaizGZMoimTTuaXXJw\", \"target\": \"aewBFp5Orqz4bzZqctfT8w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7JHQoIsP0g4FS2VokidWSg\", \"target\": \"jMWqeq52If22Wh9PvQXaJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jMWqeq52If22Wh9PvQXaJw\", \"target\": \"tMN/g0oGryogyXQvhLf+Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"jMWqeq52If22Wh9PvQXaJw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jMWqeq52If22Wh9PvQXaJw\", \"target\": \"w4Gwasum6XPWxFODHnnT8A\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3JHFRc0psawMPSLp7G5OyQ\", \"target\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"target\": \"GfyAUcsLzhVQEJH+riPw1w\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"target\": \"U3v3OOBqhXPTXAhsLPhL9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"YoguZr7Ht5VTBpiOW2uiyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"mcallpj5pQ42vQPCDSTb3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"htQlzVTv1oTgctxDSfBI9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"MUKgszdFzAs+hYndndby/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0wrfmRz0bC4DiMMMjONHKA\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0wrfmRz0bC4DiMMMjONHKA\", \"target\": \"27dEDmdur1Zy6ijanei8tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/bA9vVOFPjpACVu2Rb8t0w\", \"target\": \"0wrfmRz0bC4DiMMMjONHKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VUm+A7X8eh0YdMFfZAhOKA\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VUm+A7X8eh0YdMFfZAhOKA\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VUm+A7X8eh0YdMFfZAhOKA\", \"target\": \"kpts1Dex2CaSJVU8vdHE7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6xcSc7RWzxobCUZccCVzKA\", \"target\": \"LlZMdonbcTzMHX8tffT5ig\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"6z38xJT8PJ+OX2wGh3AZOg\", \"target\": \"DkeGauT8R8raKKUqw+qMKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DkeGauT8R8raKKUqw+qMKA\", \"target\": \"Q6evY2lIk1V0daivfGCf6w\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"G/kLdeAVerSIy1b0YS6PKA\", \"target\": \"tMYQJ9GjNmp4dSHdunw7ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G/kLdeAVerSIy1b0YS6PKA\", \"target\": \"rx7rNseK4tgtTGeyt8759w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"LqjvcaTtiAIN4NXPRWqTKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Io8slHVhx1bwsIhDh76qow\", \"target\": \"LqjvcaTtiAIN4NXPRWqTKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LqjvcaTtiAIN4NXPRWqTKA\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"in+YJvsOojXHH/Ob/Y2jKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"in+YJvsOojXHH/Ob/Y2jKA\", \"target\": \"tTO1LQu/M4nsk0dADel4UA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rg71KvMVmp7RPzqsdMHX+A\", \"target\": \"in+YJvsOojXHH/Ob/Y2jKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"iT8BNOTgOOsmg9/VThq0KA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiYxSGimBFYfI1PSZXEXpg\", \"target\": \"iT8BNOTgOOsmg9/VThq0KA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KMEoeG0uw8FmOZpGW4S/KA\", \"target\": \"iqOPT8+OtBjqMEsIZx2STQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"KMEoeG0uw8FmOZpGW4S/KA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"59SqJ30Y4ewJfCaPESjibw\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GrIMPukpxNchu/p5HFfdsA\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cJX4tUrBIaK7+EkSfsAUg\", \"target\": \"wA5CI2W0VKI1hEG1273UKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MHef1Rs4455vMbiW11h8nQ\", \"target\": \"wA5CI2W0VKI1hEG1273UKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"target\": \"wA5CI2W0VKI1hEG1273UKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K4GUwmOSE5EwoXkl6ifZKA\", \"target\": \"VdfALO0gD1XZVZq4asFDLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"K4GUwmOSE5EwoXkl6ifZKA\", \"target\": \"ODH4G/1dGsJI0ltnCWxSTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K4GUwmOSE5EwoXkl6ifZKA\", \"target\": \"mLUf20JHZo0y4cZdGEJL9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Z+Df51fCeSuCjkjYnEc8Zg\", \"target\": \"ZkWd9g1H/KU363ma8jTeKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Gwg2EmcZbMB7v8/o0Xbfw\", \"target\": \"ZkWd9g1H/KU363ma8jTeKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pNzciMw4meySKnwq5PrtKA\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lAzBrk9QGzuamP+I91TWlw\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1Y8y0BN2GoCseNXlNfRuQ\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pNzciMw4meySKnwq5PrtKA\", \"target\": \"y49HkmqZsWWjpBlDEZSH9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hvLxb+HIIMnAXb5rrsTYUQ\", \"target\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RU7ImjsrRJsKlzFRmKjN3w\", \"target\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"84cQ3j2fcrmCy4xje6xR8g\", \"target\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"icW9xFiUc3lytmLbrRx/hA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZgWCBNlAJw0MgydF4igoQ\", \"target\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"XIRrwR+1QmICAcgD/JfPrQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"LW7RUp4WpBDp3yrEPkJV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"scCQ4EkEpjBP4kcbwAYeKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7lhN4GXU1jN/cw81F5Viig\", \"target\": \"scCQ4EkEpjBP4kcbwAYeKQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"8ZgtUC5oiX3t5uq7NRAe2Q\", \"target\": \"scCQ4EkEpjBP4kcbwAYeKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3E5FvfHnZOL7RkNiaiowKQ\", \"target\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"3E5FvfHnZOL7RkNiaiowKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3E5FvfHnZOL7RkNiaiowKQ\", \"target\": \"tL8Oc0Tm9BAb2WU2KCrC8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fqxr4U/A0rdSg8HIaSj3TQ\", \"target\": \"k6uUP8gx74Dn1kQ5Q4I0KQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"Emni82nbGNjkVtShNsS7fg\", \"target\": \"k6uUP8gx74Dn1kQ5Q4I0KQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"cxmtn2AvCTzQcgJUg/JMKQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"target\": \"cxmtn2AvCTzQcgJUg/JMKQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cxmtn2AvCTzQcgJUg/JMKQ\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"i+mEeURUNZMkwdukcXesOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"tRJwNHh9csMWQV2GvAFjdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"pYz+Bh5cLgD4u37ISthJnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"vtWfeIoNdt2OYL/M/Cg5qg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"lzH6Idq2FJnBDgEnU3CMvQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"Xyt8E9Vly0yzp9vAum9d2Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"g40CLRrS7h0f2KDwtQT/pw\", \"target\": \"kejqF7PNFiVj0UUItLSbKQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2H8qGfkq5FJFrwm6c6dCrA\", \"target\": \"kejqF7PNFiVj0UUItLSbKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"OmSfnOYOTGiS6crbu4XSdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"aY38F1Hi68kXNObkjJy0kg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HwgiKjwo1WqhyzyKSibIKQ\", \"target\": \"z+Erzv6FAAAlpHglkqjD5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HwgiKjwo1WqhyzyKSibIKQ\", \"target\": \"r+f8AzuIChCT+43z1V4r+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5998ToEfo0L8YaszINfSKQ\", \"target\": \"8iebXCqtG1eN+lGV7HH8Qw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5998ToEfo0L8YaszINfSKQ\", \"target\": \"8T1982ymi8ae9f3QJo87xQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5998ToEfo0L8YaszINfSKQ\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DiTNRzvHxe9KujjLA7t6dw\", \"target\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E2X4Af5b9cZ65cCBAzVxrg\", \"target\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"target\": \"hvsaBnv2e212vOtI9S2HwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/4ACyr77rb+9baaVrT4iKg\", \"target\": \"2w6gQx/64oNIN6vPSJkq1g\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"WmX+Bd3+PspInoASh3GROA\", \"target\": \"hLcKVFSDYzYhd3ukkH4rKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gkorgH/UGPyBdCL13IruUA\", \"target\": \"hLcKVFSDYzYhd3ukkH4rKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PWazbWYXRKDBh37GwcFlvA\", \"target\": \"hLcKVFSDYzYhd3ukkH4rKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Gk9r9+9dPSxFKRaRSiRig\", \"target\": \"e4ROZ13ccxz2g26f45swKg\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"7njeFt4dGgGvsxh33HpOnw\", \"target\": \"8n6srpqptj5FhuXzdPRNKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8n6srpqptj5FhuXzdPRNKg\", \"target\": \"WbjeTkam/jv1EPnvm9ya/A\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"0AV8XBG6I50yWsMa6N9pKg\", \"target\": \"402+Q4nAghzmmhzcXv9sUw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0AV8XBG6I50yWsMa6N9pKg\", \"target\": \"1TyGrvk8SzqnwelG70YR5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0AV8XBG6I50yWsMa6N9pKg\", \"target\": \"fNS5Dg9E+rY2v60BUkcE9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SQ42EOxBogb4ZYJ+L6pPng\", \"target\": \"i3MBq8W1fq88lPJPOWWDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8JbF9ap+6Qhiv10Vnu/1uQ\", \"target\": \"i3MBq8W1fq88lPJPOWWDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fNckhogPhWH5mD6GuOx38Q\", \"target\": \"i3MBq8W1fq88lPJPOWWDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"lBimwmPeqlrqfcBOBTWMKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGdleYZfLD0f2H9xzK+zaQ\", \"target\": \"lBimwmPeqlrqfcBOBTWMKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/19+KHblwik18G6UCCeQKg\", \"target\": \"rXwmglMMZnc6Yf56zT6cNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/19+KHblwik18G6UCCeQKg\", \"target\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/19+KHblwik18G6UCCeQKg\", \"target\": \"N9riAVATY34jHBt90TQZrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7fjN0LsajQqPfVlvDEusKg\", \"target\": \"pYlTvg387QEobSKG4JksRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7fjN0LsajQqPfVlvDEusKg\", \"target\": \"hW366XCp/i7HQnhv+RXHXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7fjN0LsajQqPfVlvDEusKg\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ee+PzZHHk1pLNU6kTEnDKg\", \"target\": \"dOitCDCE63Unt2Uz+02yPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2xWzE0Ep6ErJ3OdsXO9HqA\", \"target\": \"Ee+PzZHHk1pLNU6kTEnDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"22CPbcrrBAQIB6Uhv2CtQw\", \"target\": \"UU6wJSRbX+6ETKorOIDDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UU6wJSRbX+6ETKorOIDDKg\", \"target\": \"xqgM3rfoMtsn1TX/WLjvbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"target\": \"UU6wJSRbX+6ETKorOIDDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CDlP7HSYXLmFaiyN5IqYgQ\", \"target\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"target\": \"LTaDkNz2mZP7yiaR9otroQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9fU7qlQhRR5rhI7dOB+uyA\", \"target\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"4OzUZqFa0qF+o6k0o3L/Kg\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"st4pZAhzBQKvT58+t+JCew\", \"target\": \"yHBDU4vBCfdsrU8X0BwMKw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"KAKEOkFekajnA5P8iX0aKw\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KAKEOkFekajnA5P8iX0aKw\", \"target\": \"KBvffIWk1pKZrIIrmmUtVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KAKEOkFekajnA5P8iX0aKw\", \"target\": \"ri48j885BLzHXAWT8WJduA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l0Jn5R0PeAMlVCjBWql4Zw\", \"target\": \"oSOIcWuiSZPMHE5B5bBWKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O/gDisntYgEbfhuQHG3dZw\", \"target\": \"oSOIcWuiSZPMHE5B5bBWKw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oSOIcWuiSZPMHE5B5bBWKw\", \"target\": \"opICajuz4lb9z9H3bjGb2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"Gf88tDhAetc/OxboxVK8VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"CIEk6rJ4pzoVNKDg6ks8zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"ZzXKeIKTxEylrN333Zct1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"6RqXWDqyVqOwgmmmqWtA/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hP1+cpOWd9uU9/r4Bl2dKw\", \"target\": \"k4BLc8VJPYj1HiQLZE0fSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TbiaKQeWZOhnP0oW13uX/w\", \"target\": \"hP1+cpOWd9uU9/r4Bl2dKw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"VywXO7h+uJoHcQ2zWV+7Zg\", \"target\": \"pVlR0mvxmhXylIv/NOu8Kw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jSRfMZy/4td8W+2rHbKKjg\", \"target\": \"zk77BSjWg14792evZRPLKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cH7hwoKgMaOJsY5D3kVnmw\", \"target\": \"zk77BSjWg14792evZRPLKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2kwqkjb20NhFUxxC1Tm51Q\", \"target\": \"zk77BSjWg14792evZRPLKw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G7/xMwCxUY6aMLpdikocRw\", \"target\": \"rWlJxrA/s72KH2o1oRTzKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"rWlJxrA/s72KH2o1oRTzKw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"rWlJxrA/s72KH2o1oRTzKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M8HxGRFCNypXwF/eIsH6Kw\", \"target\": \"hGEk18My+bGDzPUGuGj1VQ\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"ODH4G/1dGsJI0ltnCWxSTQ\", \"target\": \"VdfALO0gD1XZVZq4asFDLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VdfALO0gD1XZVZq4asFDLA\", \"target\": \"mLUf20JHZo0y4cZdGEJL9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rb0njpcOXDpaiJ6vmA4Ng\", \"target\": \"A6Lm5QBypgDp8HuoTthILA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"eUllzuIfKGJ2N2NV6xyHmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"lBfTM/Eoboj+//nPf9zJpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib9VmFqcj1KqsdJi47OwA\", \"target\": \"A6Lm5QBypgDp8HuoTthILA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"jW7V0TO2LoawsPs4sppD9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1IsjuWLfsWa9UTyKGAheqA\", \"target\": \"9eRCLSKhdRxkjv0juzJPLA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"KSy197RLM9KmZkkCLRjLjw\", \"target\": \"j7rR44Lsi82gyHRfHndPLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"j7rR44Lsi82gyHRfHndPLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"target\": \"pfshJY0SJSdlynrp5SpwLA\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"fgX7ya7V38qk7fE9/baWLA\", \"target\": \"mt56Y7tQ3sCIsVJj4zkXXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fgX7ya7V38qk7fE9/baWLA\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"bGDOuVUdJKIu5Ixbo/hl9g\", \"target\": \"fgX7ya7V38qk7fE9/baWLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"rHM9RQATp1jHQEMKoPrBTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"AGdleYZfLD0f2H9xzK+zaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"9Magx3/mXuyBOVJWMpiCug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"XQnT/93qqR6fC3YyjNB40A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"ILLw32m9uRu0mMk194ka+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4UwkwFD6vbUHvdt1KNwrPg\", \"target\": \"zcgO0wKMPX9rwh9b4B7XLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tGIgPpSLABsuqToLwtBzsg\", \"target\": \"zcgO0wKMPX9rwh9b4B7XLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lmCvKTCRZckGDMS8v1XR9w\", \"target\": \"zcgO0wKMPX9rwh9b4B7XLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"HrocpK+R2Xbz1ur0/JLxLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"HrocpK+R2Xbz1ur0/JLxLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HrocpK+R2Xbz1ur0/JLxLA\", \"target\": \"IaImK3Wfmh8zprJ17Fuz1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XU24yr/ZZYJLIUWRlyZPSQ\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LkM0/MtyKDGvzCG666tvZA\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Z1owg5XRBMZ+UZarVUEvbg\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"T21csR2tiZvqkP3PvXdr0w\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q9DbiBLOUlsRxS7bC1lH4w\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"vK+M4+nZPjX8OiBYzftzpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"zl2ldV3zCVo7TVH54oYQyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3JF5d44TiQe135KITj8gLQ\", \"target\": \"nS6lfxCR8UbhgnG0zjn2wA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"G0Jvudh0MprO+ahcgETzwA\", \"target\": \"IDGncZABpx7Dz7CreKwpLQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"CtDI2Ydifk/J2l6kEfI2LQ\", \"target\": \"SNmVHg4+txr17tuDDEzSRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CtDI2Ydifk/J2l6kEfI2LQ\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"CtDI2Ydifk/J2l6kEfI2LQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+abHxnRqRfh1nZS42+ZlLQ\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+abHxnRqRfh1nZS42+ZlLQ\", \"target\": \"cT8S0osGv1Yx07xujT9gqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+abHxnRqRfh1nZS42+ZlLQ\", \"target\": \"budk6JQt4FfXRTibqggC/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"target\": \"hBaIymmn7uUX5Xp9RkaDLQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"4hZmMgnJIT+452lBnYuVPw\", \"target\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"H8DT+1a16Vl5KIs2uBGBcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"GogN3PGHqIxQPq1ggN//mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fk9ODZxwazvx3GbYrh77tA\", \"target\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"eKr9JVEDRy/wrfqS0kXGug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"target\": \"eEtdS1uf44YPM0aRYMu2LQ\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"4ANIk4A9ljxROfdROPu4LQ\", \"target\": \"DOJ3OEl+wag5/2KgunNwhg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Y2XOerDgiAo1WK6+LC/sQ\", \"target\": \"4ANIk4A9ljxROfdROPu4LQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ANIk4A9ljxROfdROPu4LQ\", \"target\": \"9SJVLkajTeR4POfLrh2KvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EeLZzQRqDNrmxT6Ry8jILQ\", \"target\": \"gUFSWzIUmsXeT+D4FdTbWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EeLZzQRqDNrmxT6Ry8jILQ\", \"target\": \"MX1iQXm9JIumNefXUd9PXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OnleVs9vYySxKt/ycEmYkQ\", \"target\": \"lotyYjcXgKfDBSZvdowGLg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"VzS48APpJ+ye48pIki2dug\", \"target\": \"lotyYjcXgKfDBSZvdowGLg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"9u9ObBHw0ZkLEIYDSjgPLg\", \"target\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9u9ObBHw0ZkLEIYDSjgPLg\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9u9ObBHw0ZkLEIYDSjgPLg\", \"target\": \"M+OEVS8+0HCG1kjM26aRsw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3gslUUOyf0AwJz5K9OMXLg\", \"target\": \"NPfCKgsf74P+xfBuYOkBPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3gslUUOyf0AwJz5K9OMXLg\", \"target\": \"HxdyC6c/hI78wBGO81UahQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3gslUUOyf0AwJz5K9OMXLg\", \"target\": \"AgQzuVP3IkMn/Ov+dswguQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+x+3cuNFE2sMEo+dTzgtLg\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"foxrIAy0Xhl38FjWCJAvLg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"SFALSDMtSkulgxrvfj4+Lg\", \"target\": \"liBrYiJanb7tl/OaVcpARA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"SFALSDMtSkulgxrvfj4+Lg\", \"target\": \"mnkauRSDn2xt+0K5bWlj1w\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"eyAGwsikTSRHjosKLqBeLg\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"eyAGwsikTSRHjosKLqBeLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"72sWJrEiMlL0pIoWjHY5WA\", \"target\": \"eyAGwsikTSRHjosKLqBeLg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eyAGwsikTSRHjosKLqBeLg\", \"target\": \"jIVsa9D/kpFcPilmWa4Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eyAGwsikTSRHjosKLqBeLg\", \"target\": \"wZSNMWPhftzSTbrv/fr26w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lI/eft/RzEEhzaigNox70g\", \"target\": \"qAd6USNyWqskG4vch3uqLg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"fc6IFrUFydQMo2hfHcOqLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"fc6IFrUFydQMo2hfHcOqLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"uczLdKTFHKiIVXA00xpOqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8RvOVn53HohruwyrXukI4g\", \"target\": \"VGKshU5bzIdPYiX940SwLg\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"YhGi57jZutouXnsH9GfHLg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"aS/j8kZ+FFHiJeK+4iBrTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"ZsxjhsAD6Sv1A0bFckkNfw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y6tU5iNEDLF6oW77OnXC0g\", \"target\": \"YhGi57jZutouXnsH9GfHLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5Of74SG9/W96DpqLkPXKLg\", \"target\": \"ocP4qC/3EO7sFT+R6aIZTQ\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"4FMBsVtLVFe/Q7jRSBv/gg\", \"target\": \"5Of74SG9/W96DpqLkPXKLg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"5Of74SG9/W96DpqLkPXKLg\", \"target\": \"wd8a5USSMAFt1nzWAND3lA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"5Of74SG9/W96DpqLkPXKLg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"y3Vmos9YspAQxCoqI6LuLg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"+frVo3muv6V06M/IKtzvLg\", \"target\": \"CThZPER+VAiHSpO3wsKG9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0tfzKiqfAXj9nFago+QBRw\", \"target\": \"1Oon+nAU+Py1QICO0rL3Lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OVRrkEa1Qc7kjpyFl1Y7xw\", \"target\": \"VARfV1bcE8iSgeX/DUgDLw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"7pOwWLDQjqEZj812MoIMLw\", \"target\": \"koIW9iwU5uZe/6B7Rj8bdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pOwWLDQjqEZj812MoIMLw\", \"target\": \"M28X/3X9XhtMKEhs+6oP2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pOwWLDQjqEZj812MoIMLw\", \"target\": \"Df0dOb7XVmqj7vlzc20y4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CsWQSLgxYtAGh2euTYqX0w\", \"target\": \"mrh7Q4e4jyxYkrYaHRIrLw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"imqM2tAn9iI3UoMOfiJ9Vg\", \"target\": \"wIe8AMmvGoVrHsQaNupMLw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AdIBqPKbWZ1ixMQ1vwkHig\", \"target\": \"wIe8AMmvGoVrHsQaNupMLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"wIe8AMmvGoVrHsQaNupMLw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RnBcJDQA/ghDLQ6v3nxjLw\", \"target\": \"ZXBZdqAF3xm7IzHq5J1VRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1+u3lYKavPRkmHAzpIgisw\", \"target\": \"RnBcJDQA/ghDLQ6v3nxjLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"target\": \"RnBcJDQA/ghDLQ6v3nxjLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"z9SQ8Yfw19I4E86iEKyweQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"ymZAIf0E6zclGzrp8HZOkA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"rfBcOTnoGOUeM+2vyb/r1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"qYX/hJ1iKWEAkuu9BK/y3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P/7py6K8bExzhGEq33Cz+w\", \"target\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9rFAyGveDQdoTcKZUAqYLw\", \"target\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"qhjwK5yVFJXceVtxx9ARMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aewBFp5Orqz4bzZqctfT8w\", \"target\": \"qhjwK5yVFJXceVtxx9ARMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTNx6oL4X1f9yslPIOEfMA\", \"target\": \"b3tzFgpkl9x19kBFzaQ7iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"QTNx6oL4X1f9yslPIOEfMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTNx6oL4X1f9yslPIOEfMA\", \"target\": \"V42JQgL0mjSlYRIaBgRe1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E+2Xq5DDpUlkLdDvBpM6MA\", \"target\": \"gty2NExwPAbA4hpY0yCDsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZ9LMeimyr0YWPJ0IsRj3Q\", \"target\": \"E+2Xq5DDpUlkLdDvBpM6MA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E+2Xq5DDpUlkLdDvBpM6MA\", \"target\": \"qzW5fohBXdhHaVpKw/wW9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Yo27tV3GL1QlPVO9Xgs8MA\", \"target\": \"ne3mJ4vHAOk3E9IlDOcAqQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WEDPEOtHnqBwx2mcLMq81Q\", \"target\": \"Yo27tV3GL1QlPVO9Xgs8MA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Yo27tV3GL1QlPVO9Xgs8MA\", \"target\": \"tEeYd2NRrb/Qi528JuN1+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBSjXE/BZwDBw+/y9M/xTw\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"target\": \"gKIU7Gl4oIeRvEvPu/O/ew\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BnBQ+tWug8T5kfIlBJf1yQ\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GolMlD0lgvRnJJ+TP7Iy2A\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"target\": \"r8kHtYO3piUAlwogK5+R+Q\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"118lQL1ttP5xuIWkGz5JMA\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"118lQL1ttP5xuIWkGz5JMA\", \"target\": \"8Axznb3nRk/NprDR3QVNxQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"118lQL1ttP5xuIWkGz5JMA\", \"target\": \"6suweX+9HNHlp9Z3oC+26g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T6DOy1T+b+BR6BskRAVMMA\", \"target\": \"sbcB52eztAxnw3afxfrTzg\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"4zizU9T3lsrxZyVd95tuMA\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4zizU9T3lsrxZyVd95tuMA\", \"target\": \"mweUiILAkdAuuG85MxZPrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4zizU9T3lsrxZyVd95tuMA\", \"target\": \"UOJIpTijHzZsoiQk7xwzxQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"yUy3v6dGwda6RCUo5/KBMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vWy0S3JkUaZezamXjZGr3A\", \"target\": \"yUy3v6dGwda6RCUo5/KBMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Jk7T08xaG4CWAcdaiJqg8A\", \"target\": \"yUy3v6dGwda6RCUo5/KBMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ihRDb579O7VarQ0579yJMA\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"ihRDb579O7VarQ0579yJMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SU/6PQhlsHPBRc4pxcQR6w\", \"target\": \"ihRDb579O7VarQ0579yJMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TLWNjDgOrmFv4k8NQe+wMA\", \"target\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9H4dfR82pf4C6zAX/Kw+wA\", \"target\": \"TLWNjDgOrmFv4k8NQe+wMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TLWNjDgOrmFv4k8NQe+wMA\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sgu2BdeSWV91ulWfcnHRMA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"XWuOWtv1rRFGAv36ULTZMA\", \"target\": \"mQ7tVUOG/uH2XHt3C1YnQg\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"uxafDr00Oc9wR3p87+iCGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"xrfWfyWvrn2oZzLIjT1bUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"UzNqOCgoTFGUyAk8syFNVg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"GdAR33PKO7t7itLwkcSkgQ\", \"target\": \"TRMbN56JfWQj7mhdiELdMA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"mgKH8XgnUmt990hciUKkvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F1YGf+WOJFyqnwxZfAmy2g\", \"target\": \"TRMbN56JfWQj7mhdiELdMA\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"jnYl9d4UZUupzck1m5Xl6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLTeNonoRsfy6pTZgfM80g\", \"target\": \"QFKPk5ErCFl9tR5YYp31MA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"eJYBaXb15Ay5PIUOGzwCMQ\", \"target\": \"pb73mVNEl7N+Chk55BH2VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eJYBaXb15Ay5PIUOGzwCMQ\", \"target\": \"uldXPY99tgYVFbIPI3L5tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"eJYBaXb15Ay5PIUOGzwCMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVgPo1NwXZR+BngAq2QfMQ\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"MVgPo1NwXZR+BngAq2QfMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVgPo1NwXZR+BngAq2QfMQ\", \"target\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjYyHz4ObV6kmsjcMvQfMQ\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjYyHz4ObV6kmsjcMvQfMQ\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjYyHz4ObV6kmsjcMvQfMQ\", \"target\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GJ//Aso190vpgiSuCMInMQ\", \"target\": \"ZhZVkXk5CkcWX5ZOOMDl8A\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"Of3cqqWX3hgee7b+lotWVg\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"target\": \"wjjHMDS+oPWRjv725xcDiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UvwgWrEVRAhIKi90bruZqA\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DQtysVHWuXq+1/X7I2IIrA\", \"target\": \"VJ4miKmv2dvTOUuQo0FiMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7bnu1kXLvO3ak/QRfIZKsA\", \"target\": \"VJ4miKmv2dvTOUuQo0FiMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8zxchcDckT1281RKsWBF3w\", \"target\": \"VJ4miKmv2dvTOUuQo0FiMQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UZ6y6lAusJZ6T6c1pzhxMQ\", \"target\": \"fVODvtXqbIUOpKDyQOeZkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KQfkDTCpE+13mWT03/1e9A\", \"target\": \"UZ6y6lAusJZ6T6c1pzhxMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"DfFk7TlxB0SKkRl+KSWwUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"Wbuc7nVa2E5KBLrpb9Rr6Q\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"zbj5HceitgxNgyxaCXK2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G0HrHwXCAPzndCm/PFCQ7Q\", \"target\": \"zbj5HceitgxNgyxaCXK2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"zasWMA2ujUekpJ/0C/VH9g\", \"target\": \"zbj5HceitgxNgyxaCXK2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wk1nG7TWHHrjkW5jCMm2MQ\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"Wk1nG7TWHHrjkW5jCMm2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dPQX4HZuIcEoHZnu61i2Q\", \"target\": \"Wk1nG7TWHHrjkW5jCMm2MQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8M3rhKck0REhSjpNtC7YMQ\", \"target\": \"XLl7+jPIy0KntxXZsFAjZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8M3rhKck0REhSjpNtC7YMQ\", \"target\": \"o2CKozplhIEEwPMwuJwHfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8M3rhKck0REhSjpNtC7YMQ\", \"target\": \"Z9n/kmsyq52cF3jYG9nZwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"xrJ3jQNVEYLKSG2wsIVQMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r+bYu5Ulcywy8rBOadEYuQ\", \"target\": \"xrJ3jQNVEYLKSG2wsIVQMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E5RFxFLm0rwucZ8uZNlUMg\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5htVZaN4DNSg5D/11IMaSQ\", \"target\": \"E5RFxFLm0rwucZ8uZNlUMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E5RFxFLm0rwucZ8uZNlUMg\", \"target\": \"xsZ3QoOsiYVsocqIeU1Yfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2yyjPHHujpqv9H3nU+D7Tw\", \"target\": \"fwR6mM3NYfCOhSS0Vj1bMg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"l7I3lB3cXywY3HXs1bt9Mg\", \"target\": \"xSijYTPxbvF64cPzbe9oVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l7I3lB3cXywY3HXs1bt9Mg\", \"target\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h+88TEDu69e76yofbFUC7w\", \"target\": \"l7I3lB3cXywY3HXs1bt9Mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3pLi4d+RCLq4lC3A772EMg\", \"target\": \"raZOG5bVUG5VdyFDA9JGuA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"A7DMC5xh2BOv+DzA5zFtbw\", \"target\": \"yP6QOObDsAHs1VjRToyUMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vU3OpI4mB3qzER4N/RBhnw\", \"target\": \"yP6QOObDsAHs1VjRToyUMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tNPQOgx1QK26mgnI8Z8woA\", \"target\": \"yP6QOObDsAHs1VjRToyUMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"48shU8rWkVDv9ux1mYNJVw\", \"target\": \"pgCefxI2zE0FtD8nu6O0Mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"pgCefxI2zE0FtD8nu6O0Mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pgCefxI2zE0FtD8nu6O0Mg\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IOyeV/FDuKq0lQsYOChRxQ\", \"target\": \"fNb6tc/91t7GAC/jctvKMg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"mmZH8gVBkIsf/WBYN3zaMg\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"zqCo80r14M+NVkN22VzcMg\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"YrrsQS8pOEwx8jIkOi12VQ\", \"target\": \"nYvgrk6azMPgtq4Gr5vcMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"target\": \"nYvgrk6azMPgtq4Gr5vcMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2t1yVN7Z9uNwoEmgU8tS7Q\", \"target\": \"nYvgrk6azMPgtq4Gr5vcMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0RJgJMYTybpAEfPhQMBfcA\", \"target\": \"M4N56iTz6LyhT1VwgSjoMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6sR9fgv8OAB5rOrZEqkQqA\", \"target\": \"M4N56iTz6LyhT1VwgSjoMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M4N56iTz6LyhT1VwgSjoMg\", \"target\": \"vxral90saOW+72B9xdDaxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"JBXEywy8jAIFIaaiea3oMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HZQlAg8cz/q0rps2qUxTmQ\", \"target\": \"JBXEywy8jAIFIaaiea3oMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WZO2jjMqEHtvBBYv4mK8A\", \"target\": \"JBXEywy8jAIFIaaiea3oMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93f7IAVfiVHO+9CK8tAGMw\", \"target\": \"PiJmAxkbdCeOWOHSKl/zTA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"J7Ke/4dKti+GVxib2RxLMw\", \"target\": \"P3ZfkdUWoPHfTnvoEZovjg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"4IorKL4CJGfv5Xy/10jaOA\", \"target\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"target\": \"kD0Flo+4T5a+cZgS2c3wdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6bRiUSe4hBMy0l8u/Kc6qQ\", \"target\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"target\": \"wvKwvzhvGsDMWXfZrSC8yw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"target\": \"b0c1d26mJFr1jSCe2avt1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"HJnZCVM1Suydwko0rNZiUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"oFQNBM4xI+HgY5Q9FrzhXA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"ZZkUAgtwxPW4ue5corBtmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"pL6nc0UXPCXIC0pq2oPHow\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"H7bKs0LhQYdNQKdCXn0esw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LbpAv4RD73ZyJlP8Viv4ig\", \"target\": \"rzFcxkmo/fUZ0TWEtvO2Mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+ZNPAfLfJ4E3rqIsOm3zA\", \"target\": \"rzFcxkmo/fUZ0TWEtvO2Mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JglA7absRTpBaoWEMEWXRw\", \"target\": \"dfhJNnLn2T6N+DAzlIfGMw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dfhJNnLn2T6N+DAzlIfGMw\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dfhJNnLn2T6N+DAzlIfGMw\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"target\": \"Z40sY+dpymk2VZt++4Odfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"target\": \"bUgdrd1w1QJ1vRcQBboOuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DoWrGTWQg6VqcUOPqKQA6w\", \"target\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"bUR856SolxjVuhh51iNJfA\", \"target\": \"dtYtPCCrTanY+AdLfGTzMw\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"target\": \"QrdDL6JUD44vKE1FU/wgNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"aQooP03pBVj41aWCxfDcTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"mfNb4PePcIOAfwupmedlVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/aM4gHYQGmLOHeMeBo9xWg\", \"target\": \"QrdDL6JUD44vKE1FU/wgNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"SW495dBUNeThwmcdR2mnsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8fOcjVMM97bF0nHRwpmwQw\", \"target\": \"Zh+0dGB/2opkTTQr5085NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TECaccIMdVH1O/B8fm3MYw\", \"target\": \"Zh+0dGB/2opkTTQr5085NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WsADvQUexHH226piNwJkmg\", \"target\": \"Zh+0dGB/2opkTTQr5085NA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cJV6ZU5D/C9ybgB24bfVRA\", \"target\": \"ouCOwW/QrzKxPCVjsHI6NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"target\": \"ouCOwW/QrzKxPCVjsHI6NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ESC0HxN2+18/OEVFpNgDtw\", \"target\": \"ouCOwW/QrzKxPCVjsHI6NA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PCycEl2GTWjoexk2Y2k+xQ\", \"target\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5RDTYztzVBjOOGuLnfYJfw\", \"target\": \"VZV+c0obhQy70SOsyW5vNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VYKTf58Y/3PKyKyODXVDnQ\", \"target\": \"VZV+c0obhQy70SOsyW5vNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"VZV+c0obhQy70SOsyW5vNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kOMnWfmlMTJk3xPhEQgqRQ\", \"target\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"target\": \"qiADwYywQwryVlnMOEJtiQ\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"target\": \"q1hIpuJfhsRHeVqWKvcwkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"target\": \"mJoSuOtK1NC4MEDpqX/U4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MZv1gsgN9o3VF/brc9GUNA\", \"target\": \"OSUbNnz8594/TF66ul1B1g\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"/bOpgNw5PZsjwLRRUphn+Q\", \"target\": \"TETkfceYjomyctQgahadNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pyXxMZeE/GIVMGUOpgBeA\", \"target\": \"KMleOwgXGNplcmZFeNWjNA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"d7gA8hz1s23obdi8bo7s3w\", \"target\": \"yt8+YJQAZqCKOf5cVKWlNA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"K1/A/RTcPKClvEGG70qqNA\", \"target\": \"NQycxBqIh2cAluZ/Nfbimg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"d7cfpeFTwYWLuU7WK5u8NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"d7cfpeFTwYWLuU7WK5u8NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d7cfpeFTwYWLuU7WK5u8NA\", \"target\": \"lGkpU3/jy713soPYjV1X4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ow3h3bI7n0amMosQn3tVYw\", \"target\": \"vLFjoEu+CQIXNXB3XvnINA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1WjfVSCScOY81ocVLG5loQ\", \"target\": \"vLFjoEu+CQIXNXB3XvnINA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"POgaZ85u3n/rjr0nGAs1sg\", \"target\": \"vLFjoEu+CQIXNXB3XvnINA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"zvGeU+VcJmW6QjWCy7rXNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"target\": \"zvGeU+VcJmW6QjWCy7rXNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9GK18/slEWXsvIbLQoRFpQ\", \"target\": \"zvGeU+VcJmW6QjWCy7rXNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"13uhEOHN+3Mmm20+Zv+x+w\", \"target\": \"f24Xi8c/0Fdxk2+NzM7jNA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"YKL0iF5OjEnX3U+aQiPxOQ\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"target\": \"uTX3fyUcUp+b6NWtu4o0Zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LOSl8aE9nEoPZ/lS3NzlfA\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MrbW31/GLJu0yonpmKadiA\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QpCAHtbvoruznvjbEU8nsQ\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/D6LrHV3O/2uD7GGDRXj6Q\", \"target\": \"Geq3alYhTi8s1rs4KRQkNQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"7Jz2tWyndpnXhKTatCg0NQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"2FUWUn57d9WkTiJeBNJWgQ\", \"target\": \"PI1Us3jqDlTa6XXAUUM2NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PI1Us3jqDlTa6XXAUUM2NQ\", \"target\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PI1Us3jqDlTa6XXAUUM2NQ\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"IUCSc8JrpOX9siFlq4kTmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"vZRT0MW4o7/ERY8DWdbdrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"I7yLN7s/WeYO56T867I33w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vcGMItDb18P4MiqQtBg9NQ\", \"target\": \"y1ddPhWn8OawoC33VNunNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"target\": \"vcGMItDb18P4MiqQtBg9NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"vcGMItDb18P4MiqQtBg9NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"VW/3wn1Ua34HQooLnX2bNQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"target\": \"y1ddPhWn8OawoC33VNunNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"y1ddPhWn8OawoC33VNunNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L4+2ZMmnc8gTOu8mN1LjPg\", \"target\": \"wivzWNqrkkl8zEKhr6mwNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/9wvd4VqJwRqnTWtDanhig\", \"target\": \"wivzWNqrkkl8zEKhr6mwNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8l4iqTxQwu+5R2t40Ua0NQ\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aTd06n7GzqvPoy04Amm/NQ\", \"target\": \"i3zgrHGhwU1ZCoHDBm6BOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZU6/wYRtpnWbayzt0gCnfw\", \"target\": \"aTd06n7GzqvPoy04Amm/NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"FocYZ2czD2rOLZNlCDLhNQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"GGG3GLyEkkn6TlX9FkYjNg\", \"target\": \"JZ/SP3mwjV46p9S5v9Mwgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GGG3GLyEkkn6TlX9FkYjNg\", \"target\": \"tag4XqPZ1ovS8C2YXBc2iw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+Rb0njpcOXDpaiJ6vmA4Ng\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+Rb0njpcOXDpaiJ6vmA4Ng\", \"target\": \"eUllzuIfKGJ2N2NV6xyHmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"yyo4QzO+toBAnp5zD/2MNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"yyo4QzO+toBAnp5zD/2MNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"yyo4QzO+toBAnp5zD/2MNg\", \"target\": \"zIMloag8qUWv9b91U8kx/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JdHgLTmCpdKriVMq73fU7Q\", \"target\": \"L8yNKzJqcqaVQqBU762QNg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"target\": \"rXwmglMMZnc6Yf56zT6cNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9riAVATY34jHBt90TQZrA\", \"target\": \"rXwmglMMZnc6Yf56zT6cNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"Ud/MzJXQJ6KFdZpM+gO1Ng\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IrD+kWAzYPM1bqM4hRxKpA\", \"target\": \"Ud/MzJXQJ6KFdZpM+gO1Ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ud/MzJXQJ6KFdZpM+gO1Ng\", \"target\": \"oUJBjKPhjCGJybVjNgQS5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"o+1THDudDNgd5LeGu621Ng\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iQM2EjFgUk/83dUXxYq3lA\", \"target\": \"o+1THDudDNgd5LeGu621Ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DyY4dH1vjZdzrw7I3gxArg\", \"target\": \"o+1THDudDNgd5LeGu621Ng\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"j0LG2TBfq7KBMfdREM9O/Q\", \"target\": \"o+1THDudDNgd5LeGu621Ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F5HRLcAVvtui7yRoAlPYYw\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wlAJo/RlvognTYu62pnBNg\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/vWYb5IsDMKj6AN7glY4rA\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kpts1Dex2CaSJVU8vdHE7Q\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"OI/ydWTogQ/yJqrsKqnXNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OI/ydWTogQ/yJqrsKqnXNg\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OI/ydWTogQ/yJqrsKqnXNg\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"z/TAoZvzjf2wvlusVBnV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wbch8nHNaJm78RwT0NdXw\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/c8KCzUU8taJjhXPkCEYwQ\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"168vFRjReKcksP7HJpOVuQ\", \"target\": \"5Mnxw2ItqZFTnRcqOtQ/Nw\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"tTO1LQu/M4nsk0dADel4UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"Rg71KvMVmp7RPzqsdMHX+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JIIcZtdNc3gO1hbq4vDzNw\", \"target\": \"cS/bpu52WCU9X+jUmZu+Yg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JIIcZtdNc3gO1hbq4vDzNw\", \"target\": \"bXGpMEzkXLgG31dxALVXyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XDch17TWpi6KnT3vVbMAOQ\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9DtTLKdp0pHZCbYalxQFYA\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DOsl6zK+y/hfIPJ3VtMngw\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lsLKKaHMUiMrn6Zcpfq5yA\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BqVAoi3vwE1iMVUXAiWGfg\", \"target\": \"u9tpxhNNcS/7dFt97stROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RzobwgLknSJL7QUthZojvw\", \"target\": \"u9tpxhNNcS/7dFt97stROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0mApAkzVCbCD0Bj419HRwQ\", \"target\": \"u9tpxhNNcS/7dFt97stROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7VxW5gODW0HzIt9IxfRVOA\", \"target\": \"lve+wd/wKPyn3CsMesLZyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7VxW5gODW0HzIt9IxfRVOA\", \"target\": \"Q+4EDqYZPaAgWbykhywf8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1yukRzWql92dVK/8H+xhOA\", \"target\": \"Y4HpFSDpB/pb5VCJTwiQRw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0cSWpJdc3Akr/N3MCnC8kQ\", \"target\": \"1yukRzWql92dVK/8H+xhOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1yukRzWql92dVK/8H+xhOA\", \"target\": \"XEXq4+EHfYmpdLTINBij/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eWoysQjmb1YXqETtx01uOA\", \"target\": \"eo4vpF7nVaIftXjavEnGSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eWoysQjmb1YXqETtx01uOA\", \"target\": \"sWKWSenk2C9eaWrxecV1Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XjnqMtdhe/1AFJoQ5rqZog\", \"target\": \"eWoysQjmb1YXqETtx01uOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WmX+Bd3+PspInoASh3GROA\", \"target\": \"gkorgH/UGPyBdCL13IruUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PWazbWYXRKDBh37GwcFlvA\", \"target\": \"WmX+Bd3+PspInoASh3GROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"Y8BKm9HLQuNZAEIUJgv30A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QmC0hKSul+B5fhM04xGv/A\", \"target\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HjbBXpRquXhoMGLikIGrOA\", \"target\": \"jSN7JY5CiEq76H/IKAPBWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"HjbBXpRquXhoMGLikIGrOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjbBXpRquXhoMGLikIGrOA\", \"target\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"target\": \"mrM4ROiVkGaCfKkD2OPCOA\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"ii3tszFdiAhbrHyv0f7DOA\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UZtMHjAFyNCmnx136tTiTQ\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34hValFnV2+dT4B4gubXVw\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Av+NJ6AdBIQWI6bttPc38g\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bkTpfRcqaOJ298DCRgK68g\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0ffo8htqDpK9tZnBD4THOA\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"BpRR0QhEMrdljaEKAwDnOA\", \"target\": \"PcXLA8V21+Wb46Z5bgKSXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BpRR0QhEMrdljaEKAwDnOA\", \"target\": \"OyTztUYnRhTYYxoLBI9FbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"BpRR0QhEMrdljaEKAwDnOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DVXpioDNFY1CEMdD0M1BOg\", \"target\": \"jw3uDJbwqaXK2CElqcXwOA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"9DtTLKdp0pHZCbYalxQFYA\", \"target\": \"XDch17TWpi6KnT3vVbMAOQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DOsl6zK+y/hfIPJ3VtMngw\", \"target\": \"XDch17TWpi6KnT3vVbMAOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KcKrZ7VTELYyhbcB1CLjw\", \"target\": \"hN89C2iTzaduKojIrKJAOQ\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"QFU2MEjXqNUYBodQv55IOQ\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QFU2MEjXqNUYBodQv55IOQ\", \"target\": \"zK2i3Ls/9w5NBkwfx7F7Rw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"kVGEDdEcZATOkoKpVm9fOQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"TL5s/frCf3gd9X1oCJZ0OQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"ZU6/wYRtpnWbayzt0gCnfw\", \"target\": \"i3zgrHGhwU1ZCoHDBm6BOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E1IK+hjo8sbiIQR1ji6tqw\", \"target\": \"f4qGvK6jVxaOQVXbKMmGOQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"DhizICH7mxQCp4zSzsSLOQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"DhizICH7mxQCp4zSzsSLOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhizICH7mxQCp4zSzsSLOQ\", \"target\": \"dLxkDItK6ds0BvVWlMzfxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7tbayrhcwEFuJlOLEUmPOQ\", \"target\": \"claAW9BD3Hw/5DoSlbSKXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7tbayrhcwEFuJlOLEUmPOQ\", \"target\": \"xrWu5aeUX9Np83JY2t36fQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7tbayrhcwEFuJlOLEUmPOQ\", \"target\": \"j2Yua3a567JQqNUafYalpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ydq9OqivGkHhR4sOMxuSOQ\", \"target\": \"hdbnBT9t2fyEJTsarj2ckA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ydq9OqivGkHhR4sOMxuSOQ\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F5YJ1jose1f1KbLOiCJJyw\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"265feNjxTzIMZ8+BKwy4zg\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"target\": \"cCmG6cRvUcKWgi1UAH9g0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"target\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SssatqK3hP1QznpmsvEoRw\", \"target\": \"sz1wpqB2jxUvK7682RnHOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JARaDTo+BmuRHMBD03pY0Q\", \"target\": \"sz1wpqB2jxUvK7682RnHOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sz1wpqB2jxUvK7682RnHOQ\", \"target\": \"wVc80t3sNC598XKNFbIp/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VMHBJSbwjrpqQxe7xSHOOQ\", \"target\": \"kVhIf9Yg6rCX4/kOHXUnjQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"YKL0iF5OjEnX3U+aQiPxOQ\", \"target\": \"uTX3fyUcUp+b6NWtu4o0Zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QpCAHtbvoruznvjbEU8nsQ\", \"target\": \"YKL0iF5OjEnX3U+aQiPxOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0HqZ+gKQEfBndFGw6c8NUQ\", \"target\": \"R20ccImKXtHGaosBHaEMOg\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"RXvDBU82q16Pw9nStf8zcw\", \"target\": \"SDfPe+g+qKIRwCGUZ309Og\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"bVoAGD67kCzsNOh18bHUmg\", \"target\": \"tBSpZbKt95ZOs+uKf3ZjOg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"JTvwqLDX31+2hz07xl5yOg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JTvwqLDX31+2hz07xl5yOg\", \"target\": \"x/rpyDH2fFCbE+u0d79MiA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"JTvwqLDX31+2hz07xl5yOg\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GrqrBuWDMZVbhSwmYox8Og\", \"target\": \"Llcr5KlFvbooWVvHhDsk/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIlgfYinDLoYqQs7OaamOg\", \"target\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HIlgfYinDLoYqQs7OaamOg\", \"target\": \"RGjlmlPAkXa/tI12Y6I10g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HIlgfYinDLoYqQs7OaamOg\", \"target\": \"PyEwC8P2XWgBNOn//O9W6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"xRIZCO6SRfXLOE0+vaXu8Q\", \"target\": \"yB4nFjITPKoh7bEpLPDzOg\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"9kBqWNP1i1TjWuY6XIL7Og\", \"target\": \"uAvywguLcy7TEJ62HqUCUg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9kBqWNP1i1TjWuY6XIL7Og\", \"target\": \"Sy2muxkb3YKQEB3A+UWj2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+uAcgSKO2bNolKgqpWQIOw\", \"target\": \"84cQ3j2fcrmCy4xje6xR8g\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dJz7k+gQ7Qf0mGFV/ibGqw\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lzG09nQSYpfLweqcxR9KOw\", \"target\": \"nWOJ3KQgDcbnanj95rwerQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lzG09nQSYpfLweqcxR9KOw\", \"target\": \"nNdeLertJElPQpss2WS+4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTana0mhDAQ7pDlNgeTo5g\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I/O27hbD2ZdHsBYgQYVQ+Q\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/8YpjmS6ea+0tmqCIWNvOw\", \"target\": \"oyFfCj3XEK2o5kEyMRZXug\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"UZtMHjAFyNCmnx136tTiTQ\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"target\": \"tH9869I8NvruzTNOD7edxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bkTpfRcqaOJ298DCRgK68g\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"KsAKs7t7Z8NDli2Ph9N3Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Iv1TVwC5a8DIOQwR/OdixA\", \"target\": \"KsAKs7t7Z8NDli2Ph9N3Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KsAKs7t7Z8NDli2Ph9N3Ow\", \"target\": \"iLCK0JeQAw5z+bYWs/914A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"rt/IZulKGE61yudVPiWLOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"target\": \"rt/IZulKGE61yudVPiWLOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"rt/IZulKGE61yudVPiWLOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3GtPhtMHl5X4mu4HSukWhQ\", \"target\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"target\": \"T1TY0PEf4JGxqOim/tVrrQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"aUsB1m1dWOhCOv1IOrurOw\", \"target\": \"jDNhsvbjunwQKLmvhy38bw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"aUsB1m1dWOhCOv1IOrurOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"i+mEeURUNZMkwdukcXesOw\", \"target\": \"pYz+Bh5cLgD4u37ISthJnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"i+mEeURUNZMkwdukcXesOw\", \"target\": \"lzH6Idq2FJnBDgEnU3CMvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ae9DRMtLdxRiRvwoQZcWVg\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ifsn31I/BxOTLopfp+ELnA\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jIVsa9D/kpFcPilmWa4Hzw\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"i1FG2HVaFaWVKq8Gmr+Fag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"jr/tmb8gfujXSG5D58/n2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AAlv0/vwcPMrCI1zCwbfOw\", \"target\": \"mf/sQ2DSs0ULStqjM3UzgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAlv0/vwcPMrCI1zCwbfOw\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BEjSdCilxicLKERRH2kM6g\", \"target\": \"EwsQJO9BG79bRBbT6sbtOw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"kdyzdInEahDDJDFc45n6Ow\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jZp0wulp0qyqJdux+qWZbQ\", \"target\": \"kdyzdInEahDDJDFc45n6Ow\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"H51lkjTGo0qqwQ7sEroFdQ\", \"target\": \"kdyzdInEahDDJDFc45n6Ow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kdyzdInEahDDJDFc45n6Ow\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NqG+c1a1lIoBlf+gygANPA\", \"target\": \"laa31xOWPxkSz2RmR/OzLQ\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"NqG+c1a1lIoBlf+gygANPA\", \"target\": \"XeGKIwBj2l/BdnCHeKgxTA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"/+tEWbza2NMQ+0GqgeYlfg\", \"target\": \"UMbT8esxzL0+gc3dtkQaPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"UMbT8esxzL0+gc3dtkQaPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UMbT8esxzL0+gc3dtkQaPA\", \"target\": \"YSeBLUEND64U5fx2jVt88w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qiADwYywQwryVlnMOEJtiQ\", \"target\": \"yomEKZktx2kx0s5Uz6Q5PA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"PFQQFTwxo7gAyWxkxct3lw\", \"target\": \"tQITkugM/C3R1+isp/E6PA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"tQITkugM/C3R1+isp/E6PA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TH2nlEfNlTbfzWVGhDc3QQ\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eLVohINWQqpjz9ZXpnMOQw\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"EDp/Q2VCkQFOz0Iplgj9ig\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eU//jS/YGhjXUkc31H9SPA\", \"target\": \"hUqcqGPdKtI69S4i5SSFvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WNsmKI9Jb0iXFNPu7hJ1PA\", \"target\": \"bDdU/0byIvyGkNcVnGcpcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WNsmKI9Jb0iXFNPu7hJ1PA\", \"target\": \"dX/TaBHa6EarDLBexxa0rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WNsmKI9Jb0iXFNPu7hJ1PA\", \"target\": \"bDI9Og953C9gM6mQqrsd2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8ER2sMgrYPshQENDsp1PA\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8ER2sMgrYPshQENDsp1PA\", \"target\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H+It2SD4KPOr34Qht7sHsw\", \"target\": \"MLdSmvn3v1YguLOrXiSDPA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"lxovHFLCK1G/Kp7GpW2jPA\", \"target\": \"mRbA34kTgrTVR5ssP2vtnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2sihRpUNQ4AoNIXbK1Q3yg\", \"target\": \"lxovHFLCK1G/Kp7GpW2jPA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+NijVvh9cRhrJcDfe+sxg\", \"target\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"cCAe70sXGQWYb/OuJM5A0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"MVxpMOd/YHo81uKU8J1D2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"target\": \"k55CIte3Gp7p6qcb3qdhaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XHApgMrcyJKBXYHBHMgahA\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dUP7AahGpOkDnORHDuEzrw\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eRxPWjT//2+yUjJyJK+N7Q\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"izLXj7XivmVFEI8heob6PA\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"D5+KfnZfLerid2bgjR8uPQ\", \"target\": \"DhHo3HeMfTGX/H0KDyMNYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D5+KfnZfLerid2bgjR8uPQ\", \"target\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UpdDOZZ/nnNC6z5GD0lrPQ\", \"target\": \"riYzk3GZZhFYefWPcH7rnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IPgGExpgq0OmbJYAJoFSwQ\", \"target\": \"UpdDOZZ/nnNC6z5GD0lrPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WC0EmD43hs84OV0WQld1PQ\", \"target\": \"r+zf57mLB0xmGAqQxt7d0A\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"9Pjx+U21nuLt9VnXHy6I8A\", \"target\": \"QfPcP1f2mG6CK6IQ/xOPPQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"DlQJmZhrLcSFewBXCcWdPQ\", \"target\": \"TPUTckho+StrbYBpi7L0YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DlQJmZhrLcSFewBXCcWdPQ\", \"target\": \"NzlMJMnlHuCbxGhinyGmfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZwC6Jos8tXbLFjtN+qWqPQ\", \"target\": \"e66HgXZ0Dd9pxVG+Mc2JRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZwC6Jos8tXbLFjtN+qWqPQ\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"target\": \"z8HESHrmU9pp0w+KLN2NNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Ym5cu26ZERosFfZto1n+g\", \"target\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AXXDOz0vS2tmKhyIhXZEXA\", \"target\": \"Tvk5iFzPudwpAjBrr/C3PQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Tvk5iFzPudwpAjBrr/C3PQ\", \"target\": \"jPwI+OB8erWmfUxJgF6Nrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"target\": \"Z8jlpMCdujC4++qzmq3BPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"Z8jlpMCdujC4++qzmq3BPQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f3OysywHhD6Z8jwa/VbQPQ\", \"target\": \"wzAftnwgVrYbBviqd5/Nlw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f3OysywHhD6Z8jwa/VbQPQ\", \"target\": \"ykhADMSBj+Y4ryryeKH5uA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4iidBzFOnffMhDtuDP6vcw\", \"target\": \"xTR0hple3jVx3DJEv73gPQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"xTR0hple3jVx3DJEv73gPQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"xTR0hple3jVx3DJEv73gPQ\", \"target\": \"xmCrALNj7UEjOj1fRMfp6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LLqUTf2C7DiwEPqO9IAzaw\", \"target\": \"rfNNiCvdTiGlx3UokrcLPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1jKoWPtNZuyTySc8hwFBig\", \"target\": \"rfNNiCvdTiGlx3UokrcLPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8NClRelN6TKhc2JQrXUPPg\", \"target\": \"QOy58Co3JRbiEU3GogWNRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8NClRelN6TKhc2JQrXUPPg\", \"target\": \"s1UQaN0Z9EukrsqUTC9QTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"8NClRelN6TKhc2JQrXUPPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VZDm4Fhi1cPeNnGwibUPPg\", \"target\": \"shPnJN4xCSk7oXmY9Q4wuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a1OoyB7+WXFUAag08KpKrw\", \"target\": \"bdXYpNo41ar0262WrMYoPg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"4UwkwFD6vbUHvdt1KNwrPg\", \"target\": \"tGIgPpSLABsuqToLwtBzsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4UwkwFD6vbUHvdt1KNwrPg\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hUAZT7kt1KUkZ4fbtDs/Pg\", \"target\": \"q/LU05EL2cNf9O5N1wNCyg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"hUAZT7kt1KUkZ4fbtDs/Pg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qdvG7gcskrjeWirNiH5iPg\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NDxIQcbkXhjk9VSfn5PNrQ\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WSYFeSzGx7LhdNhRlOcfzg\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f1nU9QKf5radbUNVzHHM/g\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"HF0jaPfeSJtgaaVfxuZmPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+v4QPdKqrYzi44heM0Bfnw\", \"target\": \"HF0jaPfeSJtgaaVfxuZmPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8GSDTYbw+zWL3W0uIt2tyA\", \"target\": \"HF0jaPfeSJtgaaVfxuZmPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kcFwDaFlVYo5rF26BC/cyQ\", \"target\": \"v/fbMN99v35S6/2pLoiEPg\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"target\": \"thNRJ+Ek8LABph+n40eNPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"thNRJ+Ek8LABph+n40eNPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CbkkslpELDMcPtNI+j667w\", \"target\": \"thNRJ+Ek8LABph+n40eNPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gx0mZi7s5KN1g7OHmM+XPg\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTBYEyX2QOB4W51Qglmqhw\", \"target\": \"gx0mZi7s5KN1g7OHmM+XPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wu9y2fqKtlmpQc2y8UYBjw\", \"target\": \"gx0mZi7s5KN1g7OHmM+XPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"fEuMTfxSadNfJoNM6t+XPg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"kX1AeJhRCfClQVM+CSaZPg\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kX1AeJhRCfClQVM+CSaZPg\", \"target\": \"up9psA1MqaBe3U64WLyMdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+546eOPGtXQD4e1DDKtkA\", \"target\": \"kX1AeJhRCfClQVM+CSaZPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"egTXUYy7nfoHpJfpy2afPg\", \"target\": \"xYBnEJB+6rnvZzZiDcWrYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"egTXUYy7nfoHpJfpy2afPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DH0rbjPPkEJYJ4iOLqWmPg\", \"target\": \"Ye9kqudPVvs1pgQ+Rc9mlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DH0rbjPPkEJYJ4iOLqWmPg\", \"target\": \"V6ERLfamkqdKjMJZjCzbpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DH0rbjPPkEJYJ4iOLqWmPg\", \"target\": \"N3NaYvG5XKOWroyCvqHesw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/9wvd4VqJwRqnTWtDanhig\", \"target\": \"L4+2ZMmnc8gTOu8mN1LjPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"pgaiIo5Awks0fC4Gk+ABPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pgaiIo5Awks0fC4Gk+ABPw\", \"target\": \"rMyZnSKrpHKJOv0TZsU+/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HxdyC6c/hI78wBGO81UahQ\", \"target\": \"NPfCKgsf74P+xfBuYOkBPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AgQzuVP3IkMn/Ov+dswguQ\", \"target\": \"NPfCKgsf74P+xfBuYOkBPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9H4dfR82pf4C6zAX/Kw+wA\", \"target\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PvFb6I9HEC3Jb5xbzEwLPw\", \"target\": \"kUwvpSYL10SBe4X6VrMWtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PvFb6I9HEC3Jb5xbzEwLPw\", \"target\": \"lnsdRCpfQaAQ/sNzVzgm3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PvFb6I9HEC3Jb5xbzEwLPw\", \"target\": \"WaZcaQu0SHC/mL5lo4gZ+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/DasHcz9qDrGxipjpxZYPw\", \"target\": \"2fLiXD3Oi+ti5kp4tkA5cw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/DasHcz9qDrGxipjpxZYPw\", \"target\": \"ooA+ANlPZHsTTGT2ER+g9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/++dgXP7Ji1DX6Jjqmpl8g\", \"target\": \"EjYVLbjXyyFjMsvonN9ePw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"kE/iXEylgaiZzGqa0NliPw\", \"target\": \"tSRwNpETY7Lfodms/g7djg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Iat6FJq/KuV7fq2K9pp+pQ\", \"target\": \"kE/iXEylgaiZzGqa0NliPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ehabqbw4OQYvR5CymUIO2A\", \"target\": \"kE/iXEylgaiZzGqa0NliPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhYgYjdAip/3+eZn4S9qPw\", \"target\": \"dSSZ+HP6teRDlmQgSqDoVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYgYjdAip/3+eZn4S9qPw\", \"target\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYgYjdAip/3+eZn4S9qPw\", \"target\": \"bXGpMEzkXLgG31dxALVXyQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mfHjc8E5wq5hAEBqLwMktw\", \"target\": \"nsXSmtJQKEtoW+A+WbRuPw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"4hZmMgnJIT+452lBnYuVPw\", \"target\": \"H8DT+1a16Vl5KIs2uBGBcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4hZmMgnJIT+452lBnYuVPw\", \"target\": \"GogN3PGHqIxQPq1ggN//mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2xWzE0Ep6ErJ3OdsXO9HqA\", \"target\": \"dOitCDCE63Unt2Uz+02yPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVzQrHoO4Xmx/ObIjHGqQA\", \"target\": \"OUYfjK3qliQPxJkOHd/MPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"xr0BKa4pvuxbmEAUMl/lUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"y4UnH6+f6jsDk+33vZLosw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"iImUqiPNPbAQT9k7P7UswA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"ZsXj1rezqrBl2BtRb/pv3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EpddrIm7N5G8G23V6jMJQA\", \"target\": \"FE7mqW78yTU9wwMAC7HbPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE7mqW78yTU9wwMAC7HbPw\", \"target\": \"c5qReOIC8YJQNGm3SDsY0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpddrIm7N5G8G23V6jMJQA\", \"target\": \"c5qReOIC8YJQNGm3SDsY0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YWjU6xATC2Q0iWOLiX/MWg\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AnqqRMSFJIdjqNTRgBhGiw\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"44m6YoyPWWMgqGmxbpPgww\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rToxk4r0uYkTlZK66ha06A\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h6LTY3LaaE6dWUsrCOYj/w\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"target\": \"rv9CCzm9yv3/yk7JavW0dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hYb/rNnUevsWhOUyS1R9oA\", \"target\": \"lZJSocdEIWg2qfH2eRpeQA\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"gdgrqfKRzrB2XWkXMYRgQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BN+YmIxT+3E9xyYfA94pdg\", \"target\": \"gdgrqfKRzrB2XWkXMYRgQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5htVZaN4DNSg5D/11IMaSQ\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"target\": \"xsZ3QoOsiYVsocqIeU1Yfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3ysewCXPmGRHKwwmyptuQA\", \"target\": \"qjM9bPDJ6Esfd1jc9Zuv2w\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"Na1dZK+2rK5VDYolao51wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"HjiL/TAGzcamF/nUBzeFQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"I8/gD89DiH9csk/ZEjSV9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"deq3qSOiknCWsbVMWkjFLw\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VTOkVft5FrNUyE5fBt51Sg\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SHfZgdFBroXem8lXNwkJcg\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Bvlmxnniuxc85ZjU+CuOQA\", \"target\": \"djPc9CUQxRvQdtbRzAyjUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0/q+Y7rDgFo0pIuKyYUPlQ\", \"target\": \"Bvlmxnniuxc85ZjU+CuOQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bvlmxnniuxc85ZjU+CuOQA\", \"target\": \"uob06uLmmmvE1HYJtEpitQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LAnZCtjOl2bhcv2vZlGOQA\", \"target\": \"NT51/BBSLEzC/YF2jxWkQw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"hu8ICB4fKw3AVpjcGUhZXw\", \"target\": \"wSbdhtDL5S2z1K8YGhuQQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"wSbdhtDL5S2z1K8YGhuQQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"foEOhXqE/MBXNZlfAAZmmQ\", \"target\": \"wSbdhtDL5S2z1K8YGhuQQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"HYymt0lDvgI53eZlSzAjZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"STJBi8oPwc2BctwyE6sWjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"V0X2HIuhS0Ps7WOiYcGtmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVzQrHoO4Xmx/ObIjHGqQA\", \"target\": \"xr0BKa4pvuxbmEAUMl/lUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FVzQrHoO4Xmx/ObIjHGqQA\", \"target\": \"ZsXj1rezqrBl2BtRb/pv3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfRf9yRZVZ42QN1Q6w/tQA\", \"target\": \"T9flAVJsWQvGQcCuP9ajYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0QIadK8r6HxNza6Ny+h+qA\", \"target\": \"CfRf9yRZVZ42QN1Q6w/tQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfRf9yRZVZ42QN1Q6w/tQA\", \"target\": \"i1YhmqPsCV5G50aFCHtD+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9WCffFE9Mw7TEa6DHJwkQQ\", \"target\": \"hpIBMXHnjQ7uDbzVv376rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"9WCffFE9Mw7TEa6DHJwkQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EDp/Q2VCkQFOz0Iplgj9ig\", \"target\": \"TH2nlEfNlTbfzWVGhDc3QQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TH2nlEfNlTbfzWVGhDc3QQ\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WnSaJh7YZRbTu+sts30iw\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"target\": \"cbBd9N1KLhKdXGpN8o10mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"target\": \"lKV3X4tv+9nIeOaFPOb5rw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CbkkslpELDMcPtNI+j667w\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BA9DMxaYbrqyBsAxrrvV0A\", \"target\": \"hUiWm2ZzAZ3XyhwYaMGGQQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"GvVaeFtGWMdr6uDDVcKOQQ\", \"target\": \"cTkKFRE9ldy7qptah1XVTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GvVaeFtGWMdr6uDDVcKOQQ\", \"target\": \"IXdPVWFghod/SBOsAt1aYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/hg11VBlQNdhRdNquj44mQ\", \"target\": \"GvVaeFtGWMdr6uDDVcKOQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8ZQvaCv1scRUhplnRb8mSA\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SToRdrEwGm/BztKtepZaVw\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JC9CR/h5Zd8Lo5hza/4/og\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KAOYRnIa8jpoVsl6LEwC0A\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BwE/g8Wgt3CdH7ApP+YShA\", \"target\": \"Svbu70DdkVOl27oKzxuvQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/a9HU16WypmlvPBzMlAP1A\", \"target\": \"Svbu70DdkVOl27oKzxuvQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AYUi4YjxI3sjyh69XmUZjA\", \"target\": \"nlX50aGPxITwrjO4N7TUQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nlX50aGPxITwrjO4N7TUQQ\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EdXT816QZBfXGmfl0EIs3Q\", \"target\": \"nlX50aGPxITwrjO4N7TUQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"OTAk+XizNExtptGmcZ/YQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTAk+XizNExtptGmcZ/YQQ\", \"target\": \"mlnfnafl4/KzepBre697rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTAk+XizNExtptGmcZ/YQQ\", \"target\": \"bHlug9FuJiSNo/yQC0I/uw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"zEUlGrpc2A8953RQVcuadA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"QZ213ed+FC+L24Iot9ZepA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"LSmb834QdrGseWhJgOqB3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"target\": \"NusVDiix1Smp76/E438NQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NusVDiix1Smp76/E438NQg\", \"target\": \"l5XDIvoOxlEM5vDuvZb/8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+YCMtJjW5r1HUEkrpuZIQg\", \"target\": \"nSw0eUskiHWpYHPIy4zIRw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"75emx1Xn05NP13ZlbDnqjg\", \"target\": \"j4IK5nCCNuS7CCju09hlQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"wpR4LPmkbscTQ47aqutyQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N3vEw/7LBzj7u0aepCJFRw\", \"target\": \"wpR4LPmkbscTQ47aqutyQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ezRssIMYZ4RBowwXiNLpxA\", \"target\": \"wpR4LPmkbscTQ47aqutyQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ZZRg+v5JVI9y2rYz/arQg\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4ZZRg+v5JVI9y2rYz/arQg\", \"target\": \"pLV1jlhExMm2ObkllrzYzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ZZRg+v5JVI9y2rYz/arQg\", \"target\": \"IWWaiBa/jxZXyRG8dtN64Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8QVDvYH9xxe4NWKCDrG2Qg\", \"target\": \"F1YGf+WOJFyqnwxZfAmy2g\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"nKe2lnx8Wl2cfijCKn+3Qg\", \"target\": \"rbgnt5R6NMMlyp1yD64C/Q\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"k0enGgElWRs9A+5NRNS8Qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"k0enGgElWRs9A+5NRNS8Qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jV2svVJMSyO+sjV8yHa59w\", \"target\": \"k0enGgElWRs9A+5NRNS8Qg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LWvoOHWcJwMOVIrQGvXLQg\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LWvoOHWcJwMOVIrQGvXLQg\", \"target\": \"Lkgw2dolfwaJQyooYYppfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DKAWdo6As2L2HUFCvXjbQg\", \"target\": \"Kzv484GoYuRyMQRePjjFrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DKAWdo6As2L2HUFCvXjbQg\", \"target\": \"s50Uk1EXn+VMFjiSTbju+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AWjelWpqAs1TTbdNOEv63w\", \"target\": \"oMgttsFpag2MzaDeUJLmQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"muD2o32/rvJ6qO3uaY8vQw\", \"target\": \"v6OGQ3IGrh7t1+9Pc5ClVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"target\": \"muD2o32/rvJ6qO3uaY8vQw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"muD2o32/rvJ6qO3uaY8vQw\", \"target\": \"olMAQl+wwkOfD/g3eOeP0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HAOzB/UXYT43MrMLWyx9ew\", \"target\": \"iOb2c9ib1dpXVg05OiJzQw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"+WsOH4nJKjn2CB/iEjBAmg\", \"target\": \"2NkehMA6nPR3sXPYqd12Qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2NkehMA6nPR3sXPYqd12Qw\", \"target\": \"6MOzNfjdUIZpKdO5Anh4sQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2NkehMA6nPR3sXPYqd12Qw\", \"target\": \"xRv17OpeWpPllhbTSqIRvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2NkehMA6nPR3sXPYqd12Qw\", \"target\": \"96AWJdjtpTR2ckzh2+cg5A\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"22CPbcrrBAQIB6Uhv2CtQw\", \"target\": \"xqgM3rfoMtsn1TX/WLjvbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"22CPbcrrBAQIB6Uhv2CtQw\", \"target\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8fOcjVMM97bF0nHRwpmwQw\", \"target\": \"TECaccIMdVH1O/B8fm3MYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8fOcjVMM97bF0nHRwpmwQw\", \"target\": \"WsADvQUexHH226piNwJkmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GnAbts15yBTBPSTHzQh7Yw\", \"target\": \"rXkCDNRNSVG5itmWEa+0Qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rXkCDNRNSVG5itmWEa+0Qw\", \"target\": \"xJ4etXa+11viKMelSA2I7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c6l/6JPY8da2RBVQz7qV/g\", \"target\": \"rXkCDNRNSVG5itmWEa+0Qw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q8AlycToBKVFjB1QrFvIQw\", \"target\": \"Vdww/iwpIzuxddWe+uDx/A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"target\": \"NXtITLwY/XNBuvLK70PXQw\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"NXtITLwY/XNBuvLK70PXQw\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"NXtITLwY/XNBuvLK70PXQw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pHWyJ9eZRLIiBaTaCHx5Q\", \"target\": \"NMDpgfX8D3+RhKXJwIrfQw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"5hZtqsiLHbi1NqVfW5PKRw\", \"target\": \"77iPv90BW5iJ8c7Iz2LuQw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"77iPv90BW5iJ8c7Iz2LuQw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"77iPv90BW5iJ8c7Iz2LuQw\", \"target\": \"UWN2fvz659JGxKe9R1s92w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8T1982ymi8ae9f3QJo87xQ\", \"target\": \"8iebXCqtG1eN+lGV7HH8Qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8iebXCqtG1eN+lGV7HH8Qw\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHkiHkN1YD8HiUKcuM8DRA\", \"target\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Em0/xm51jDdmoLNgvocVtQ\", \"target\": \"rbgJY/m+OO8EhjJplaEWRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cyZ5Pkk5ztmXzP61SVHf3w\", \"target\": \"rbgJY/m+OO8EhjJplaEWRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"EZajhl39OsXmqiSpuFxPRA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"EA8a4UBy2yScgW0M741Now\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hKQRArjse+VYfHpwz8rFsA\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nRGKdSUZWr/RPx5aNVjOug\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aNKtA7iq1FYEJ6bLoj+s2g\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"p49Fh3DpndPGDHlKDL5RRA\", \"target\": \"yW3srrSTsNB2YpFbKqcI4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"s5rYWe8YJ6DEhjCr4P5iRA\", \"target\": \"uYIu5+gtVaTQVZiPGapHjQ\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"5GNyvObSsBPX6MLHNtxyRA\", \"target\": \"giVUGbtk3+U2igTdOb/Ktg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5GNyvObSsBPX6MLHNtxyRA\", \"target\": \"sBo1DoKZGqK99B32lYnxuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5GNyvObSsBPX6MLHNtxyRA\", \"target\": \"P1k6r0S9EQbkqpJzRaPMww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e66HgXZ0Dd9pxVG+Mc2JRA\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QOy58Co3JRbiEU3GogWNRA\", \"target\": \"s1UQaN0Z9EukrsqUTC9QTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"QOy58Co3JRbiEU3GogWNRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eNm73uTArP4UKMj8vLHpRw\", \"target\": \"vyL9TIMjcuScOBNcE+ScRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"vyL9TIMjcuScOBNcE+ScRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE4q4bQKSwYZK+FHrWWgRA\", \"target\": \"qZLjmxMAXLWRVlLqWDUUmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE4q4bQKSwYZK+FHrWWgRA\", \"target\": \"UZYf/isTOX6flCmlncT2uw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE4q4bQKSwYZK+FHrWWgRA\", \"target\": \"rSNn/s244brhIQqf3dJ++g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G61pOLo45+GyyS5e8k3vWg\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8wXFOFxvQzDP2XGsXPTJug\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ykn3g3QC0rQT10FGrwVuhQ\", \"target\": \"imzcpoBNOLHSZyZXErylRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"imzcpoBNOLHSZyZXErylRA\", \"target\": \"o5hJtnYCQOtp9KjOY9KKww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ek+y8Dv6MgaaKLo1u1FL4A\", \"target\": \"imzcpoBNOLHSZyZXErylRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"uKRVRvJ+p5AZp6PXEmbVRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YyQl1eJdobquxuw0oBQZeg\", \"target\": \"uKRVRvJ+p5AZp6PXEmbVRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IMy6N7C+hCRMkf7TI+/alg\", \"target\": \"uKRVRvJ+p5AZp6PXEmbVRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cJV6ZU5D/C9ybgB24bfVRA\", \"target\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ESC0HxN2+18/OEVFpNgDtw\", \"target\": \"cJV6ZU5D/C9ybgB24bfVRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ux6au0DBAXaqHpV/RNnaRA\", \"target\": \"vnd7GVG/CYH07RNAUEgKww\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"ntw3gxP9i//bs6Ho95X20g\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"rMyZnSKrpHKJOv0TZsU+/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SqG/l6IbODdXxSygyTzS8w\", \"target\": \"Ui/0A3wBxzeKBPvoCCkYRQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"kOMnWfmlMTJk3xPhEQgqRQ\", \"target\": \"q1hIpuJfhsRHeVqWKvcwkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kOMnWfmlMTJk3xPhEQgqRQ\", \"target\": \"mJoSuOtK1NC4MEDpqX/U4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"J9jUserjmCZ39iAnKJZARQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J9jUserjmCZ39iAnKJZARQ\", \"target\": \"rxcVniLDqVaT6evzgA+m8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J9jUserjmCZ39iAnKJZARQ\", \"target\": \"Rtz5xYqf3eobdXs3wUh79Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3mNS9kxe26Yi816SQSYhA\", \"target\": \"QNJ0t5GrRws4c5Ryv6lHRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EADV6v6vusn6OhIrZeLLtA\", \"target\": \"QNJ0t5GrRws4c5Ryv6lHRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNJ0t5GrRws4c5Ryv6lHRQ\", \"target\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"imglETtywlrVcvzIwI5aRQ\", \"target\": \"oFQNBM4xI+HgY5Q9FrzhXA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"mlnfnafl4/KzepBre697rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"bHlug9FuJiSNo/yQC0I/uw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"rxcVniLDqVaT6evzgA+m8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"Rtz5xYqf3eobdXs3wUh79Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fGRC6V2KP/aLwu7ryLIH4A\", \"target\": \"ihle6Lr2WCOEHf3ter6fRQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1FGUAXuCvr8NsxHFaO7ARQ\", \"target\": \"HHin+VkuwzW1+zW1nIAhjQ\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Io8slHVhx1bwsIhDh76qow\", \"target\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Av+NJ6AdBIQWI6bttPc38g\", \"target\": \"j2aDJCmt7q7D2VRoSB3JRQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Jr47GnKDcqO8qnyRy6PSRQ\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"7t4SY1vCVINoIMbgrdPkRQ\", \"target\": \"WPY/12VLyv/ZGCMOGvjPVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zz49PYLjgQ+HgQ+JdRW/Q\", \"target\": \"7t4SY1vCVINoIMbgrdPkRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7t4SY1vCVINoIMbgrdPkRQ\", \"target\": \"g8omXv57dirNyxDKqHKY/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1A50rC9DmpBJi2Rzbw+wTw\", \"target\": \"CxXkjGu2Nlr/09RxlGrpRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ALTewdivDV/ha76oe0fsRQ\", \"target\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ALTewdivDV/ha76oe0fsRQ\", \"target\": \"V8ksPyfaupEEfgw8dUrT3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ALTewdivDV/ha76oe0fsRQ\", \"target\": \"felsQ1UdIZxKSSJZnxxh8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L4R7iZWb3a4kArkl2EZPWA\", \"target\": \"Qyug5sP5mhFfOqoC1UzsRQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"Qyug5sP5mhFfOqoC1UzsRQ\", \"target\": \"q7vfrx1Y2yIt4jU/MTVU8A\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"e3PtXxVdlrus06SK1N/6RQ\", \"target\": \"vRASEJmApd9kVKJdViBVkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e3PtXxVdlrus06SK1N/6RQ\", \"target\": \"ze9Ajo7bQIrDR2Q61Vkf4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Vql7Mlk/vvWRyGpTsvc5w\", \"target\": \"e3PtXxVdlrus06SK1N/6RQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oLBEewI2+TtOi/P+zFONmw\", \"target\": \"uRBQkWEdVbeNQ9xfJLkIRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D8uBDEKTvYV7V2AXqdYNRg\", \"target\": \"hWotMeINwSMsuStZDvr2mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D8uBDEKTvYV7V2AXqdYNRg\", \"target\": \"FgYx9haFz7m/jpwNa8RpoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S72IL4YSDnZZA425LPseRg\", \"target\": \"gAzw07bKPCnVDOF1lzf8Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S72IL4YSDnZZA425LPseRg\", \"target\": \"VQWWWRLbO/6gR2x5xDP3gQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lqVFqi7mcd2hzZDi+SNGRg\", \"target\": \"yepgno4n/p28H6591WQMTg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"UnMVJbIAOTybaBsAyfxQUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/FbYCEQvYjAF7sxBwUvWVA\", \"target\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"aIIgb7T9OT5k+4MjasF9WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1RXEjZUbzQlv/sF+7lcjmg\", \"target\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"z74I6YSnuYW7jPenY9cb4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"ki2D2kbSKwtmj52dz5bw+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"1+u3lYKavPRkmHAzpIgisw\", \"target\": \"ZXBZdqAF3xm7IzHq5J1VRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"target\": \"ZXBZdqAF3xm7IzHq5J1VRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DO1jzZFQdAAskqacb4ZeRg\", \"target\": \"jv+QLRmhrtNe/K3zwfC03w\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"/p+phwA8hAMIeSUv3ihmRg\", \"target\": \"PSO2XmC4lzxblJbq6YuYZA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"71iA9qV2BUl8sqhSgukASA\", \"target\": \"OTYw29EpzE8fZI954el3Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTYw29EpzE8fZI954el3Rg\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"OTYw29EpzE8fZI954el3Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTYw29EpzE8fZI954el3Rg\", \"target\": \"T7Bbq1+NkLmIA0EL6tys0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IQOr8oWTplyMdqllGFB/7g\", \"target\": \"OTYw29EpzE8fZI954el3Rg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C0lM+vSEaaT/IWOghVGARg\", \"target\": \"dQJc1MumJDhkpndnjaPvfA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2tErsV7PrIgWpryU+hSNmA\", \"target\": \"C0lM+vSEaaT/IWOghVGARg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C0lM+vSEaaT/IWOghVGARg\", \"target\": \"kUSjYI/KovDOP2WNmP3Ppg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"NVczU2cHqw/8i0p//W2MRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"NVczU2cHqw/8i0p//W2MRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AiBoaQxP8X4ZGTH7DL/geg\", \"target\": \"bK6/ywJvHiPC8jeX0h2zRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6lApIV2MCrZkWFZZJf/rlw\", \"target\": \"bK6/ywJvHiPC8jeX0h2zRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bK6/ywJvHiPC8jeX0h2zRg\", \"target\": \"ifErMyAVjoUcEphHINV83g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YUMbaFzgJYeU3f4B//ckTg\", \"target\": \"dBRqkyn6shmbpWrSZaHARg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6jNVAJhI7DMcPITe0gOFzw\", \"target\": \"dBRqkyn6shmbpWrSZaHARg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZjABoGhX7FZn8b7BhsAApw\", \"target\": \"jyjn/VXmPCyky36DAXHIRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xe55gpjzk9yxQKYpqNHIyA\", \"target\": \"jyjn/VXmPCyky36DAXHIRg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"naXz8IWsp750AAUIcEzJRg\", \"target\": \"zK2i3Ls/9w5NBkwfx7F7Rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dTkENAnFlFXuxJCq9UEvZw\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CoryOarI0mEf4885yBnMRg\", \"target\": \"XqkxpgKTYkq8YB+YxQNJkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CoryOarI0mEf4885yBnMRg\", \"target\": \"XsBDmmlxAWof97JjGRrn4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CoryOarI0mEf4885yBnMRg\", \"target\": \"DLqvxwV6cLRbZzV/S6ce/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"N3vEw/7LBzj7u0aepCJFRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"ezRssIMYZ4RBowwXiNLpxA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"nIgO2SB8550Bt4Vxy2bC1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"pTMybSugouBc0nZLe/g+2g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Gan7ZZVQhOZ9l4LX4oznRg\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Gan7ZZVQhOZ9l4LX4oznRg\", \"target\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gan7ZZVQhOZ9l4LX4oznRg\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+xia6NKW5jSDHWguW88yrA\", \"target\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"GrIMPukpxNchu/p5HFfdsA\", \"target\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9xlQC1cVGGA060Zj7md5gQ\", \"target\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"target\": \"i1pSrAwriMYqECKfr6rHqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"target\": \"Nhtm09YjxapjrWGAhjE88w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8r55dj/JwBrDybXJWyQSRw\", \"target\": \"J8SjBvJCmPKOGw5leXvCjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8r55dj/JwBrDybXJWyQSRw\", \"target\": \"B1+BS78xBzICq4XtMwmzlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8r55dj/JwBrDybXJWyQSRw\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"G7/xMwCxUY6aMLpdikocRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"G7/xMwCxUY6aMLpdikocRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TPUTckho+StrbYBpi7L0YA\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oCOW0mRITDqwiopKqDIiRw\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JARaDTo+BmuRHMBD03pY0Q\", \"target\": \"SssatqK3hP1QznpmsvEoRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SssatqK3hP1QznpmsvEoRw\", \"target\": \"wVc80t3sNC598XKNFbIp/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hW366XCp/i7HQnhv+RXHXw\", \"target\": \"pYlTvg387QEobSKG4JksRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pYlTvg387QEobSKG4JksRw\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mIrtzl5yLLagVORQq8OocQ\", \"target\": \"rXfvX3u/2hfcp3byjIJBRw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"rXfvX3u/2hfcp3byjIJBRw\", \"target\": \"t4T3wmGipQx4c4H54HxOiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nQbo89EjFqendC5KI+7G5A\", \"target\": \"rXfvX3u/2hfcp3byjIJBRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DJnQmC7rRNI9KohvnfZERw\", \"target\": \"Z40sY+dpymk2VZt++4Odfw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"N3vEw/7LBzj7u0aepCJFRw\", \"target\": \"ezRssIMYZ4RBowwXiNLpxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"jgVNAsOxee4qAIu4Pw17Rw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"KaWuVUZ3E9K5pqffOyoaVg\", \"target\": \"pcAaJGkNoaKboOUIf7l9Rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e1Y/y58FpDPgmAh5G8G4lQ\", \"target\": \"pcAaJGkNoaKboOUIf7l9Rw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0cSWpJdc3Akr/N3MCnC8kQ\", \"target\": \"Y4HpFSDpB/pb5VCJTwiQRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XEXq4+EHfYmpdLTINBij/A\", \"target\": \"Y4HpFSDpB/pb5VCJTwiQRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JglA7absRTpBaoWEMEWXRw\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JglA7absRTpBaoWEMEWXRw\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/5BFUkTesobt+C2GA42cRw\", \"target\": \"5xwY0szZnsiqQTwCAlnatQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"YRplCx8z9GNMnXrPdwUkWg\", \"target\": \"aZ9AyPjf2OgaKfRYk4KuRw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aZ9AyPjf2OgaKfRYk4KuRw\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"U3NKDsVT0UakD3a8oMZsNg\", \"target\": \"nSw0eUskiHWpYHPIy4zIRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"nSw0eUskiHWpYHPIy4zIRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"5hZtqsiLHbi1NqVfW5PKRw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5hZtqsiLHbi1NqVfW5PKRw\", \"target\": \"UWN2fvz659JGxKe9R1s92w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"SNmVHg4+txr17tuDDEzSRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"SNmVHg4+txr17tuDDEzSRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"eNm73uTArP4UKMj8vLHpRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CG15xx+fRRlt+sL6G1fqRw\", \"target\": \"RuZEZek+dIdNb16T8TQk6g\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"tMA277Q1r1Ou54ivdg0ctg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"Q4g51W5/PH9o2PLu7gz07Q\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"LIeJPRncazKd2mFj47eC+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"71iA9qV2BUl8sqhSgukASA\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qOLZfj6vsjEJBm5kg+Dv6w\", \"target\": \"tWOkiXBLW15DgKI96XQQSA\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"0AvZ3yTTfxKv6PWjeYkiSA\", \"target\": \"iFjI4Rd3CKYVzlxd3JT7eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ZQvaCv1scRUhplnRb8mSA\", \"target\": \"SToRdrEwGm/BztKtepZaVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ZQvaCv1scRUhplnRb8mSA\", \"target\": \"JC9CR/h5Zd8Lo5hza/4/og\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VrJZ30qKInj1L/u4OmCrfQ\", \"target\": \"tZ670LCRnqYmZFgy501YSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/SXshfQ4e66loe29E5xgSA\", \"target\": \"hYb/rNnUevsWhOUyS1R9oA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"b2mBfHZKw/7Wv719ImjRyA\", \"target\": \"wtugXF+7qE82ez/dX8NvSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wtugXF+7qE82ez/dX8NvSA\", \"target\": \"yXEVx+7BMBM9SJGPv2+Z+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JhqYKo/AXz59R4vLLyeJSA\", \"target\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MeX6DDISi5cEsrtmH2FZiQ\", \"target\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hu6/TvmZK8UiWeZ2sq0rnQ\", \"target\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JhqYKo/AXz59R4vLLyeJSA\", \"target\": \"MeX6DDISi5cEsrtmH2FZiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hu6/TvmZK8UiWeZ2sq0rnQ\", \"target\": \"JhqYKo/AXz59R4vLLyeJSA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8gDLDfXLxM28SJRP0dizSA\", \"target\": \"oLmHykDqis1sd6wnFn+L9w\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"9F6DxcwNzhY3s6yudOTDSA\", \"target\": \"qkDwhgegxr+4Q7DZidQ+WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9F6DxcwNzhY3s6yudOTDSA\", \"target\": \"llovrNhzEbhUrsORmDYEXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VzXB6IJaLXEXJ8d8MMJbVA\", \"target\": \"nXuX1q5CqzGnJV+eNRDISA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KyOVJoQ1KBIHYx7862Clww\", \"target\": \"nXuX1q5CqzGnJV+eNRDISA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"5/iIlMEl3Flhj0dFtY7JSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5/iIlMEl3Flhj0dFtY7JSA\", \"target\": \"9n4t1Zn+X0s5hKb1T+I6rQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oV0tCAoy/67CcunzmRnpSA\", \"target\": \"wXF+o2ujVwvWa8meOksFnQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"VwrOoBFsxcsMJpuOmUULSQ\", \"target\": \"ju2FdjnvEwJERaFrBSF1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9NyRQB1LYCsbPHrE6bFjlg\", \"target\": \"VwrOoBFsxcsMJpuOmUULSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5htVZaN4DNSg5D/11IMaSQ\", \"target\": \"xsZ3QoOsiYVsocqIeU1Yfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1iE3IfSpcAwr1GJpuN1wbg\", \"target\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"target\": \"wph8PLZvlqygec2g0ZIIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a4+4zao4O23gIPqZq/U2uQ\", \"target\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hQ9sNYfi7Xoi4HS4wTZhvA\", \"target\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"NQ2Kua1CDQH1/zRWd1YaVA\", \"target\": \"OG2o1vAj49gdK8LP2VooSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OG2o1vAj49gdK8LP2VooSQ\", \"target\": \"o+m2QQS9epHCXQOZQQFibQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wwxtb8xu/ctdJoe3JAFYpA\", \"target\": \"roNyJxmSzevCeoq7B4MwSQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"TX+5JEGDptCeafACyExaoA\", \"target\": \"x9gxsxVegryFTUoduSA1SQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"XU24yr/ZZYJLIUWRlyZPSQ\", \"target\": \"Z1owg5XRBMZ+UZarVUEvbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q9DbiBLOUlsRxS7bC1lH4w\", \"target\": \"XU24yr/ZZYJLIUWRlyZPSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kWrxTjv+GDZWFiLdsajHmg\", \"target\": \"wbPAkwU7l5fq1Q4QU4xUSQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"OTBYEyX2QOB4W51Qglmqhw\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Wu9y2fqKtlmpQc2y8UYBjw\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3JHFRc0psawMPSLp7G5OyQ\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U3v3OOBqhXPTXAhsLPhL9Q\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3kCb/KZ8/abI4WHLBJ7HZQ\", \"target\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"target\": \"lTy5ajnv+ybkdhf/wEdD1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"target\": \"ttNA9EtrRO4vzKDbSnXp8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTOR0zQk/QrNO8A3N7P8UQ\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"qsZtcjv/Pr7Ps1rIbC+obg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"JwgF3TNIvzasqJg5v/oRnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1z8Qkaup4fk+PHtX1lefqw\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"bXt54Mwr7PfZh3d4YYJ/8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"j2myGcumhmoz/9p4EAE2bg\", \"target\": \"oGIy1SeOMj2/qGAyuTp1SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIvlvNgs59hiOwj2O06peA\", \"target\": \"oGIy1SeOMj2/qGAyuTp1SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5YGAR6dLsSNn1A529+x/SQ\", \"target\": \"RSZUgKf+wntpgqok5ehF6g\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"target\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9dW2s/cOhwx8l3hsM4ujyg\", \"target\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"target\": \"WNt4O+KU1Es4d3huye/V6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TqzXbkZUYgz9e5gRVLOw+w\", \"target\": \"z30Gf3D0E1lDmg/K5I26SQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"7Oho6Z20dihFORKOVpu6SQ\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"qiADwYywQwryVlnMOEJtiQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"aewBFp5Orqz4bzZqctfT8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mzsTI4zPBXs++IY6nIwSg\", \"target\": \"BMl2T4INigVgCJo/c67Yew\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"9mzsTI4zPBXs++IY6nIwSg\", \"target\": \"TmA41kwRYQQsZVMXIhz82A\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MAk0Mt0s1sgQXxtIyhtorg\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PX0uMM9zOfkfjyAq6RMg9A\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7JHQoIsP0g4FS2VokidWSg\", \"target\": \"tMN/g0oGryogyXQvhLf+Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7JHQoIsP0g4FS2VokidWSg\", \"target\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0PwYW8mRbpa9Mpnu9DSNSg\", \"target\": \"HQ5PLb8USOfOCBh65VitdQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"SmZUCSQkckSaD6bxuaqjSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SmZUCSQkckSaD6bxuaqjSg\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GQFoIQ9wL/eZEy/wZDZehA\", \"target\": \"h3tGHaX0JqWf6UeIgZeuSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h3tGHaX0JqWf6UeIgZeuSg\", \"target\": \"pvS7Yyc5fiUtVQLhhblzrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h3tGHaX0JqWf6UeIgZeuSg\", \"target\": \"luYw49ThXPmJHnnREMyJ3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FaeXygmksygb2560fsqvag\", \"target\": \"w/FcbfRxQvw1pK7Q0yqzSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7RXVddCVGk1aSOf5BMkg6g\", \"target\": \"w/FcbfRxQvw1pK7Q0yqzSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eo4vpF7nVaIftXjavEnGSg\", \"target\": \"sWKWSenk2C9eaWrxecV1Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aY38F1Hi68kXNObkjJy0kg\", \"target\": \"eo4vpF7nVaIftXjavEnGSg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"XjnqMtdhe/1AFJoQ5rqZog\", \"target\": \"eo4vpF7nVaIftXjavEnGSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"target\": \"uUCDilQXqpQUOOB0ZFjJSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O61qmbeWRO9KIoKQ+zT/2g\", \"target\": \"uUCDilQXqpQUOOB0ZFjJSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VQWWWRLbO/6gR2x5xDP3gQ\", \"target\": \"gAzw07bKPCnVDOF1lzf8Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SQZC7ws63zW22bLZOBDyw\", \"target\": \"4n9iCHRmvy7wi5E8w50CSw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"FcmC8FNud2LgsDFUfpN/LA\", \"target\": \"aWe7skIST5t4AzA77+EsSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aWe7skIST5t4AzA77+EsSw\", \"target\": \"p2QDiSm6RlYOAvJqDpb0TA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aWe7skIST5t4AzA77+EsSw\", \"target\": \"uwrCTZHxVx7vgzrTvSCk5Q\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"hBTV8gHKW131TEj7XT9BSw\", \"target\": \"n+6GBSL9r88/k1XUx+wJmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hBTV8gHKW131TEj7XT9BSw\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L2ysSMWtWvLFNQcmBeFLSw\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L2ysSMWtWvLFNQcmBeFLSw\", \"target\": \"Pn48zoj9DvyN79bhDOnBlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L2ysSMWtWvLFNQcmBeFLSw\", \"target\": \"cfyIaZvA2RoXHpxUpLCevg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kp/uA317xD3ySXD3jBdRaw\", \"target\": \"dAHx8sgeJ7beftxxEKR1Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9riAVATY34jHBt90TQZrA\", \"target\": \"dAHx8sgeJ7beftxxEKR1Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8FaU6NkPlqE9UM1z6SSa7w\", \"target\": \"dAHx8sgeJ7beftxxEKR1Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bknqOYp4Vp6LPwQl9RTauA\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E44NS8+3z6vWzACYVC9pvw\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"GFetumiakdGmPB9Is78i/Q\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"Y6tU5iNEDLF6oW77OnXC0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"vWy0S3JkUaZezamXjZGr3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Jk7T08xaG4CWAcdaiJqg8A\", \"target\": \"WS2zfixx34S6YAYVqPuFSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CwpEQuIi8zSScd15Vffgaw\", \"target\": \"SYg1UZl2xRlPu6/W05iOSw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"qh37fflxH4crnFBSNG1ffA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"n4RzrfSaNuZhs0nJCUy93A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e2hKmTwsutq/a8SqkTmUSw\", \"target\": \"t20xkxierOcBE/o0aSAdZg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6uEIF2c/sKN3ohddsWgT1w\", \"target\": \"e2hKmTwsutq/a8SqkTmUSw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"KF5Dbm9cM754JWLe3NAXuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"dLxkDItK6ds0BvVWlMzfxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"zn3v+4i0Sftl8cICrCEv3Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"So39yTeC3xz+XFDiEbKrUQ\", \"target\": \"nQiQKsGxgxQbKUGv2pLTSw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"+Y38GQWJ9sDVV1yJBS3ZuQ\", \"target\": \"BY1jEgFuwflESgCTbV/XSw\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"lkzhROxDtXgOQX5cWdPhSw\", \"target\": \"yGAvhgaNrM/b3CFteWTrZQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"HhV9VWKbsizXigvZATJX8w\", \"target\": \"lkzhROxDtXgOQX5cWdPhSw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"CTCn3Fgh6h156cuq7dXkSw\", \"target\": \"js8Y0lf08jWreDJNejVvYA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"tMN/g0oGryogyXQvhLf+Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CfMMoO/qZjDVZ7RWqmTmYA\", \"target\": \"wd8lEJNfPOaevsTPxygQTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q62OQKXh0F0IVOGJ/nxxsw\", \"target\": \"Vd7FOp9N0ziiH4xcw34vTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"Vd7FOp9N0ziiH4xcw34vTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xo/JU3qR/3/wCmPN37SrTA\", \"target\": \"t//zurDsECjhkSF+dDy3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XkYOl3ks1X2aSgiy+kcncg\", \"target\": \"Xo/JU3qR/3/wCmPN37SrTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"Xo/JU3qR/3/wCmPN37SrTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"gbTBrGKYi9EDhNNNZpNjig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"f/GYujqRnQGcFVM9i0k/sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JjdNS7oWxI3B316S3ohBtA\", \"target\": \"MbYMRdaNc3zs4dLbhIazTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"rdcU0794FRm7pA510uJR1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"NqzCCjAYhYA57dD9FeKWVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"eQM+KwEzGGQwXa5pfTsnZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"oklVnGTYPCdUOJPs4w8Lhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"target\": \"aMtomuAEu+BPWSpp9f67lQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"/CMsaEuGu3ULvTJxZ5L0ow\", \"target\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NEchXFq2tu9tS/CqClXlpA\", \"target\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"pk5B0OVLBJS0AxojkgDPTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL3EugqztyFZS7UuGML+yA\", \"target\": \"pk5B0OVLBJS0AxojkgDPTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"KHMZW0HFBIMS9c1KqNoXTQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"mg8Nu7Q5bKwFsnbmTm8hYA\", \"target\": \"ocP4qC/3EO7sFT+R6aIZTQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"ocP4qC/3EO7sFT+R6aIZTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ODH4G/1dGsJI0ltnCWxSTQ\", \"target\": \"mLUf20JHZo0y4cZdGEJL9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Aqj0URYRADum8//AEpFSTQ\", \"target\": \"pUettJS0B/38xCxmsnnjgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Aqj0URYRADum8//AEpFSTQ\", \"target\": \"lvHT9cqSms7vkDUQasI/pw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"iqOPT8+OtBjqMEsIZx2STQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S9DJVAo6zDaYb5A5jomrTQ\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S9DJVAo6zDaYb5A5jomrTQ\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S9DJVAo6zDaYb5A5jomrTQ\", \"target\": \"ylU7OoOB+lTyYkp2CvNrrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"coP2kJECHHeByJYNxousTQ\", \"target\": \"dIOeiHNYRJZ2wusE/rvlTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"target\": \"coP2kJECHHeByJYNxousTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"coP2kJECHHeByJYNxousTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CFWuU/FXzLqvDkRrko+9TQ\", \"target\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"UZtMHjAFyNCmnx136tTiTQ\", \"target\": \"bkTpfRcqaOJ298DCRgK68g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"27dEDmdur1Zy6ijanei8tQ\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"265feNjxTzIMZ8+BKwy4zg\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"jIVsa9D/kpFcPilmWa4Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"cCmG6cRvUcKWgi1UAH9g0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/bA9vVOFPjpACVu2Rb8t0w\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"target\": \"Wto8vJIj6WsdCigVs77sTQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"TxqzbO7ePlGSEd2f2wxP/Q\", \"target\": \"Wto8vJIj6WsdCigVs77sTQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"3cXQAbgNdDz/sNaHNM74TQ\", \"target\": \"70aYqyv9oeYGbgxhrjo+lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3cXQAbgNdDz/sNaHNM74TQ\", \"target\": \"75GLam0GiNbHonLi9pd/4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3cXQAbgNdDz/sNaHNM74TQ\", \"target\": \"M3mzslSGFKL89Hr6jj7Y9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/H0ynYgQrKSlcy6FNPCqUg\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8eST8m92csATI1mdEtKGYg\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D/A8t0cmv3N4b8hDFamTiA\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PT8VvCe2+xblFYSQtULWkw\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bwWPWOOz5uHVBrqvXEpW8w\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vdskl6n1tgJivLOYQUDTg\", \"target\": \"PwyhAzA0omnIl03SygN+bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vdskl6n1tgJivLOYQUDTg\", \"target\": \"M8PtUDh0BZnkoIFUB3PAzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6jNVAJhI7DMcPITe0gOFzw\", \"target\": \"YUMbaFzgJYeU3f4B//ckTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"xOM0gzz1LKYOC78FcTpKTg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"aS/j8kZ+FFHiJeK+4iBrTg\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aS/j8kZ+FFHiJeK+4iBrTg\", \"target\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0yjqf58zkAQzd+DJ0YVrTg\", \"target\": \"wneYD+VDwhkmw532fW7qXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yjqf58zkAQzd+DJ0YVrTg\", \"target\": \"RIFKqY1gLZsQf+i0P0a8sQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yjqf58zkAQzd+DJ0YVrTg\", \"target\": \"TFGivlNpyvLKfXPJLvfz2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"deCbWH/yBvku8SIrHZFsTg\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QGgfp0R2eZB+GeRcldbr3A\", \"target\": \"deCbWH/yBvku8SIrHZFsTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2WZ+QLWazLW8nSczXoOlzA\", \"target\": \"c8YTUXnfbNhnroJsMeNvTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MtpjJ6XcmH6qPnAjbjY75A\", \"target\": \"c8YTUXnfbNhnroJsMeNvTg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"S99EddmDGE9UZMtGmMlmtA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"z/TAoZvzjf2wvlusVBnV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+HdIZL/LiXDO0QMPb2dGIg\", \"target\": \"4xdm24WVWkGKofY1jbq5Tg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4xdm24WVWkGKofY1jbq5Tg\", \"target\": \"kuBx2V5/s9xhPbFh+oNQYA\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"4xdm24WVWkGKofY1jbq5Tg\", \"target\": \"xabMDvWi51n0Cul936172g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4xdm24WVWkGKofY1jbq5Tg\", \"target\": \"s7tM0RevRJ3A+NCTWbwY+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IXdPVWFghod/SBOsAt1aYg\", \"target\": \"cTkKFRE9ldy7qptah1XVTg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/hg11VBlQNdhRdNquj44mQ\", \"target\": \"cTkKFRE9ldy7qptah1XVTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JAC8a1Q+hochqr5jsbLVTg\", \"target\": \"JqM77VUcNwh2YpJxMTdfXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A14BetnIopZaaGAnjtv9mg\", \"target\": \"JAC8a1Q+hochqr5jsbLVTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/aM4gHYQGmLOHeMeBo9xWg\", \"target\": \"aQooP03pBVj41aWCxfDcTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SW495dBUNeThwmcdR2mnsA\", \"target\": \"aQooP03pBVj41aWCxfDcTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0KoYr1/sBKYT1rfW8DhgUQ\", \"target\": \"5XK5uESvVd9GptLA6xQbTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XK5uESvVd9GptLA6xQbTw\", \"target\": \"81/t15zn23kc/9M+VRloYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5XK5uESvVd9GptLA6xQbTw\", \"target\": \"uDOUHvwuMFbU5lxW8kemlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"S1/wc5PKbfp7F7b/fdnEiQ\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9SJVLkajTeR4POfLrh2KvQ\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"13NDORsV0NBpE78voJX8zg\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M28X/3X9XhtMKEhs+6oP2g\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RcN8xiuUhv2kkieL87f/ig\", \"target\": \"amjJXGmeCcKNQx7MWIwyTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"amjJXGmeCcKNQx7MWIwyTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"target\": \"amjJXGmeCcKNQx7MWIwyTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"s1UQaN0Z9EukrsqUTC9QTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"msbwNknrv3HRKuTbTbz3tQ\", \"target\": \"rsPQmgY+do4/UOdN5mFlTw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"fMymeUFUsDkpl4syocYEKw\", \"target\": \"ie6msI2TYud/Jyyog2mBTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aIIgb7T9OT5k+4MjasF9WA\", \"target\": \"ie6msI2TYud/Jyyog2mBTw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"c9jP3tBKcgKqgs7kLyiHTw\", \"target\": \"scXBn+tW1O3c26UR/y+MpA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"KBvffIWk1pKZrIIrmmUtVw\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O66Wkht0x+Gx+BpLls2hTw\", \"target\": \"T34SlORyNdAitBu1jVAVaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7464ADYEqh2JXvYPcQ9YmA\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O66Wkht0x+Gx+BpLls2hTw\", \"target\": \"ri48j885BLzHXAWT8WJduA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"e1URD8x/rbvMsJPCYU+iTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e1URD8x/rbvMsJPCYU+iTw\", \"target\": \"neUebpMrrYX3e5BjAvyzdw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e1URD8x/rbvMsJPCYU+iTw\", \"target\": \"loqw1+ffTyBWBziom2HExg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"9GK18/slEWXsvIbLQoRFpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"XwwhNgQzRMen644eZD7KUQ\", \"target\": \"gs3RLxMx0umpkYbzZnTATw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2af10RCETu3QPCGmsHF+4A\", \"target\": \"gs3RLxMx0umpkYbzZnTATw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"gs3RLxMx0umpkYbzZnTATw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Magx3/mXuyBOVJWMpiCug\", \"target\": \"rHM9RQATp1jHQEMKoPrBTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XQnT/93qqR6fC3YyjNB40A\", \"target\": \"rHM9RQATp1jHQEMKoPrBTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"target\": \"dIOeiHNYRJZ2wusE/rvlTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"dIOeiHNYRJZ2wusE/rvlTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ORocJgkETt4cgx7zJX1m2g\", \"target\": \"mmjXNMU5LKHfipb9N8jlTw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"IBSjXE/BZwDBw+/y9M/xTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GolMlD0lgvRnJJ+TP7Iy2A\", \"target\": \"IBSjXE/BZwDBw+/y9M/xTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aU4n2x4OPkJodk0KxvLYig\", \"target\": \"haibKGg3Ak8S09mApb0CUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"haibKGg3Ak8S09mApb0CUA\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"haibKGg3Ak8S09mApb0CUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mTMmy/NAdwV89W4WJPIDUA\", \"target\": \"t3a3yKY/sF6TY98bOOJgAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5y9nXTABra67OXilpw0/rQ\", \"target\": \"mTMmy/NAdwV89W4WJPIDUA\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"aFm47kcWDzPz7Wqd9p8m3Q\", \"target\": \"mTMmy/NAdwV89W4WJPIDUA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"SToRdrEwGm/BztKtepZaVw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"rToxk4r0uYkTlZK66ha06A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"h6LTY3LaaE6dWUsrCOYj/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PYg/GeRNUSgHhIJQlmZhg\", \"target\": \"WNgnbHrT1w6mws7dn7ZEUA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"3VKE9O3qoeFicDCMezlWxA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"QEht9uW34xjqCjer4vFM6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+7mhXK/ObCSwV/qE+rxsUA\", \"target\": \"X+ETh+ba1MHT0Np6yw/i4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+7mhXK/ObCSwV/qE+rxsUA\", \"target\": \"1swWkYMcwILy7Fx6Zpvz4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NZGxHLsNhMltwN0o1OpzUA\", \"target\": \"cjBusNr5IUANno8M2pAeXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"NZGxHLsNhMltwN0o1OpzUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Mmtn4en3D2UNWbeME8UmA\", \"target\": \"NZGxHLsNhMltwN0o1OpzUA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rg71KvMVmp7RPzqsdMHX+A\", \"target\": \"tTO1LQu/M4nsk0dADel4UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l8yihHYF3jYLqYPs4PnAUA\", \"target\": \"s7tM0RevRJ3A+NCTWbwY+w\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"PWazbWYXRKDBh37GwcFlvA\", \"target\": \"gkorgH/UGPyBdCL13IruUA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Fns6OhOXJvz0pJZ+6vorA\", \"target\": \"K0pUol7h3ozvqSJCzt/0UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ThrLo2r7sbGKGToF5D/UA\", \"target\": \"6qLyFjJCSb5H4btWpQA2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0HqZ+gKQEfBndFGw6c8NUQ\", \"target\": \"QpOXviT1zeIlL17B/cUDdA\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"4mos+N852EkXkPJhdwEaUQ\", \"target\": \"izqORYblhz10NUpxrf5IqQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"Ciq4M1yRMrhQLd85nBeOUw\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SVncppnuBWX66nGOzF5GZQ\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LR0o1Gp5Q/56VArLa5GfaQ\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GE7TD8juiqQ9vJOTdh/WjQ\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ra/QjUDbZ1C23TLGAV9BUQ\", \"target\": \"uWIj0NtbQXifNLvogWFEtw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pQzwAom3bwB92iB1vA83zQ\", \"target\": \"ra/QjUDbZ1C23TLGAV9BUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"earNIEZ8UXTMmJ3RjUfJ9Q\", \"target\": \"ra/QjUDbZ1C23TLGAV9BUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mgKH8XgnUmt990hciUKkvQ\", \"target\": \"xrfWfyWvrn2oZzLIjT1bUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jnYl9d4UZUupzck1m5Xl6Q\", \"target\": \"xrfWfyWvrn2oZzLIjT1bUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0KoYr1/sBKYT1rfW8DhgUQ\", \"target\": \"81/t15zn23kc/9M+VRloYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0KoYr1/sBKYT1rfW8DhgUQ\", \"target\": \"uDOUHvwuMFbU5lxW8kemlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UOeum7MZGHUNQopudJNtUQ\", \"target\": \"s/iJc9+3ONWQha7FBfKMbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UOeum7MZGHUNQopudJNtUQ\", \"target\": \"nuOysH+Mh2h6a7WWgG44wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"UOeum7MZGHUNQopudJNtUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"cDrqV5O9SkmmDl0mmuF2UQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5qxQ32uiDgE9ejioUCp3+w\", \"target\": \"cDrqV5O9SkmmDl0mmuF2UQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WnSaJh7YZRbTu+sts30iw\", \"target\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"cbBd9N1KLhKdXGpN8o10mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"lds6GA7YRogoMFggLBQWqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"XAkVRZGQ94PVTV2tBtEKww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DfFk7TlxB0SKkRl+KSWwUQ\", \"target\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XwwhNgQzRMen644eZD7KUQ\", \"target\": \"Y71JXwPp8BNr1I0/V5OLqQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"2af10RCETu3QPCGmsHF+4A\", \"target\": \"XwwhNgQzRMen644eZD7KUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"XwwhNgQzRMen644eZD7KUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"OK7AnboiWZ7PRgIMjmpHbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"H5iyKe8krA9s/HxZ4QqUsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"hKruHz9YqELlEfdSiJ2BxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LjIJIsWr2kj76XygrEd5jw\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"target\": \"mwwTgvkZoGiAGW1oNL+LkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hvLxb+HIIMnAXb5rrsTYUQ\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RU7ImjsrRJsKlzFRmKjN3w\", \"target\": \"hvLxb+HIIMnAXb5rrsTYUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZsXj1rezqrBl2BtRb/pv3w\", \"target\": \"xr0BKa4pvuxbmEAUMl/lUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTOR0zQk/QrNO8A3N7P8UQ\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FTOR0zQk/QrNO8A3N7P8UQ\", \"target\": \"bXt54Mwr7PfZh3d4YYJ/8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cJX4tUrBIaK7+EkSfsAUg\", \"target\": \"MHef1Rs4455vMbiW11h8nQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cJX4tUrBIaK7+EkSfsAUg\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sy2muxkb3YKQEB3A+UWj2A\", \"target\": \"uAvywguLcy7TEJ62HqUCUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"HSXYunXnU735XSqPVXaV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"IaImK3Wfmh8zprJ17Fuz1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"PCycEl2GTWjoexk2Y2k+xQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BFKorU/ZsAaR2zzN1iAkUg\", \"target\": \"XvFXpKAybOJaTrHjTz/raA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BFKorU/ZsAaR2zzN1iAkUg\", \"target\": \"UikPyTd+/Ke0c929axUssQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BFKorU/ZsAaR2zzN1iAkUg\", \"target\": \"TbsMX0lpn0ca3Jbu0oDj6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"target\": \"hJkECJ2HLr0UQKVZy7OAdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Nb+fg2iaqscLUuaFQ1n8sQ\", \"target\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"target\": \"WcjDyJCvaIKJKcpprPVPzQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EARZoqhcKM63G99flR3A0A\", \"target\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"HnEC6Xs9NMQdLmJhPfdnUg\", \"target\": \"Rr9emPI1nLHqljrbD4DvYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HnEC6Xs9NMQdLmJhPfdnUg\", \"target\": \"nks5WSx4QKKAPQCWyIn32A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HnEC6Xs9NMQdLmJhPfdnUg\", \"target\": \"lstYZJhfvS9jBG5xm+8U9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"A3oYY2V68Bkc4zN29dZqUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3oYY2V68Bkc4zN29dZqUg\", \"target\": \"IEvjI9DghsvK8rqHLAZbXg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"A3oYY2V68Bkc4zN29dZqUg\", \"target\": \"NbdJmnny6VadnVE/Q5dqzg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A3oYY2V68Bkc4zN29dZqUg\", \"target\": \"Qy0hhxrb9Nmf8+xAUfVp/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JLJ/TFle8PFG1cHz1E1uUg\", \"target\": \"mnfai98sLmWktUK5TjaVcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4oguTPOWhhe1/AWJ+xWz3Q\", \"target\": \"JLJ/TFle8PFG1cHz1E1uUg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"7ldQ2Bb1e9My15lZ+EByUg\", \"target\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ldQ2Bb1e9My15lZ+EByUg\", \"target\": \"rtQmcpROqcblEzxYvOdFiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/mnxJbBXFRoJm1t8b+jupA\", \"target\": \"7ldQ2Bb1e9My15lZ+EByUg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XjnqMtdhe/1AFJoQ5rqZog\", \"target\": \"sWKWSenk2C9eaWrxecV1Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0/q+Y7rDgFo0pIuKyYUPlQ\", \"target\": \"djPc9CUQxRvQdtbRzAyjUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"djPc9CUQxRvQdtbRzAyjUg\", \"target\": \"uob06uLmmmvE1HYJtEpitQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/H0ynYgQrKSlcy6FNPCqUg\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/H0ynYgQrKSlcy6FNPCqUg\", \"target\": \"PT8VvCe2+xblFYSQtULWkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EjXIpdCPF+ANqs8VdEvHow\", \"target\": \"sAbMJ4JNtrkiNxfJM/22Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rKPsaIVig93SRx4sDucCrw\", \"target\": \"sAbMJ4JNtrkiNxfJM/22Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nOU0JofEhmOu14V1gJCDlw\", \"target\": \"suSw4S5oHiaXj/kWA7m4Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QqHIoi1m6uc9wf5EvV+Hvg\", \"target\": \"suSw4S5oHiaXj/kWA7m4Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F6YNnTWNiTfmQxsIu88kzw\", \"target\": \"suSw4S5oHiaXj/kWA7m4Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"5azXQZMF5UTinlXaZIC7Ug\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"5azXQZMF5UTinlXaZIC7Ug\", \"target\": \"UNcq6WxV761Qp8/suVLX9A\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"8hQSZ2PIYIyZV8i1r/zwyw\", \"target\": \"mTB/opsLISz/IYCbZWnQUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hh6NSnvkUKiF9tEcyxTk+Q\", \"target\": \"mTB/opsLISz/IYCbZWnQUg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"WmyNCi3UI7xVfgyEgQTfUg\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"bjgiBt1reGHjsHTW+QP1Ug\", \"target\": \"ruqNFuUB6tHVOz0EcqpPWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SV4sfwaeMk9N7sb4Di38Q\", \"target\": \"bjgiBt1reGHjsHTW+QP1Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"target\": \"hm6dg7dYvD/icQaeL62rCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"target\": \"n4Wjg3fw8S/ocGI9gGSqfg\", \"metadata\": {\"weight\": 46, \"hover\": 46}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3CeBf9rBRUJJEl8QTxljpg\", \"target\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5vOpbU7kc21gWGoUtU+Zyg\", \"target\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ECPLScyImUDmwsrLCs5Uw\", \"target\": \"f+E8VIalbsW65FQq5Z+peQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ECPLScyImUDmwsrLCs5Uw\", \"target\": \"JHN1RRKwapnUWKCl3tIioQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UnMVJbIAOTybaBsAyfxQUw\", \"target\": \"aIIgb7T9OT5k+4MjasF9WA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"LlZMdonbcTzMHX8tffT5ig\", \"target\": \"UnMVJbIAOTybaBsAyfxQUw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"UnMVJbIAOTybaBsAyfxQUw\", \"target\": \"ki2D2kbSKwtmj52dz5bw+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WRVIPJmmW1C9askKNNRiUw\", \"target\": \"ZOXH4sYXO8arQZZMzYldhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WRVIPJmmW1C9askKNNRiUw\", \"target\": \"We/y8kKlzK1iY53AKV7n0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TyGrvk8SzqnwelG70YR5g\", \"target\": \"402+Q4nAghzmmhzcXv9sUw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"402+Q4nAghzmmhzcXv9sUw\", \"target\": \"fNS5Dg9E+rY2v60BUkcE9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"NkzWZRIpTwu3DUJFtrOqoQ\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"NbdJmnny6VadnVE/Q5dqzg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"Qy0hhxrb9Nmf8+xAUfVp/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ciq4M1yRMrhQLd85nBeOUw\", \"target\": \"LR0o1Gp5Q/56VArLa5GfaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ciq4M1yRMrhQLd85nBeOUw\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/sG+lWv0qnoQuVdyd5KUUw\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/sG+lWv0qnoQuVdyd5KUUw\", \"target\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"vD9s1XC8nMshE2yQpfmXUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eYfvAr+UfKq1aCZN2x4y6w\", \"target\": \"vD9s1XC8nMshE2yQpfmXUw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FP3VoLmMd2eZRBobuqshxQ\", \"target\": \"n/wtIbSj4hJctHmq4SrGUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7B3pLJTfNbhA56BMabUB5Q\", \"target\": \"n/wtIbSj4hJctHmq4SrGUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"61eleyxtAaRL9cz885XIUw\", \"target\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NCsCA3Mx7MjieYPd2Ajzqw\", \"target\": \"bv3PChfP/0t22LDSCoYRVA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bv3PChfP/0t22LDSCoYRVA\", \"target\": \"if2uIOOYU984PgU0edHV/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NQ2Kua1CDQH1/zRWd1YaVA\", \"target\": \"o+m2QQS9epHCXQOZQQFibQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"MvO9GEb2B9OFQ1vFyxccVA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"KyOVJoQ1KBIHYx7862Clww\", \"target\": \"VzXB6IJaLXEXJ8d8MMJbVA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"dLxkDItK6ds0BvVWlMzfxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC76g5K8wAxvtnuruj3moQ\", \"target\": \"ODOfjCoQGHXAkZ+DJzahVA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ODOfjCoQGHXAkZ+DJzahVA\", \"target\": \"W5vKZMcezwUnhC22O8hM9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5cV0GYVtl1fh/DI7O5TBhw\", \"target\": \"z+l8ckU+S5XnZDQNlVahVA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"Gf88tDhAetc/OxboxVK8VA\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6RqXWDqyVqOwgmmmqWtA/Q\", \"target\": \"Gf88tDhAetc/OxboxVK8VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I7hEb7oVDnJItkadyKrCVA\", \"target\": \"T03vnlhpoiPKW+i4msNpfQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/FbYCEQvYjAF7sxBwUvWVA\", \"target\": \"1RXEjZUbzQlv/sF+7lcjmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/FbYCEQvYjAF7sxBwUvWVA\", \"target\": \"z74I6YSnuYW7jPenY9cb4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IibzINOrT7+RADphvGLbVA\", \"target\": \"QZH8vfYtCBAc59swD26agw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"IibzINOrT7+RADphvGLbVA\", \"target\": \"L/8tLTjf3qUm/TOyurJOug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"57lEGqv3yMd/4KTgvYbdVA\", \"target\": \"Vt0YjdF6gca6IHVC9Hs5jw\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"UQUtbMtXhRdVUpHFPw/mXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"SVozJ8XW8FPd0iHVZjCBZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vO6fTiJWeBW8Ovt00gmfQ\", \"target\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"dlr2R44ETn3xtO4mnELFiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7BPRKy4C5yefrrHo632x7g\", \"target\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"XxgcW3KOOwIwxZx0l+ao7w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pb73mVNEl7N+Chk55BH2VA\", \"target\": \"uldXPY99tgYVFbIPI3L5tQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"pb73mVNEl7N+Chk55BH2VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mfNb4PePcIOAfwupmedlVQ\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"target\": \"YrrsQS8pOEwx8jIkOi12VQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2t1yVN7Z9uNwoEmgU8tS7Q\", \"target\": \"YrrsQS8pOEwx8jIkOi12VQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FKCFaiakBcRnTlkVYzyIVQ\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"MevGjFG48jL1EP+uRx5xZg\", \"target\": \"bjM1RTxMkbo9D2ZgF6+JVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QljCsEz0a///Jq2IB2+cxg\", \"target\": \"bjM1RTxMkbo9D2ZgF6+JVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FvJM048TPlichlBDXcGLVQ\", \"target\": \"ZdnDVxJ8lr+5jJxYfk8HYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FvJM048TPlichlBDXcGLVQ\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FvJM048TPlichlBDXcGLVQ\", \"target\": \"RNWd8UAwtRy33uFufI5/yg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"B5o2moO+zZgiWlvKn6eUVQ\", \"target\": \"ag5YbRufSxX0dYh0+QVCtA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"lgCoz88OaqYPJJTBOXurVQ\", \"target\": \"nL/ewA9/7hfFwMYmieKsXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fRdioxsCKtEz2G0T13qL7Q\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9el4Yb1FIodeYe4QeztY8A\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JuVP3exlf4shYDoAoKVSqw\", \"target\": \"efrUM+KiMZNcsDhX4gXcVQ\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"efrUM+KiMZNcsDhX4gXcVQ\", \"target\": \"nFb5wObag+REOsnnoRX95A\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"target\": \"dSSZ+HP6teRDlmQgSqDoVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bXGpMEzkXLgG31dxALVXyQ\", \"target\": \"dSSZ+HP6teRDlmQgSqDoVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2a+0fWSXMHaZ2Hov9wcXcw\", \"target\": \"D32fNkXbGb8JntDyIq0DVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D32fNkXbGb8JntDyIq0DVg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"D32fNkXbGb8JntDyIq0DVg\", \"target\": \"E5A0lMr/AClmZHz1S2qRtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ae9DRMtLdxRiRvwoQZcWVg\", \"target\": \"Ifsn31I/BxOTLopfp+ELnA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"Ae9DRMtLdxRiRvwoQZcWVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KaWuVUZ3E9K5pqffOyoaVg\", \"target\": \"e1Y/y58FpDPgmAh5G8G4lQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"mgg/lhrwL5Rtr3eKy9uiZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"xOvTZEopT/cbeclaxyRyfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"Ev9lGJvuC87K+6RDWUCSlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"NIRt1zkakp48vUkF6P18rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"X3iS8Dq3cq8It+tMVZGR2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"93HOrLa/6emnc4Mf45A8Vg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FuuSZV27Neo4y6ZEJ2d6qg\", \"target\": \"TJyQjmH+Od59eoQ7hHxGVg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Of3cqqWX3hgee7b+lotWVg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AdIBqPKbWZ1ixMQ1vwkHig\", \"target\": \"imqM2tAn9iI3UoMOfiJ9Vg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"imqM2tAn9iI3UoMOfiJ9Vg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PAOaHKlVSzf3ntsoHnOGVg\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"PAOaHKlVSzf3ntsoHnOGVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"PAOaHKlVSzf3ntsoHnOGVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6s1uAbZCzoVJ6MCikPyIVg\", \"target\": \"LJGylLlX+/njYiLtK5PItg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"eQM+KwEzGGQwXa5pfTsnZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"vSJWqBZbFjSkYqQRa1OlcA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"oklVnGTYPCdUOJPs4w8Lhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"olMAQl+wwkOfD/g3eOeP0A\", \"target\": \"v6OGQ3IGrh7t1+9Pc5ClVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Howi1yXCwy8xQvfqMDCwVg\", \"target\": \"KXsJCgCkQt7RulySZ6+H+Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NHOlG6qRJsYm8dvs+h/UVg\", \"target\": \"pQvmcHKlsQVD46e4shkngg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"pgQHSJE9LdFJ4JX4uLFkbg\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l0YHJYM4046cMOuZp7BR2g\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C0NnqLBhV+x4qrVn6I0TVw\", \"target\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C0NnqLBhV+x4qrVn6I0TVw\", \"target\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/naWOtKyFnAFT5TWtQeieQ\", \"target\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"target\": \"KAOYRnIa8jpoVsl6LEwC0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KBvffIWk1pKZrIIrmmUtVw\", \"target\": \"ri48j885BLzHXAWT8WJduA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ENFraASWg5RdTlQ8G8E6Vw\", \"target\": \"G5ipCSZyCiz77d8Gi5A/ng\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"LAr9yFll6jcyvIbcPNFfVw\", \"target\": \"eCws2fVFKsN6qLY70X9GVw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"48shU8rWkVDv9ux1mYNJVw\", \"target\": \"fzbpoYXB7t3QDILutC3sgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"48shU8rWkVDv9ux1mYNJVw\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g/R1uTvqZfKj5drIlOC1cA\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANKXuYblah5Sw/0h5ImguA\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QGgfp0R2eZB+GeRcldbr3A\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gYTNxn8CAsLGcly8ASpLVw\", \"target\": \"jU2QIPHqLFIT2TilhstV4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JC9CR/h5Zd8Lo5hza/4/og\", \"target\": \"SToRdrEwGm/BztKtepZaVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"target\": \"xSijYTPxbvF64cPzbe9oVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h+88TEDu69e76yofbFUC7w\", \"target\": \"xSijYTPxbvF64cPzbe9oVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9NyRQB1LYCsbPHrE6bFjlg\", \"target\": \"ju2FdjnvEwJERaFrBSF1Vw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"08bGjN1u0ANSZUfU31gawA\", \"target\": \"TsyJJhx24NuArVGKSiK9Vw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"1eS0SAabJx3xGSCwWSbPVw\", \"target\": \"p3tybEF2UpLMP4gDgTlShw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1eS0SAabJx3xGSCwWSbPVw\", \"target\": \"w5zZguOil64NNAAULQPU1w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+zz49PYLjgQ+HgQ+JdRW/Q\", \"target\": \"WPY/12VLyv/ZGCMOGvjPVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WPY/12VLyv/ZGCMOGvjPVw\", \"target\": \"g8omXv57dirNyxDKqHKY/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34hValFnV2+dT4B4gubXVw\", \"target\": \"Av+NJ6AdBIQWI6bttPc38g\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"IsbmmrPvHfOSoTAvdVW3mw\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QliDnvMJ5gshMhitECBf2Q\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"JFsTmh4xEffCA34Bwl9sqA\", \"target\": \"ulMN+MhAnO/xSs9XqSD1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"79ZVec1G5s0cAdAPbGh7vw\", \"target\": \"ulMN+MhAnO/xSs9XqSD1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ay8Jub/jSdSgmTtDJKJxA\", \"target\": \"ulMN+MhAnO/xSs9XqSD1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QliDnvMJ5gshMhitECBf2Q\", \"target\": \"rOaXdLN11aUlsObk+Cn8Vw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"cq9Ea27BfLntD/Il3YYHWA\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WmDoE4doNyin11HM8WgSxw\", \"target\": \"cq9Ea27BfLntD/Il3YYHWA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"sZQt0HcBdAnBVufRutAdWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qKdc7yaOfDNQ3Ioddlqw4g\", \"target\": \"sZQt0HcBdAnBVufRutAdWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Yxer1BQHw8ayI4coIJWc7A\", \"target\": \"sZQt0HcBdAnBVufRutAdWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"46aKlHUWbk6T7f6FIOuAgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"bDci8BIt+vso5WXBUfZPhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"72sWJrEiMlL0pIoWjHY5WA\", \"target\": \"wZSNMWPhftzSTbrv/fr26w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"llovrNhzEbhUrsORmDYEXw\", \"target\": \"qkDwhgegxr+4Q7DZidQ+WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"9n4t1Zn+X0s5hKb1T+I6rQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"ORocJgkETt4cgx7zJX1m2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"eodI+fnS3UzxZQs/glMJ3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"aPDfJ/RktssG6+PgDXeC4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9otxW3iqkb6mUsVibfZLWA\", \"target\": \"I3HKdcL6uq1dV9U6rAbJuw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"g2//Y847Q3iYW+VM33+Ksw\", \"target\": \"wwgZ4aqOeVTXMNCdUON5WA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"wwgZ4aqOeVTXMNCdUON5WA\", \"target\": \"xGYjzaN7LnHvZGeHcLTD0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ggedp8qPy5kyWh6extUQ4w\", \"target\": \"aIIgb7T9OT5k+4MjasF9WA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"aIIgb7T9OT5k+4MjasF9WA\", \"target\": \"ki2D2kbSKwtmj52dz5bw+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"target\": \"W6goBNVWB0Ihs8xMQ0iGWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BXpeYYaO1qQF8B0NEv4r3w\", \"target\": \"W6goBNVWB0Ihs8xMQ0iGWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"W6goBNVWB0Ihs8xMQ0iGWA\", \"target\": \"m6ZpojGcm6og1aNvWaJL/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"target\": \"jSN7JY5CiEq76H/IKAPBWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"target\": \"rTMHQmIf07jtnjcUShfGWA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"COZSAihw0piprQZNqhPTWA\", \"target\": \"wRRfjVSXW26fS6X5yakhXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5VUgL1dwfNm5AVOz+sx4ZQ\", \"target\": \"COZSAihw0piprQZNqhPTWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"COZSAihw0piprQZNqhPTWA\", \"target\": \"rDPPMTD4vnxKGOpF+2Zlaw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"COZSAihw0piprQZNqhPTWA\", \"target\": \"MLDh6bSGi6PSwySBAYEg6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3fUOLgr8CbZwWyLGmWvaWA\", \"target\": \"PrFs5bxt6PWZ7A7m8WT73A\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"MX1iQXm9JIumNefXUd9PXA\", \"target\": \"gUFSWzIUmsXeT+D4FdTbWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Kah82w+S/u4725mVZgjAnw\", \"target\": \"VjjH8fRdx0M/KrNVGsogWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"VjjH8fRdx0M/KrNVGsogWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Qw8vIzjf/i1LCT9VUE8WQ\", \"target\": \"WFWWw2jQ8tZw5iRQSFNP8g\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"68Q7ajA1itdZfaO6FmPPZg\", \"target\": \"rK+9r/bJqlMdwX6xNutDWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rK+9r/bJqlMdwX6xNutDWQ\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pnzwd6zA7P0nwxXLzK5elg\", \"target\": \"y/EwmqIjSs3C9CuihUtVWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tK2U2fHkt+0EQze0I6bypg\", \"target\": \"y/EwmqIjSs3C9CuihUtVWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eof82uJ+FIvvh5PWSJZF3w\", \"target\": \"y/EwmqIjSs3C9CuihUtVWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sTbdtccB3oN5Rz44Z2paWQ\", \"target\": \"wKQEKDM6bFf7YQhZ0rV32A\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"5md/MVOxk6Lw2Tjacf6D0w\", \"target\": \"CY1ASUvL41NMGfDtdMFmWQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"RTckRKEGiClaU/kOghmIWQ\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"OybZPZewW/5uo77pf5EOag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"L2R99MXyAwQ7moUkSDjUbg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"gbLXXnl675hHRZYXyW0pzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"b8fpnzCB7pOsbIrJNam9zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"cymvFwyYZ7rZh6oQjfmq5A\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"6NRZyNIXOo0yh70A0I2iWQ\", \"target\": \"swE/d75dr8jLE+X9IPWubQ\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"ZK6YeSt70T5UPes8Tj68ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"eJfOofg/VkU3qdrZNfHY1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"nNdeLertJElPQpss2WS+4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTana0mhDAQ7pDlNgeTo5g\", \"target\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BP7DgF9QPNEPPG09OT3xkg\", \"target\": \"kkXV8yqVeCt4dSV3PqIJWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7pcApyi0C63xSascCt1wrw\", \"target\": \"kkXV8yqVeCt4dSV3PqIJWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kkXV8yqVeCt4dSV3PqIJWg\", \"target\": \"qcL9ytXQGVZEzfmjivkj1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d+jDWSs2T6c8VQ8BAurfuw\", \"target\": \"h8KNYZHf0bxUHrr8W4MKWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h8KNYZHf0bxUHrr8W4MKWg\", \"target\": \"voyyn7epEtNpu6dfPTzP0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SRrPV4MCz83nj7AW/W7jsg\", \"target\": \"ehhpQk8GXvQZRIxOZggVWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ehhpQk8GXvQZRIxOZggVWg\", \"target\": \"z5jHSXyyrX6eDs+IbTIDxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0mCvCIbvhxPg63+1mNGf1g\", \"target\": \"ehhpQk8GXvQZRIxOZggVWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eUot1iW5hlu7RiRC2m4gWg\", \"target\": \"j6By1U2pa9tCpe2vghUI4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4t1AHK2HFYcR5D9nIC0Y9A\", \"target\": \"eUot1iW5hlu7RiRC2m4gWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YRplCx8z9GNMnXrPdwUkWg\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"klquQJ0Jl9OUmVEJRbqZcQ\", \"target\": \"oz8+VHSy77Ift85Thf8zWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oz8+VHSy77Ift85Thf8zWg\", \"target\": \"yrXDjH5Y3GviTTblofUhkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oz8+VHSy77Ift85Thf8zWg\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UH5IsiL9uFI65JlQVZqCpg\", \"target\": \"oz8+VHSy77Ift85Thf8zWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"oz8+VHSy77Ift85Thf8zWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"1vnevzowu+uO6Fw7bnhVkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"YL7u6Ftz6it+yHZ1zOCPlA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"d+kA2No99UCwkK/diexNvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/aM4gHYQGmLOHeMeBo9xWg\", \"target\": \"SW495dBUNeThwmcdR2mnsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"OYH5ske6RuFozNHIa7hzWg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"/2rrq0GcdJM54Cu4x7d4Wg\", \"target\": \"RSkzRcKCWXkgyP3wyubL2w\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"TH6yeUquRV0AJfYGgRgOrA\", \"target\": \"wuWhg4Yw6D8Ry0qr0sGCWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YsX1xoG1Sju1MtguNdicyQ\", \"target\": \"wuWhg4Yw6D8Ry0qr0sGCWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7b2RfDpW6ux8JFAhGs6unQ\", \"target\": \"VHmR3tDa7EGSZ8FpyTy4Wg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/244Bhg1oGurt3IyzwKYxQ\", \"target\": \"VHmR3tDa7EGSZ8FpyTy4Wg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AnqqRMSFJIdjqNTRgBhGiw\", \"target\": \"YWjU6xATC2Q0iWOLiX/MWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"44m6YoyPWWMgqGmxbpPgww\", \"target\": \"YWjU6xATC2Q0iWOLiX/MWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2oENxDAeO3msBRvThWGNaQ\", \"target\": \"nPeh2fAxx1RfouYcbSPfWg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"G61pOLo45+GyyS5e8k3vWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8wXFOFxvQzDP2XGsXPTJug\", \"target\": \"G61pOLo45+GyyS5e8k3vWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"DfJsJTOjR+NX+PmleFU+gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"r+bYu5Ulcywy8rBOadEYuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"Ri+0Jy7gEDnrphImzdan6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"u2at6zf9OYlpg8Ts5KiK/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LMiOnh18K5J2ysJ7jEkoWw\", \"target\": \"t7Lm24o8Qqbykt2A4VlQnA\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"0l/H5+6WdS+zglOIO0swWw\", \"target\": \"IMUJNk7CzjopvcMmzqpY9w\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"+SV4sfwaeMk9N7sb4Di38Q\", \"target\": \"ruqNFuUB6tHVOz0EcqpPWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9jduueKJ+ghpIqAdXSLWw\", \"target\": \"s933IHR2SOYkrslDC3JgXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hrftt1kQzCVPx8AxEdZneg\", \"target\": \"X9jduueKJ+ghpIqAdXSLWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9jduueKJ+ghpIqAdXSLWw\", \"target\": \"j8j5NMqGbzwWyCZEIxS8sg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3buh1bQHBjYvBLTs3k1pcg\", \"target\": \"navgg+2v2IpcTItMEGeWWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9BqTzf+HI3o6WFXzcgP6Ww\", \"target\": \"cdtm284VM0XW/UkAuEnudA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9BqTzf+HI3o6WFXzcgP6Ww\", \"target\": \"Z9dCRzGkhMPsUVW2ZxiKmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"cjBusNr5IUANno8M2pAeXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Mmtn4en3D2UNWbeME8UmA\", \"target\": \"cjBusNr5IUANno8M2pAeXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EZ1Uxbd2GRWzoNGSb6zYrQ\", \"target\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iFxq8blHvCT13CeFg1Uq9w\", \"target\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AXXDOz0vS2tmKhyIhXZEXA\", \"target\": \"jPwI+OB8erWmfUxJgF6Nrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"MX1iQXm9JIumNefXUd9PXA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"RdHJ6h70jpiHt3m/vAPL2g\", \"target\": \"wxNjDbtynlXPoy/Q5D2AXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vxqJKZeQ2Vvx7xXFybjU3A\", \"target\": \"wxNjDbtynlXPoy/Q5D2AXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"target\": \"qnfy1S5fbWxIZW6Zb7k6YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H51lkjTGo0qqwQ7sEroFdQ\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2HdF9Vrsld08yjF+lXBrdQ\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oyFfCj3XEK2o5kEyMRZXug\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"bXt54Mwr7PfZh3d4YYJ/8Q\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"target\": \"mDhEd8i5IRTiz5zzp+nHXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"66eisG0zlPciGk3M3zXzqg\", \"target\": \"mDhEd8i5IRTiz5zzp+nHXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mDhEd8i5IRTiz5zzp+nHXA\", \"target\": \"vy0FMq4VqzAmN+15yanvrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V+s32xIiYLwU4mBWjW8iXQ\", \"target\": \"YzTYwzGBsaucgy6itdISaA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"target\": \"fTIctR0vW2sc4q6ZyMg6XQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fTIctR0vW2sc4q6ZyMg6XQ\", \"target\": \"rwxpB8UX/weoLJqfaRmJ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WVpCA2eA54bnl3oSospTXQ\", \"target\": \"pTUiejm1wpNhKBFOzILidQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TtIAgvnQmh/5T/BJWJrIpg\", \"target\": \"WVpCA2eA54bnl3oSospTXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"WVpCA2eA54bnl3oSospTXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"claAW9BD3Hw/5DoSlbSKXQ\", \"target\": \"xrWu5aeUX9Np83JY2t36fQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"claAW9BD3Hw/5DoSlbSKXQ\", \"target\": \"j2Yua3a567JQqNUafYalpg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OyTztUYnRhTYYxoLBI9FbQ\", \"target\": \"PcXLA8V21+Wb46Z5bgKSXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"PcXLA8V21+Wb46Z5bgKSXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e/a+enA4pnyYG3utbQBY3Q\", \"target\": \"ogQ/15xsZTPagM0jd0GpXQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"3vO6fTiJWeBW8Ovt00gmfQ\", \"target\": \"UQUtbMtXhRdVUpHFPw/mXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7BPRKy4C5yefrrHo632x7g\", \"target\": \"UQUtbMtXhRdVUpHFPw/mXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"neUebpMrrYX3e5BjAvyzdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"loqw1+ffTyBWBziom2HExg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"RGjlmlPAkXa/tI12Y6I10g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"PyEwC8P2XWgBNOn//O9W6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aKkEMSzcA3tK7Ey9aHwJXg\", \"target\": \"qrsjsWUS7pNe8p0FWJp9kA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"aKkEMSzcA3tK7Ey9aHwJXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AlCXpabHb9Fswv7L4U0Bwg\", \"target\": \"KCJwaDRWgE9q3q7OmKEJXg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"5VUgL1dwfNm5AVOz+sx4ZQ\", \"target\": \"wRRfjVSXW26fS6X5yakhXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MLDh6bSGi6PSwySBAYEg6A\", \"target\": \"wRRfjVSXW26fS6X5yakhXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"EjF8fainP19/QDcGbaCfpg\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"IEvjI9DghsvK8rqHLAZbXg\", \"target\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IEvjI9DghsvK8rqHLAZbXg\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"IEvjI9DghsvK8rqHLAZbXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"beJ4oL6Wy5sXtqlO2LH4gg\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"A14BetnIopZaaGAnjtv9mg\", \"target\": \"JqM77VUcNwh2YpJxMTdfXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"lW8nc97cG8164gWackiEtw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"vL+/RI7kdpbY/Np/ysigXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"vL+/RI7kdpbY/Np/ysigXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"nL/ewA9/7hfFwMYmieKsXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9el4Yb1FIodeYe4QeztY8A\", \"target\": \"nL/ewA9/7hfFwMYmieKsXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7h9Fg1B195k0e5jbUGH+cg\", \"target\": \"N5rUu9Z9APXGiNRDfx7hXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N5rUu9Z9APXGiNRDfx7hXg\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"wH4ggU+AeirvEleuA5QfsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"gzeycB4zCQKXkJ6WXWTl7w\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"6BlHPEWxjD7W/EXGlQA8/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RIFKqY1gLZsQf+i0P0a8sQ\", \"target\": \"wneYD+VDwhkmw532fW7qXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TFGivlNpyvLKfXPJLvfz2w\", \"target\": \"wneYD+VDwhkmw532fW7qXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bGDOuVUdJKIu5Ixbo/hl9g\", \"target\": \"mt56Y7tQ3sCIsVJj4zkXXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7u2XSrqa0R2siPqtptBvhg\", \"target\": \"AFFAXTu2gNkQUc+It6w8Xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"AFFAXTu2gNkQUc+It6w8Xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"hu8ICB4fKw3AVpjcGUhZXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"foEOhXqE/MBXNZlfAAZmmQ\", \"target\": \"hu8ICB4fKw3AVpjcGUhZXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hrftt1kQzCVPx8AxEdZneg\", \"target\": \"s933IHR2SOYkrslDC3JgXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O6j0sHDBfrnArqvkE5CKXw\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O6j0sHDBfrnArqvkE5CKXw\", \"target\": \"r1iREzOib40Fq3xYyqDR0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"SVncppnuBWX66nGOzF5GZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bp/cH5b+nBTbc8NY0tOcow\", \"target\": \"pslubpS6aAxQnPsj4LiuXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pslubpS6aAxQnPsj4LiuXw\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8DMefT1OSM5d4f8qFzt9kA\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hW366XCp/i7HQnhv+RXHXw\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9DtTLKdp0pHZCbYalxQFYA\", \"target\": \"DOsl6zK+y/hfIPJ3VtMngw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KFHWcKdMUM2lpGAGG5QHYA\", \"target\": \"oGVIZCXdUXvIMETXa+zMag\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"L5j3a+KEjVvruGkUNWZ0/A\", \"target\": \"fiycSpGQtRIfH6qDzzcOYA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"2HdF9Vrsld08yjF+lXBrdQ\", \"target\": \"qnfy1S5fbWxIZW6Zb7k6YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0i+8vwHItC+FNSCN6RN8YA\", \"target\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"0i+8vwHItC+FNSCN6RN8YA\", \"target\": \"JF/aaK2hFM7tvJ1WIB9JsA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"0i+8vwHItC+FNSCN6RN8YA\", \"target\": \"rbPtcSfWqHkkTq1H9XUV3Q\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"KqHNtZd2xUrZodIDS0CcYA\", \"target\": \"nSOPa8O+2GmeTc1ttJWhsQ\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"4fsPI0x1OUVboOOVA84FzQ\", \"target\": \"iCmnZi9CFvdYvyiq1vugYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"xYBnEJB+6rnvZzZiDcWrYA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"BN+YmIxT+3E9xyYfA94pdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"LL3EugqztyFZS7UuGML+yA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"K53b7HORgyhLUuQ9WN0kbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"tX0B7WfMBbtslZFb0IpizQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TPUTckho+StrbYBpi7L0YA\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NzlMJMnlHuCbxGhinyGmfA\", \"target\": \"TPUTckho+StrbYBpi7L0YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"TPUTckho+StrbYBpi7L0YA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"up9psA1MqaBe3U64WLyMdQ\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"xJiz3I1kHzo5E+2oylh5gA\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7+546eOPGtXQD4e1DDKtkA\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"w/1S2jjYrh+t4IF1b9hDkw\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NjVhdiC4UmNJkZgJOcpn6w\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZdnDVxJ8lr+5jJxYfk8HYQ\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"ZdnDVxJ8lr+5jJxYfk8HYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KAOYRnIa8jpoVsl6LEwC0A\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PL5jtLk+zPAXhB/EpkN0ig\", \"target\": \"Tkjte2I8ttkrymdWYWyFYQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"sHv2V4ZuvehzCwHPCnOQYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rBRMKV18YrOSdA+WPlz6sQ\", \"target\": \"sHv2V4ZuvehzCwHPCnOQYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A8RHRlYqsCVKm8quwQqhYQ\", \"target\": \"HCQKKS5z1h7eYqav2fhzYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A8RHRlYqsCVKm8quwQqhYQ\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A8RHRlYqsCVKm8quwQqhYQ\", \"target\": \"usCj8EbPFiwMXDxfRmyWvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"tfw90wbD4QM/PpDbMLj6cA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"LRvRi7afvuVDGY7sRVUrvQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+5Bq+EbFrtKUOjGDiim7zw\", \"target\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"eVwUCQYDufTRiMXd3gS21A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbaFWKwjLhE68HJWltWqyA\", \"target\": \"KF/ggkreIF0LsX56a0nTYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KF/ggkreIF0LsX56a0nTYQ\", \"target\": \"Vt717tNeUr26Ht7uz3W6zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h8PJ8ykifxVNLeHWFe/lYQ\", \"target\": \"rv1QjpEbuSQW+45lpZSGeA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"L64aCDPhMOIOwxJW4cYO7g\", \"target\": \"h8PJ8ykifxVNLeHWFe/lYQ\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"Rr9emPI1nLHqljrbD4DvYQ\", \"target\": \"nks5WSx4QKKAPQCWyIn32A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rr9emPI1nLHqljrbD4DvYQ\", \"target\": \"lstYZJhfvS9jBG5xm+8U9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"pejzevFVc+aG7TCaqhshYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"pejzevFVc+aG7TCaqhshYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/hg11VBlQNdhRdNquj44mQ\", \"target\": \"IXdPVWFghod/SBOsAt1aYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"81/t15zn23kc/9M+VRloYg\", \"target\": \"uDOUHvwuMFbU5lxW8kemlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"81/t15zn23kc/9M+VRloYg\", \"target\": \"ZU65SFXBVuu8L57SNcJ25Q\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"/i+pP6jIG4qaUe+SGq5pYg\", \"target\": \"TkBKnFxeFnG+2hBRM5TjbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/i+pP6jIG4qaUe+SGq5pYg\", \"target\": \"xdPBng9vNQkVKMcV3dLUnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/i+pP6jIG4qaUe+SGq5pYg\", \"target\": \"MLDh6bSGi6PSwySBAYEg6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HCQKKS5z1h7eYqav2fhzYg\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HCQKKS5z1h7eYqav2fhzYg\", \"target\": \"usCj8EbPFiwMXDxfRmyWvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XJcqpIcy69YD5Aees5ecew\", \"target\": \"xI1aLjQUZ7LtO3/xEnJ+Yg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"8eST8m92csATI1mdEtKGYg\", \"target\": \"D/A8t0cmv3N4b8hDFamTiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8eST8m92csATI1mdEtKGYg\", \"target\": \"bwWPWOOz5uHVBrqvXEpW8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bk9spz7t1TylsPHDJYkLxw\", \"target\": \"uSDlN/LPFKzTcwmARYOSYg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"XBVUEkaFxyRusIcv+usuaw\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dyG5yCEuXNa7zINq/JKjYg\", \"target\": \"stm5O3lA7Tm784XxpVddlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/hoM3x9QDTrZMypNwFxFuA\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0t6hQrq58/AjvNmfKQJA3w\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"0QIadK8r6HxNza6Ny+h+qA\", \"target\": \"T9flAVJsWQvGQcCuP9ajYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T9flAVJsWQvGQcCuP9ajYg\", \"target\": \"i1YhmqPsCV5G50aFCHtD+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EMY6LHYwmd0QTiRrnsetYg\", \"target\": \"u8wMRBA97dXpAFjbPoTBaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EMY6LHYwmd0QTiRrnsetYg\", \"target\": \"ZTZGPr12qhPT39K3XPATcQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EMY6LHYwmd0QTiRrnsetYg\", \"target\": \"oaZRRjQzjqiXM8H0BFXs/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bXGpMEzkXLgG31dxALVXyQ\", \"target\": \"cS/bpu52WCU9X+jUmZu+Yg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhHo3HeMfTGX/H0KDyMNYw\", \"target\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ARtNFnnaQ6GXiln4T/Qiw\", \"target\": \"olk1QAFpHTZg1V+12hNUYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"target\": \"olk1QAFpHTZg1V+12hNUYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1WjfVSCScOY81ocVLG5loQ\", \"target\": \"Ow3h3bI7n0amMosQn3tVYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ow3h3bI7n0amMosQn3tVYw\", \"target\": \"POgaZ85u3n/rjr0nGAs1sg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GnAbts15yBTBPSTHzQh7Yw\", \"target\": \"xJ4etXa+11viKMelSA2I7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GnAbts15yBTBPSTHzQh7Yw\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1THmiGWj4fAKDegLXyKkYw\", \"target\": \"hur+DI1LU7t3WWr94OogoA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"TECaccIMdVH1O/B8fm3MYw\", \"target\": \"WsADvQUexHH226piNwJkmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8dAZq6dnSSBoaukyGPkp+g\", \"target\": \"vD6OZSkKU8GFj6Hs3gPXYw\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"/vWYb5IsDMKj6AN7glY4rA\", \"target\": \"F5HRLcAVvtui7yRoAlPYYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NB36u7yBXPdWuZqt6xVvoA\", \"target\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"target\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8CMoYUu+332sDGqV2kLCZA\", \"target\": \"e/1HN0Ox0h0DrOXmQ7b/Yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e/1HN0Ox0h0DrOXmQ7b/Yw\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QNaUmTD9XiBvuQRyF+hEog\", \"target\": \"e/1HN0Ox0h0DrOXmQ7b/Yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZvBzxChZplZxvBcbRvQNZA\", \"target\": \"gKWDlf3LZCGgS60wxil8cQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"W9820uGVNNrihcyqAVBEdg\", \"target\": \"ZvBzxChZplZxvBcbRvQNZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZvBzxChZplZxvBcbRvQNZA\", \"target\": \"ofSL6fj3xO5/y83Iczo74g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XLl7+jPIy0KntxXZsFAjZA\", \"target\": \"o2CKozplhIEEwPMwuJwHfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XLl7+jPIy0KntxXZsFAjZA\", \"target\": \"Z9n/kmsyq52cF3jYG9nZwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eQM+KwEzGGQwXa5pfTsnZA\", \"target\": \"oklVnGTYPCdUOJPs4w8Lhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LkM0/MtyKDGvzCG666tvZA\", \"target\": \"T21csR2tiZvqkP3PvXdr0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FDPwNBUTwho2jWg6cpf7bA\", \"target\": \"vD7RLkl2lIfpCxXIygFzZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J2JOgBTG2R43THPf9vKJyg\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SVozJ8XW8FPd0iHVZjCBZA\", \"target\": \"dlr2R44ETn3xtO4mnELFiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SVozJ8XW8FPd0iHVZjCBZA\", \"target\": \"XxgcW3KOOwIwxZx0l+ao7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9x3ved1T7wjAWcFR2XFOZQ\", \"target\": \"BZ7Hiow+j1NpeSNm7razZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5iSNxr/itO4I17fTbTbe0Q\", \"target\": \"BZ7Hiow+j1NpeSNm7razZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8CMoYUu+332sDGqV2kLCZA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8CMoYUu+332sDGqV2kLCZA\", \"target\": \"QNaUmTD9XiBvuQRyF+hEog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"target\": \"XLIYgIjAAid/Qw1RCyL2ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XLIYgIjAAid/Qw1RCyL2ZA\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"XLIYgIjAAid/Qw1RCyL2ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M+OEVS8+0HCG1kjM26aRsw\", \"target\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ag5YbRufSxX0dYh0+QVCtA\", \"target\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"1BEj44DRcK5n6B3ptY4zZQ\", \"target\": \"jvBpNSOT9RtSIOth8nCdvg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"45D1y/f+Hloq2UfDPISt0g\", \"target\": \"zexMlqrIwQf2AHpu4iZCZQ\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"5iSNxr/itO4I17fTbTbe0Q\", \"target\": \"9x3ved1T7wjAWcFR2XFOZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pwFegFZIy5bhsBwci3trZQ\", \"target\": \"tH9869I8NvruzTNOD7edxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9u2HDSvX//SeuxXrnZqtyQ\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5VUgL1dwfNm5AVOz+sx4ZQ\", \"target\": \"MLDh6bSGi6PSwySBAYEg6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9riAVATY34jHBt90TQZrA\", \"target\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2t1yVN7Z9uNwoEmgU8tS7Q\", \"target\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5apR11MR0AvAuPyXKe+BZQ\", \"target\": \"AheEjR6jraasDVl7HQ0q6Q\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"3kCb/KZ8/abI4WHLBJ7HZQ\", \"target\": \"lTy5ajnv+ybkdhf/wEdD1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3kCb/KZ8/abI4WHLBJ7HZQ\", \"target\": \"ttNA9EtrRO4vzKDbSnXp8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4vGANuz0+6hyot70AcHRZQ\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4vGANuz0+6hyot70AcHRZQ\", \"target\": \"6jNVAJhI7DMcPITe0gOFzw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"vsoziab71WlVH4X6m9+FZg\", \"target\": \"z/Vc98OXYInOmO1oD+PRZQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"E1+WI9OuYxMGF9bKHnDWdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"QNaUmTD9XiBvuQRyF+hEog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"Pp3qG3oSNALuUCiYsoPszA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6uEIF2c/sKN3ohddsWgT1w\", \"target\": \"t20xkxierOcBE/o0aSAdZg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G2x4mpYTKaEwCFfOF/MpZg\", \"target\": \"iweGkp1urOOrJF2VoRZNhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G2x4mpYTKaEwCFfOF/MpZg\", \"target\": \"OKTk/onbe2oebWvf+eMKvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G2x4mpYTKaEwCFfOF/MpZg\", \"target\": \"mBGZFsgZHxC73vu9VcF0vw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QpCAHtbvoruznvjbEU8nsQ\", \"target\": \"uTX3fyUcUp+b6NWtu4o0Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Gwg2EmcZbMB7v8/o0Xbfw\", \"target\": \"Z+Df51fCeSuCjkjYnEc8Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6A0X+/4dUpd8rUBixdZYZg\", \"target\": \"Sl/6PUC3DqG7BDyiBcK1qw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"Q0MjucCUh+7hOM6ESTwQaA\", \"target\": \"oTiCLEa9X0uHTa1BlilnZg\", \"metadata\": {\"weight\": 43, \"hover\": 43}}, {\"source\": \"MevGjFG48jL1EP+uRx5xZg\", \"target\": \"QljCsEz0a///Jq2IB2+cxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E0dFImBZ43XFNFgdbt+udw\", \"target\": \"VMCQwzdpsrbNN/t27liDZg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"4CO33mHHgJhhEMark/hFaw\", \"target\": \"7Ye5q+ZygboyV90IkLK0Zg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"68Q7ajA1itdZfaO6FmPPZg\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QoHi3matwhw+B0if9Y6Dig\", \"target\": \"dEZXBUvT5+bmK/KeFiTjZg\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"NJTaln+qmZxCCN/Hx5IDZw\", \"target\": \"Vxb+qrdroK3Yt3RC7EJnJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJTaln+qmZxCCN/Hx5IDZw\", \"target\": \"w2jFy/pE8Fy943fFYEonbA\", \"metadata\": {\"weight\": 47, \"hover\": 47}}, {\"source\": \"839Oiyd7BclP2PdSeIZNqg\", \"target\": \"NJTaln+qmZxCCN/Hx5IDZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"OJf7EQPGS6EnYbiBM5pSYw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"STJBi8oPwc2BctwyE6sWjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"V0X2HIuhS0Ps7WOiYcGtmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"9JsLmui6toze4OCS9SqwtA\", \"target\": \"HYymt0lDvgI53eZlSzAjZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"VzS48APpJ+ye48pIki2dug\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"target\": \"dTkENAnFlFXuxJCq9UEvZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"dTkENAnFlFXuxJCq9UEvZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nunbAapYEUBfVO+HWtr0nQ\", \"target\": \"yHCcWJQDbIob4E9ckP4/Zw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"O/gDisntYgEbfhuQHG3dZw\", \"target\": \"l0Jn5R0PeAMlVCjBWql4Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l0Jn5R0PeAMlVCjBWql4Zw\", \"target\": \"opICajuz4lb9z9H3bjGb2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"heKhrRBgLEzQGdjEiVb4cQ\", \"target\": \"q1K2qTkP+36lkCo+WF+UZw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"KuY19ZpJ9pyPPEUlZSFuiQ\", \"target\": \"VTFcc+n6qFLhfTxVnmyXZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VTFcc+n6qFLhfTxVnmyXZw\", \"target\": \"kdW6Be6DZ17iGHRc72n1sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VTFcc+n6qFLhfTxVnmyXZw\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"plg79dOordUluDMn0QerlQ\", \"target\": \"zN1upeQhUgH8ySChSc2hZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"zN1upeQhUgH8ySChSc2hZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mgg/lhrwL5Rtr3eKy9uiZw\", \"target\": \"xOvTZEopT/cbeclaxyRyfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ev9lGJvuC87K+6RDWUCSlQ\", \"target\": \"mgg/lhrwL5Rtr3eKy9uiZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SpFHLZG1AQhFGxOLcTCBgQ\", \"target\": \"ZQL4xUI0Lik7CwBB2L6kZw\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"blqYEvP+cEm13ZzWBP2yZw\", \"target\": \"cTFSFZ6L+4e7+kAv2OOd0g\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"8wqfLFNes7JUPFwY54jBZw\", \"target\": \"rbPtcSfWqHkkTq1H9XUV3Q\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"O/gDisntYgEbfhuQHG3dZw\", \"target\": \"opICajuz4lb9z9H3bjGb2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MG00eunxEmm1lYvM3jWA0w\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kEfT969BAAcMsgbk9Cq5g\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IeJ7QCNZxGb/t4BwOpkGcQ\", \"target\": \"Q0MjucCUh+7hOM6ESTwQaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1T2sFz5Oi3Wp2m3UyDTc+A\", \"target\": \"Q0MjucCUh+7hOM6ESTwQaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YzTYwzGBsaucgy6itdISaA\", \"target\": \"uYfni3DsnHLywrApmbU6kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YzTYwzGBsaucgy6itdISaA\", \"target\": \"jWO2RP4ylPUUhglRRs1y3w\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"91ATqeatEnZnOl7GYatz7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iPRckEZ+9fRyg2mbWpNZaA\", \"target\": \"xhxYTYvGcyJprp8iGNPxkQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"k55CIte3Gp7p6qcb3qdhaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"target\": \"wKp/+GpkbgJu8Y1W+8t2aA\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"pFJxA6EP5BLy+6YQ9ZTIaA\", \"target\": \"skeECVWpQl8ufmsJtEK60g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nrmey3lo5Rp0gzeNirbf+w\", \"target\": \"pFJxA6EP5BLy+6YQ9ZTIaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3CAi1BHCJ4F6GOSyN9ndaA\", \"target\": \"vtRcGf0ox/w9MXmiOqN8qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+CMr8Kod/3DtGz10hUou1w\", \"target\": \"3CAi1BHCJ4F6GOSyN9ndaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UikPyTd+/Ke0c929axUssQ\", \"target\": \"XvFXpKAybOJaTrHjTz/raA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TbsMX0lpn0ca3Jbu0oDj6Q\", \"target\": \"XvFXpKAybOJaTrHjTz/raA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8kqbzDvYbTAr7mFfFJfxaA\", \"target\": \"lojx+gIGkFIte9+XWtSjhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cNenZQZhgXXSMyomN525A\", \"target\": \"8kqbzDvYbTAr7mFfFJfxaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8kqbzDvYbTAr7mFfFJfxaA\", \"target\": \"wXuMAPhfrJpUDgsV2ojS7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yNF6u5zyDfG/4h5/Uz0aA\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Mmtn4en3D2UNWbeME8UmA\", \"target\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"HZQlAg8cz/q0rps2qUxTmQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WZO2jjMqEHtvBBYv4mK8A\", \"target\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7464ADYEqh2JXvYPcQ9YmA\", \"target\": \"T34SlORyNdAitBu1jVAVaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+NijVvh9cRhrJcDfe+sxg\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BXpeYYaO1qQF8B0NEv4r3w\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"target\": \"m6ZpojGcm6og1aNvWaJL/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EpfkuD4XamCx7taDA1QtaQ\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpfkuD4XamCx7taDA1QtaQ\", \"target\": \"Lg63ntVVe/szA2gZJ1zcww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"EpfkuD4XamCx7taDA1QtaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NIgmiC1e5egjTL/hoRRzaQ\", \"target\": \"tNJL9Wj9xM3IyYmtsaGaqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NIgmiC1e5egjTL/hoRRzaQ\", \"target\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LR0o1Gp5Q/56VArLa5GfaQ\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ENvW+sJ6QytVUMPBHRsybw\", \"target\": \"MP2QXYF3sENxb7Uc+MG2aQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MP2QXYF3sENxb7Uc+MG2aQ\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HanEWAQVvp92czeWbS1z1g\", \"target\": \"MP2QXYF3sENxb7Uc+MG2aQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZTZGPr12qhPT39K3XPATcQ\", \"target\": \"u8wMRBA97dXpAFjbPoTBaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oaZRRjQzjqiXM8H0BFXs/g\", \"target\": \"u8wMRBA97dXpAFjbPoTBaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OybZPZewW/5uo77pf5EOag\", \"target\": \"gbLXXnl675hHRZYXyW0pzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OybZPZewW/5uo77pf5EOag\", \"target\": \"b8fpnzCB7pOsbIrJNam9zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"4GJpnaHGtLQaFFP0ev8oag\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"MuG/pOvxWpq41fkfo/RhnA\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hauBoMkrAw7jNahaRNgApA\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r1iREzOib40Fq3xYyqDR0A\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGqG5c/VWKGwOacxedtJag\", \"target\": \"UvwgWrEVRAhIKi90bruZqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGqG5c/VWKGwOacxedtJag\", \"target\": \"WbIwPdpoyybcirBTSc677g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"InCEqoKCHEMy7JVnqgiDag\", \"target\": \"w6OquymSybB4rOzCfnsmwA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"i1FG2HVaFaWVKq8Gmr+Fag\", \"target\": \"jr/tmb8gfujXSG5D58/n2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7RXVddCVGk1aSOf5BMkg6g\", \"target\": \"FaeXygmksygb2560fsqvag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XkYOl3ks1X2aSgiy+kcncg\", \"target\": \"t//zurDsECjhkSF+dDy3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"t//zurDsECjhkSF+dDy3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfL6ulaZMR+EipbGh9u3ag\", \"target\": \"L49IPcN2EYZ4HFO7oiofbg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CfL6ulaZMR+EipbGh9u3ag\", \"target\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfL6ulaZMR+EipbGh9u3ag\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W08SC5+MMRtUmoI8eb8p8Q\", \"target\": \"qMV0wqJZhGOHoZqSaUvaag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MJMUTT4JMMSyMzSkOKjr+A\", \"target\": \"qMV0wqJZhGOHoZqSaUvaag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4VZ10HmA8GdBbgDi2qppdw\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O1RVC+p7aPV8bOsQ6e7fmQ\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"scx4zJSDGqh6BG0zTMf3ag\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0dPQX4HZuIcEoHZnu61i2Q\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SU/6PQhlsHPBRc4pxcQR6w\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SdLACOA5NHzMq25kxSWf1g\", \"target\": \"gsc5I5v27i46ZSFXLzgsaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gsc5I5v27i46ZSFXLzgsaw\", \"target\": \"pQboYj1uZMjFOkzVaqCR/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XBVUEkaFxyRusIcv+usuaw\", \"target\": \"stm5O3lA7Tm784XxpVddlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/hoM3x9QDTrZMypNwFxFuA\", \"target\": \"XBVUEkaFxyRusIcv+usuaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1jKoWPtNZuyTySc8hwFBig\", \"target\": \"LLqUTf2C7DiwEPqO9IAzaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"target\": \"wtljH1bOIKRg3l1tzqq9dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NyPKUTLm1jwUANNoIQoIqA\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IOl829hIWWsSYYNSeFTw/w\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kp/uA317xD3ySXD3jBdRaw\", \"target\": \"N9riAVATY34jHBt90TQZrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8FaU6NkPlqE9UM1z6SSa7w\", \"target\": \"Kp/uA317xD3ySXD3jBdRaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6fa0BGC1aByXuIyb1BZZaw\", \"target\": \"TaIDJ7W1q1QH0q5C5igLsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6fa0BGC1aByXuIyb1BZZaw\", \"target\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6fa0BGC1aByXuIyb1BZZaw\", \"target\": \"H0zZceW5WCpd+LBiEJSR/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"DLTeNonoRsfy6pTZgfM80g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+lVxYLjIFO+Ycwih/VOi2Q\", \"target\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"iiHdIj3dYCnLmrkXpUxV3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"S0cvWu7kth8Hv99QFfiW4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"D9pzXh+m3X+Q11g+VAoQ6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"xbWKQYE6mafD8ye2m0H89Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Jk8W0OQRDbN2UwPVWg3nw\", \"target\": \"nl3iba56oz4+Ct7sc/zDaw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"nl3iba56oz4+Ct7sc/zDaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nl3iba56oz4+Ct7sc/zDaw\", \"target\": \"w159VscyStCfuNPVMuBj8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j2myGcumhmoz/9p4EAE2bg\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EyFl/rmMefeFDR3ZPbq9eQ\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"target\": \"ylU7OoOB+lTyYkp2CvNrrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AzjFuM06Mlh2IO2j5mHRww\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CwpEQuIi8zSScd15Vffgaw\", \"target\": \"qh37fflxH4crnFBSNG1ffA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"K53b7HORgyhLUuQ9WN0kbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"w2jFy/pE8Fy943fFYEonbA\", \"target\": \"zW9OFngqkdFLKaWtIXKwbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WMgcdy+BnPYK8Xma4/5A6g\", \"target\": \"w2jFy/pE8Fy943fFYEonbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DjoWz5wRHMv7J5CcM1FN8g\", \"target\": \"w2jFy/pE8Fy943fFYEonbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EKGxuN6zNqEuBdsNTTQ2bA\", \"target\": \"H+wkAyPI5bSb8Bb+y88Lqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BqRKgn0/xYzfcP4hJf0j6A\", \"target\": \"EKGxuN6zNqEuBdsNTTQ2bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"SVHlmn1r2bsNbwqdYmNdiA\", \"target\": \"opm/9DV54pobtdoC3kNUbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7LoXRQyN/WUR4uMbgJgsiQ\", \"target\": \"opm/9DV54pobtdoC3kNUbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J3IwN77QI+uhaJkmHUl9rA\", \"target\": \"opm/9DV54pobtdoC3kNUbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Inzja40kbY1hPZTZY4WlQ\", \"target\": \"DFjBfWb05mwJPNpOXP+ubA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"7waZWOlEZD3wAUOfyTK/bA\", \"target\": \"SzOCs7c2CI/xNi9n68tDgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7waZWOlEZD3wAUOfyTK/bA\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7waZWOlEZD3wAUOfyTK/bA\", \"target\": \"HxJ47i5/R/AOuO045E5Uow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"target\": \"xqgM3rfoMtsn1TX/WLjvbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BNzwQD1dzf4lnoWRJxD1bA\", \"target\": \"HA63TWBU2S0+FaXntjCnwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BNzwQD1dzf4lnoWRJxD1bA\", \"target\": \"jlP5eV/l50w203+qmY934Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8825VNagmfuRs5bexVc1bQ\", \"target\": \"q7GHrWPuuYSRoO8P6Qvfgg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"C7fozaTI9722tioX0G/1pQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"9u2HDSvX//SeuxXrnZqtyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"OyTztUYnRhTYYxoLBI9FbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M8PtUDh0BZnkoIFUB3PAzQ\", \"target\": \"PwyhAzA0omnIl03SygN+bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+qwToh+fbgIAa8uOXduCbQ\", \"target\": \"R0VympemlR1IDHdJpudzlA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+qwToh+fbgIAa8uOXduCbQ\", \"target\": \"rZGX7tiTLIup6b1UOtdDoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"target\": \"rtQmcpROqcblEzxYvOdFiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/mnxJbBXFRoJm1t8b+jupA\", \"target\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"target\": \"hKdbfGbrvmmwC8+BbLia3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZIy/WsAB3wJpL965LjmTbQ\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GjAof1RFrIHVKY/0zm3bxg\", \"target\": \"ZIy/WsAB3wJpL965LjmTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jZp0wulp0qyqJdux+qWZbQ\", \"target\": \"ul28Dil0Q9FmcB3y/n13gQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"jZp0wulp0qyqJdux+qWZbQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jZp0wulp0qyqJdux+qWZbQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AfC+yExwuC/ENoHJ7zWxbQ\", \"target\": \"a1dPxbwXNfiONYdhIiQNhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1lNjFkPQft6RLWOT4nThsQ\", \"target\": \"AfC+yExwuC/ENoHJ7zWxbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AfC+yExwuC/ENoHJ7zWxbQ\", \"target\": \"lajlfjCT3uep6UXeChc2tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"target\": \"vWcvRByQP51uOlZDbmbUbQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"v2ros2t94DbEEnUTjOnxHw\", \"target\": \"vWcvRByQP51uOlZDbmbUbQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TkBKnFxeFnG+2hBRM5TjbQ\", \"target\": \"xdPBng9vNQkVKMcV3dLUnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MLDh6bSGi6PSwySBAYEg6A\", \"target\": \"TkBKnFxeFnG+2hBRM5TjbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"target\": \"ILLw32m9uRu0mMk194ka+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"RU7ImjsrRJsKlzFRmKjN3w\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"OkpZWWmaKw6a1Opzusv4pg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L49IPcN2EYZ4HFO7oiofbg\", \"target\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L49IPcN2EYZ4HFO7oiofbg\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q9DbiBLOUlsRxS7bC1lH4w\", \"target\": \"Z1owg5XRBMZ+UZarVUEvbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIvlvNgs59hiOwj2O06peA\", \"target\": \"j2myGcumhmoz/9p4EAE2bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EyFl/rmMefeFDR3ZPbq9eQ\", \"target\": \"j2myGcumhmoz/9p4EAE2bg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AzjFuM06Mlh2IO2j5mHRww\", \"target\": \"j2myGcumhmoz/9p4EAE2bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"295KUQrNgS524KdPjhY2bg\", \"target\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"295KUQrNgS524KdPjhY2bg\", \"target\": \"nOXqrXnI0km8cLuIHTi4sA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"295KUQrNgS524KdPjhY2bg\", \"target\": \"JQF9x7q7foGGWrdOMznT3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H5iyKe8krA9s/HxZ4QqUsg\", \"target\": \"OK7AnboiWZ7PRgIMjmpHbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OK7AnboiWZ7PRgIMjmpHbg\", \"target\": \"hKruHz9YqELlEfdSiJ2BxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"target\": \"pgQHSJE9LdFJ4JX4uLFkbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1iE3IfSpcAwr1GJpuN1wbg\", \"target\": \"wph8PLZvlqygec2g0ZIIhg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1iE3IfSpcAwr1GJpuN1wbg\", \"target\": \"a4+4zao4O23gIPqZq/U2uQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O/m49NG+OSq7jZLZYq9E6g\", \"target\": \"dXQRUJXsvJSlmLomDmF3bg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"6rVzMgD/kufbnz2W3Qp6bg\", \"target\": \"b5xBGTs/P8P/y3nzl3AF5w\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"qObfBPdskZ/bdJxoI02JtA\", \"target\": \"vGKrdKXZtH3UV90EhYaebg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"/d5n79emA1gmv3Otf5+nfQ\", \"target\": \"d7hMwlTj5Ir1NfCOJZinbg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"d7hMwlTj5Ir1NfCOJZinbg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GigVNO8Fs+XEzbfNezzphA\", \"target\": \"d7hMwlTj5Ir1NfCOJZinbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"qsZtcjv/Pr7Ps1rIbC+obg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+SvqYAQ7ewPmjmJjL0407A\", \"target\": \"wf9PwOKlrt0/GTUhJmPSbg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"ENvW+sJ6QytVUMPBHRsybw\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ENvW+sJ6QytVUMPBHRsybw\", \"target\": \"HanEWAQVvp92czeWbS1z1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KXmPvXyy4ZqMu2NJW680bw\", \"target\": \"kwhLDg0U+a3YNXYiod7Vxg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"coyiMRwZqLI5ZdJOoZeykw\", \"target\": \"u+59gZNV53zMJQVuIatFbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"txTXlRobNKgppIbcfQ7eng\", \"target\": \"u+59gZNV53zMJQVuIatFbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1K11RU9HVahHEfRalAKE+w\", \"target\": \"u+59gZNV53zMJQVuIatFbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D8DysmbmW6oUH3yRrTMK7g\", \"target\": \"RMQXn+wpC1BAUZ8mxJZebw\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"HMLHgWFAdRQ52AVLutxJsQ\", \"target\": \"HWZAYVBnOATRXMF9hCxmbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HWZAYVBnOATRXMF9hCxmbw\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A7DMC5xh2BOv+DzA5zFtbw\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A7DMC5xh2BOv+DzA5zFtbw\", \"target\": \"tNPQOgx1QK26mgnI8Z8woA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nuOysH+Mh2h6a7WWgG44wQ\", \"target\": \"s/iJc9+3ONWQha7FBfKMbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"s/iJc9+3ONWQha7FBfKMbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WMgcdy+BnPYK8Xma4/5A6g\", \"target\": \"zW9OFngqkdFLKaWtIXKwbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DjoWz5wRHMv7J5CcM1FN8g\", \"target\": \"zW9OFngqkdFLKaWtIXKwbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"As5V4Gv3sXDtJd09xlVJcA\", \"target\": \"ibKgv6nUXTOjrleyRQKzbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"as1AvPNQ1U3vjyhWZXXbfw\", \"target\": \"ibKgv6nUXTOjrleyRQKzbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hNssRjdsVPWPIXeaQ55ogw\", \"target\": \"ibKgv6nUXTOjrleyRQKzbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"jDNhsvbjunwQKLmvhy38bw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"As5V4Gv3sXDtJd09xlVJcA\", \"target\": \"as1AvPNQ1U3vjyhWZXXbfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"As5V4Gv3sXDtJd09xlVJcA\", \"target\": \"hNssRjdsVPWPIXeaQ55ogw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"88NA5Yp9ZlnX1Wm69tZScA\", \"target\": \"JJueDA4IKbhbPiTTsHAMng\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"88NA5Yp9ZlnX1Wm69tZScA\", \"target\": \"J3IwN77QI+uhaJkmHUl9rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"88NA5Yp9ZlnX1Wm69tZScA\", \"target\": \"JdHgLTmCpdKriVMq73fU7Q\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"BiVTReLObVv0Xy0GZgK6vg\", \"target\": \"nT9sAxVshwusku821xJacA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"0RJgJMYTybpAEfPhQMBfcA\", \"target\": \"6sR9fgv8OAB5rOrZEqkQqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0RJgJMYTybpAEfPhQMBfcA\", \"target\": \"vxral90saOW+72B9xdDaxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VwYIikUAhpUNQ87/LkyMjQ\", \"target\": \"Y+G3nXp82AZ2n2QjEgtncA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Y+G3nXp82AZ2n2QjEgtncA\", \"target\": \"pw1Urc5iVfS4y0uLi0eh1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y+G3nXp82AZ2n2QjEgtncA\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVDkPmeCBusht6HcouaOcA\", \"target\": \"Kii3w+OpNXvyJU7mN5vIeA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVDkPmeCBusht6HcouaOcA\", \"target\": \"OuGpotqT00tF+qVPIIKGsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANKXuYblah5Sw/0h5ImguA\", \"target\": \"g/R1uTvqZfKj5drIlOC1cA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g/R1uTvqZfKj5drIlOC1cA\", \"target\": \"jU2QIPHqLFIT2TilhstV4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bk5yEVdT2xlTxi/P+2TucA\", \"target\": \"aobPH6KJJmtGIvnX9Mes2Q\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"LRvRi7afvuVDGY7sRVUrvQ\", \"target\": \"tfw90wbD4QM/PpDbMLj6cA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KpuI9ZyZiW/bVAiiQ+AScQ\", \"target\": \"uavpFtRH+63SmDObMUHmlA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"ZTZGPr12qhPT39K3XPATcQ\", \"target\": \"oaZRRjQzjqiXM8H0BFXs/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mweUiILAkdAuuG85MxZPrg\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M+OEVS8+0HCG1kjM26aRsw\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UOJIpTijHzZsoiQk7xwzxQ\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IIyzz7785kpQU9iuynoZfQ\", \"target\": \"rc9cGHeo4/6jfGrrxTE3cQ\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"eJr98/w3TNjFYYEosmJmlw\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"R2NZRIws+qXh4yWI4/Iayg\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"klquQJ0Jl9OUmVEJRbqZcQ\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UH5IsiL9uFI65JlQVZqCpg\", \"target\": \"klquQJ0Jl9OUmVEJRbqZcQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UInmirHyfIxrNstUKFfycQ\", \"target\": \"f1/jPqUJ3XpKbRc+ulYwww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UInmirHyfIxrNstUKFfycQ\", \"target\": \"lEBrmAcP30d64NYUuN1gyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S0ly3S1BjPwd+7c5UZob/Q\", \"target\": \"UInmirHyfIxrNstUKFfycQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"YyQl1eJdobquxuw0oBQZeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"IMy6N7C+hCRMkf7TI+/alg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"0QxdZHIr10eUjJDIe0wOcg\", \"target\": \"pdr20bR379SCSQrEwtRfcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0QxdZHIr10eUjJDIe0wOcg\", \"target\": \"BmpnjQD2BpL61dVZceomzA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0QxdZHIr10eUjJDIe0wOcg\", \"target\": \"gn2FcY9/SrQeM6Fz2Rlu1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KvjMCetZz2V1Zmw8U58vnA\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qlJAbL1oAT+FwtNvVKFspA\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M68E+IUZic0BSnt35ytjsQ\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PXiKkcZA6z5z6mJS/wWizw\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gB2Nx5Ypjd0LXJEVbjiV8Q\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"XkYOl3ks1X2aSgiy+kcncg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"wQSV256APV//sMgwNlozcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CZUI2rMtgbqzvrBv4i+mnQ\", \"target\": \"wQSV256APV//sMgwNlozcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"wQSV256APV//sMgwNlozcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"q+Kqu3d3s3abK4QbQdM2cg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AF7PlX/ZzcbqbqppKNmq+g\", \"target\": \"q+Kqu3d3s3abK4QbQdM2cg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BmpnjQD2BpL61dVZceomzA\", \"target\": \"pdr20bR379SCSQrEwtRfcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gn2FcY9/SrQeM6Fz2Rlu1Q\", \"target\": \"pdr20bR379SCSQrEwtRfcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EZCqsbBxog066gDQ9no/nQ\", \"target\": \"fvLIVlHEmcDCxxbt9TS0cg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"7h9Fg1B195k0e5jbUGH+cg\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2a+0fWSXMHaZ2Hov9wcXcw\", \"target\": \"E5A0lMr/AClmZHz1S2qRtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"rDXjhpwwH1xRUqGN59Ikcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IKaWUv1v0QppVoq3jDu4xw\", \"target\": \"rDXjhpwwH1xRUqGN59Ikcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bDdU/0byIvyGkNcVnGcpcw\", \"target\": \"dX/TaBHa6EarDLBexxa0rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bDI9Og953C9gM6mQqrsd2A\", \"target\": \"bDdU/0byIvyGkNcVnGcpcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RXvDBU82q16Pw9nStf8zcw\", \"target\": \"jOEsAhonxltEPvV5C/3u0A\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"2fLiXD3Oi+ti5kp4tkA5cw\", \"target\": \"ooA+ANlPZHsTTGT2ER+g9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"H8DT+1a16Vl5KIs2uBGBcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"4iidBzFOnffMhDtuDP6vcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4iidBzFOnffMhDtuDP6vcw\", \"target\": \"xmCrALNj7UEjOj1fRMfp6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"GFLSiVWZGF82QrEToTu6cw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"72DKQaPaO96hRQn8R8y7cw\", \"target\": \"EOUXKxeOsabsew6mhTtFnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"72DKQaPaO96hRQn8R8y7cw\", \"target\": \"DXapr/UUm27Eyi8aPwWmtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"72DKQaPaO96hRQn8R8y7cw\", \"target\": \"7jyOu3xNAXh9K/BlvEEH+g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IvZE7F6iOLbqCW9HzCN7ow\", \"target\": \"oU7VQtJtQKoDumxH+arzcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Zitss1YyKE3+SZddwmmpQ\", \"target\": \"oU7VQtJtQKoDumxH+arzcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H07w+dzMUBY1Tb8aYnul6g\", \"target\": \"oU7VQtJtQKoDumxH+arzcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"heu1DWdPZrJDexWytU/+cw\", \"target\": \"hmL/3oVWDDWUMvAK5nRkyw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"HkyJqonOnWVZWmP5+cUodA\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"nOP4S0nytASLUL4bvWE0dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"nOP4S0nytASLUL4bvWE0dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"target\": \"nOP4S0nytASLUL4bvWE0dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nOP4S0nytASLUL4bvWE0dA\", \"target\": \"p3hHahidj29YCDuFAGKz9g\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"WcjDyJCvaIKJKcpprPVPzQ\", \"target\": \"hJkECJ2HLr0UQKVZy7OAdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"VtkRrPYhEQerNJ9qrGuGdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VtkRrPYhEQerNJ9qrGuGdA\", \"target\": \"XM0o8pv01Pfg5sFKZWng7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VtkRrPYhEQerNJ9qrGuGdA\", \"target\": \"idWTK0b8n3wVMKQEAfsV7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QZ213ed+FC+L24Iot9ZepA\", \"target\": \"zEUlGrpc2A8953RQVcuadA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LSmb834QdrGseWhJgOqB3A\", \"target\": \"zEUlGrpc2A8953RQVcuadA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9RMeAtKVYJRuO+o0RzSsdA\", \"target\": \"cbMQ/mrbiirmV3vrCBzVew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9RMeAtKVYJRuO+o0RzSsdA\", \"target\": \"Hun8mOh7jntBJ/XZPgESuA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9RMeAtKVYJRuO+o0RzSsdA\", \"target\": \"ZfGEvBA0I2qr5e3lQr9r3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"43LU6BgGpBXwOzgEUBR5gA\", \"target\": \"kp36vTNmEWarycaRrpDadA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"Z9dCRzGkhMPsUVW2ZxiKmA\", \"target\": \"cdtm284VM0XW/UkAuEnudA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R/bp+9HeU+cWRe6WcBIyuQ\", \"target\": \"Skc+Mdjm58tEJezDmDP8dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhnulpEPg5r8judUu1mQ0w\", \"target\": \"Skc+Mdjm58tEJezDmDP8dA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Skc+Mdjm58tEJezDmDP8dA\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H51lkjTGo0qqwQ7sEroFdQ\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3+LDwxMue3XlbersVpJYdQ\", \"target\": \"mPxvKKa8/IHMUITnO0yOiw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"FbZPBgWRbURp0aLL0Ad4dQ\", \"target\": \"KnQ1veuKdeMziZDzLYjmxA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FbZPBgWRbURp0aLL0Ad4dQ\", \"target\": \"oqa1czMKG9P74MWoG5iYyw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+546eOPGtXQD4e1DDKtkA\", \"target\": \"up9psA1MqaBe3U64WLyMdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pQPJ271k9bUoMV49g6IUhw\", \"target\": \"wUJVdpgD0n69bX8KbhSmdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"wUJVdpgD0n69bX8KbhSmdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mEZ6ATXL3dtFAQpxVo1GnQ\", \"target\": \"wUJVdpgD0n69bX8KbhSmdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HQ5PLb8USOfOCBh65VitdQ\", \"target\": \"gX5Pg2JVF4BoVkEjHysF7Q\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"v+ezx4sOZJKr7IIWcKfGdQ\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"TtIAgvnQmh/5T/BJWJrIpg\", \"target\": \"pTUiejm1wpNhKBFOzILidQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"pTUiejm1wpNhKBFOzILidQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"xj4TkhnOXAJQcnNkii8Hdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"target\": \"xj4TkhnOXAJQcnNkii8Hdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Nxf6Dl2TY1lZ+tAbB1jI0w\", \"target\": \"xj4TkhnOXAJQcnNkii8Hdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MsJMsnfAPOMulh3NVLhMgQ\", \"target\": \"xdb7EalTUhFl41uzMWYMdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OkkGhjLgMjJNiAwrkAWG0Q\", \"target\": \"xdb7EalTUhFl41uzMWYMdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M28X/3X9XhtMKEhs+6oP2g\", \"target\": \"koIW9iwU5uZe/6B7Rj8bdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Df0dOb7XVmqj7vlzc20y4A\", \"target\": \"koIW9iwU5uZe/6B7Rj8bdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D0PcKw6Dd0cPukvB5boldg\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"W9820uGVNNrihcyqAVBEdg\", \"target\": \"ofSL6fj3xO5/y83Iczo74g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7K8cFM5yp8Sw9JTNMhxteQ\", \"target\": \"n6dIyXbT6o6OBFNHTaJkdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iMlV9a1op1gNksg4eI2LqA\", \"target\": \"n6dIyXbT6o6OBFNHTaJkdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EARZoqhcKM63G99flR3A0A\", \"target\": \"n6dIyXbT6o6OBFNHTaJkdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"efFeB1sBxrXang8mpgSWdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"efFeB1sBxrXang8mpgSWdg\", \"target\": \"hM8yiIQ7+esJXnbg0aGGfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"hM8yiIQ7+esJXnbg0aGGfA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"pP36UZKw6kXrWeW9WIf6hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"rv9CCzm9yv3/yk7JavW0dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"wtljH1bOIKRg3l1tzqq9dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E1+WI9OuYxMGF9bKHnDWdg\", \"target\": \"Pp3qG3oSNALuUCiYsoPszA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kD0Flo+4T5a+cZgS2c3wdg\", \"target\": \"wvKwvzhvGsDMWXfZrSC8yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b0c1d26mJFr1jSCe2avt1A\", \"target\": \"kD0Flo+4T5a+cZgS2c3wdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Qxb7XcFglFwNdMpk/iung\", \"target\": \"qIj/x2KLaVJKHUV1/qf0dg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"2oENxDAeO3msBRvThWGNaQ\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WfCuGqTioXh9WvVwOoX3dg\", \"target\": \"pP36UZKw6kXrWeW9WIf6hg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AC/zkftBMezqxbBtqK7W1Q\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"target\": \"m+eJkUkV2waU1kg+shQUdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tRJwNHh9csMWQV2GvAFjdw\", \"target\": \"vtWfeIoNdt2OYL/M/Cg5qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xyt8E9Vly0yzp9vAum9d2Q\", \"target\": \"tRJwNHh9csMWQV2GvAFjdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4VZ10HmA8GdBbgDi2qppdw\", \"target\": \"O1RVC+p7aPV8bOsQ6e7fmQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4VZ10HmA8GdBbgDi2qppdw\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DiTNRzvHxe9KujjLA7t6dw\", \"target\": \"hvsaBnv2e212vOtI9S2HwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E0dFImBZ43XFNFgdbt+udw\", \"target\": \"EsqC+pAWQuGuXqcn4jiHtA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"loqw1+ffTyBWBziom2HExg\", \"target\": \"neUebpMrrYX3e5BjAvyzdw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"okyPJsnutK0dtiCAaMf5dw\", \"target\": \"raakfeUY5abYonuzW1G1gw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"/wQHIKlt0DWBWTIC94i1yw\", \"target\": \"6qLyFjJCSb5H4btWpQA2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6qLyFjJCSb5H4btWpQA2eA\", \"target\": \"VPe/WBhgMRDejNmchQGp8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6qLyFjJCSb5H4btWpQA2eA\", \"target\": \"U04BOACjO7txW+arJZbh/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"499FzlfKPXgh1Wu0DvB6eA\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"499FzlfKPXgh1Wu0DvB6eA\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"499FzlfKPXgh1Wu0DvB6eA\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pog8kgYwJacWPRhW1D2FeA\", \"target\": \"sBHxxv8TDcRka7cQD0Trnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pog8kgYwJacWPRhW1D2FeA\", \"target\": \"vDRBQBe5FIOF6UackNq59g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"00+hT3AJnNlMB1LEokJt+A\", \"target\": \"Pog8kgYwJacWPRhW1D2FeA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SZlsdfqqOK9cfUzLjo+PeA\", \"target\": \"UIT/M2z73PBRJtArUS6Z0A\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"C1sFWu3crVsj+1K+/+YOnQ\", \"target\": \"p4G/w3mNcdDVKXnZE6KmeA\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"9lplDmateBrR+nSpSFW2eA\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9lplDmateBrR+nSpSFW2eA\", \"target\": \"zhwkPccrVBCZlu4Vm/0dvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kii3w+OpNXvyJU7mN5vIeA\", \"target\": \"OuGpotqT00tF+qVPIIKGsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E44NS8+3z6vWzACYVC9pvw\", \"target\": \"ZZJDKMc/Vgqe1yTcnDfOeA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"96ej3oz+rX9j51QcdY4qYQ\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lkgw2dolfwaJQyooYYppfw\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I2xubWo3ds1VoHwxbTE8mA\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"target\": \"WIaFpd9DG91pxpUvdtrAuA\", \"metadata\": {\"weight\": 47, \"hover\": 47}}, {\"source\": \"gKSpp6rNIVNrN6mTLjkJeQ\", \"target\": \"z+9dH9mOBGtV12klfo+Inw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gKSpp6rNIVNrN6mTLjkJeQ\", \"target\": \"w3l9D6GAOJ9N0Lh9dUhQsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gKSpp6rNIVNrN6mTLjkJeQ\", \"target\": \"wJdydwMBpGIslyVgQAeX/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fk9ODZxwazvx3GbYrh77tA\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eKr9JVEDRy/wrfqS0kXGug\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7K8cFM5yp8Sw9JTNMhxteQ\", \"target\": \"iMlV9a1op1gNksg4eI2LqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7K8cFM5yp8Sw9JTNMhxteQ\", \"target\": \"EARZoqhcKM63G99flR3A0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kupGrdK+N6ZXbgVOCJGI6A\", \"target\": \"wxurhkLtKTUYBM/ptT12eQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"CLSpACpTt/VOa/AJlK2HeQ\", \"target\": \"RdxNld8Jy3rGVLi1TUSehg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CLSpACpTt/VOa/AJlK2HeQ\", \"target\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JHN1RRKwapnUWKCl3tIioQ\", \"target\": \"f+E8VIalbsW65FQq5Z+peQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ymZAIf0E6zclGzrp8HZOkA\", \"target\": \"z9SQ8Yfw19I4E86iEKyweQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P/7py6K8bExzhGEq33Cz+w\", \"target\": \"z9SQ8Yfw19I4E86iEKyweQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AzjFuM06Mlh2IO2j5mHRww\", \"target\": \"EyFl/rmMefeFDR3ZPbq9eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4KZxx1hXO+Ed7jMGA0XGeQ\", \"target\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"GrIMPukpxNchu/p5HFfdsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"AF7PlX/ZzcbqbqppKNmq+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NRnlOwVe+amgRrIlq5b9eQ\", \"target\": \"lu/KWGLuVxFjTOsFrAK1lQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"IMy6N7C+hCRMkf7TI+/alg\", \"target\": \"YyQl1eJdobquxuw0oBQZeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7P2CnvCzpPTOvj19qNgoeg\", \"target\": \"wm0P02CMDxZMbW0FmLdvkA\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"EmDKU/Z/uCBSXOGi++/1jw\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cq4YPHqoBPScATaVsSLepA\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ECrXW4TwKkiq0yhDSQsg1A\", \"target\": \"osRoK7EJhp/uYrUewqNieg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iZG0kK83mAwI7l40kRt+/w\", \"target\": \"osRoK7EJhp/uYrUewqNieg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"yJIJ7wkgqGm/P0x11wpmeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"yJIJ7wkgqGm/P0x11wpmeg\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1cFc0SNcjc0CTgGlR8iCeg\", \"target\": \"ZtDbhNjj6nHmZgeG3NXffA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"85AtVP7rVmeJpWphnOyLeg\", \"target\": \"R1mcTef8YzRX3Syfonbctw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"85AtVP7rVmeJpWphnOyLeg\", \"target\": \"jjUjCBpwp2t9aL7mqYzByA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"85AtVP7rVmeJpWphnOyLeg\", \"target\": \"VDofsUx8MXnX74THtK8+1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MN7xyy9w1gl/dMjSgcew9A\", \"target\": \"wnGOX2Ohd0MS41aad4+jeg\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"6lApIV2MCrZkWFZZJf/rlw\", \"target\": \"AiBoaQxP8X4ZGTH7DL/geg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AiBoaQxP8X4ZGTH7DL/geg\", \"target\": \"ifErMyAVjoUcEphHINV83g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"foEOhXqE/MBXNZlfAAZmmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"NqodyajY7zmF5d3Dvz7o+g\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"vb55pYg/AOTWKfMFbVM7ew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sa3pdyOhhVraK3JVehnezw\", \"target\": \"vb55pYg/AOTWKfMFbVM7ew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rx7rNseK4tgtTGeyt8759w\", \"target\": \"tMYQJ9GjNmp4dSHdunw7ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FYbzAow8vzQx9kBhUKjEBg\", \"target\": \"st4pZAhzBQKvT58+t+JCew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BOc1xHBOTdSOq7ejXwNe9w\", \"target\": \"st4pZAhzBQKvT58+t+JCew\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"191Ea/Jawze72ts2Yv9mew\", \"target\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"0+rvvOXJDQjr7VAdZsx7ew\", \"target\": \"EPqSyzWGXSd1L8fp3h/Uow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0+rvvOXJDQjr7VAdZsx7ew\", \"target\": \"9kcQWmhhEp5EveGkbaTs5w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zyhG4nujadKknUVwouJew\", \"target\": \"6PmG+WOw26Drh15tZVs1fA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zyhG4nujadKknUVwouJew\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1dO0VYT01GcVIwHyIyaOew\", \"target\": \"vWvb8EkPpgQ/qY160Axdig\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"CrXNrrAB8QyAfPxNLYKG5A\", \"target\": \"XJcqpIcy69YD5Aees5ecew\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"ca50n8gu7GeZJp8RRhk0fQ\", \"target\": \"oxHMD6A4LMydU8u3KxvNew\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"csgs7Ozxjop4sTVUvthD3A\", \"target\": \"oxHMD6A4LMydU8u3KxvNew\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"53NfwwUwa8dZBEjNAOYzgQ\", \"target\": \"itkq/JLDZHb1t8KZDUjOew\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"TmqXuZAq3jcxGFGloddE2A\", \"target\": \"itkq/JLDZHb1t8KZDUjOew\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"JS6lrSB32ihzfJ1UR7xw4w\", \"target\": \"itkq/JLDZHb1t8KZDUjOew\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"Hun8mOh7jntBJ/XZPgESuA\", \"target\": \"cbMQ/mrbiirmV3vrCBzVew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZfGEvBA0I2qr5e3lQr9r3A\", \"target\": \"cbMQ/mrbiirmV3vrCBzVew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BMl2T4INigVgCJo/c67Yew\", \"target\": \"NtNWeCyveb2+3kcn+atfmw\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"OHRmMm9MoQrhWchvhvLgew\", \"target\": \"kzUAXz7bYWQC2//Px2au9w\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"Q67ZHpSIqakfoFzSXXiTpw\", \"target\": \"eg9iTlZdkaMzSWySu9YNfA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"6PmG+WOw26Drh15tZVs1fA\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AOZ6RzZdEBiJwiF5Ba7v2Q\", \"target\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0UT4NffRLCfe0ltowmFefA\", \"target\": \"FqlSDenR1ixjbu54Vutxlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0UT4NffRLCfe0ltowmFefA\", \"target\": \"UX3YXL0WCL6Q9XNHkwlVwg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0UT4NffRLCfe0ltowmFefA\", \"target\": \"qCdC3QwLjV6GYNuI6++H3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pa0w5caR90aooguYcb2JfA\", \"target\": \"pZ0Nmh73qFc71JEMfbUOrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Pa0w5caR90aooguYcb2JfA\", \"target\": \"nZemi4L/TnUeky0vAf+euw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Pa0w5caR90aooguYcb2JfA\", \"target\": \"QH5V8o2q1ky152gZ2ALSxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"5gbSqQi7aHAiU/tNOC4hqQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LOSl8aE9nEoPZ/lS3NzlfA\", \"target\": \"MrbW31/GLJu0yonpmKadiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LOSl8aE9nEoPZ/lS3NzlfA\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2tErsV7PrIgWpryU+hSNmA\", \"target\": \"dQJc1MumJDhkpndnjaPvfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dQJc1MumJDhkpndnjaPvfA\", \"target\": \"kUSjYI/KovDOP2WNmP3Ppg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vO6fTiJWeBW8Ovt00gmfQ\", \"target\": \"7BPRKy4C5yefrrHo632x7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T03vnlhpoiPKW+i4msNpfQ\", \"target\": \"YIoy52TlWKoMfszHJpo6xg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/d5n79emA1gmv3Otf5+nfQ\", \"target\": \"40znihu3LPMCNVYXPwxqfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/d5n79emA1gmv3Otf5+nfQ\", \"target\": \"GigVNO8Fs+XEzbfNezzphA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9+UpStn+i+Z+AhdJplnWfQ\", \"target\": \"TDK1xqHDYg2OvbepjbOXyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wa79NCMryG4kb8KQd9T8ww\", \"target\": \"zSnw+wtmM+4SOAAYxPTifQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"j2Yua3a567JQqNUafYalpg\", \"target\": \"xrWu5aeUX9Np83JY2t36fQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hpWsF97VyPcb0sPpYMwZfg\", \"target\": \"oyFfCj3XEK2o5kEyMRZXug\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/+tEWbza2NMQ+0GqgeYlfg\", \"target\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/+tEWbza2NMQ+0GqgeYlfg\", \"target\": \"YSeBLUEND64U5fx2jVt88w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mm96JWwrURGUG7NvDFmFlw\", \"target\": \"XmgJm7ulMhmz4WN52CFLfg\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"yZj53swFyts7fWbyvsPafg\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"GigVNO8Fs+XEzbfNezzphA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"5xwY0szZnsiqQTwCAlnatQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"G5Uzi+Wb4tL6BY/O1Xt6fg\", \"target\": \"o98+gH/a/qF/Ai20CAdfwQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"BqVAoi3vwE1iMVUXAiWGfg\", \"target\": \"RzobwgLknSJL7QUthZojvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0mApAkzVCbCD0Bj419HRwQ\", \"target\": \"BqVAoi3vwE1iMVUXAiWGfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"r2Exk8lJPGlgrhGDuXbItA\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7DJ1W9saIcI9kuHgRJb9ww\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QnZalRKtW4dpzpj2+KDzyw\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"CdBQ4Oo4C+AcTcnfb21i7Q\", \"target\": \"N43YIvZdED2amMBcfCuvfg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/6AIdDDUcu7WAdktrPjYfg\", \"target\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"sg8bvnXSB8YcDFZaIVK+vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"qKdc7yaOfDNQ3Ioddlqw4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"Yxer1BQHw8ayI4coIJWc7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"X+JG0+UOYlsa2OzMINsA9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Z9n/kmsyq52cF3jYG9nZwQ\", \"target\": \"o2CKozplhIEEwPMwuJwHfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5RDTYztzVBjOOGuLnfYJfw\", \"target\": \"VYKTf58Y/3PKyKyODXVDnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5RDTYztzVBjOOGuLnfYJfw\", \"target\": \"7Puebud1EKEQH/Hg9h7hqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"jmHEm9bw2NfaqUmujDITAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9TKJBcJAUWfrnzzw+DnBwA\", \"target\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"zHfkNAUOGIbuOJss094Syg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"kx3qpS4wFrfj4AUSvD273g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"9V9YsR5v4buQUr0rs0XJ5Q\", \"target\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ev9lGJvuC87K+6RDWUCSlQ\", \"target\": \"xOvTZEopT/cbeclaxyRyfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DzAacUBELnXef51TNOgh/g\", \"target\": \"Z40sY+dpymk2VZt++4Odfw\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"S5qMzFe0Ze5xFvVuhWerfw\", \"target\": \"eI+GLSSPGpM0YzAynKwBiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8E4XB9kLowELIYjeWrbT9g\", \"target\": \"S5qMzFe0Ze5xFvVuhWerfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S5qMzFe0Ze5xFvVuhWerfw\", \"target\": \"TeLYnQ4sMDKjTiO/ulKS/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"09toO23JoZDM1eQNPC65fw\", \"target\": \"ORrKkkolP4HTZZkv84pXlg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"as1AvPNQ1U3vjyhWZXXbfw\", \"target\": \"hNssRjdsVPWPIXeaQ55ogw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ABNMMdHuqvyWm6YJkjwegA\", \"target\": \"LvyOqWz4vSyOBqiyi115/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRE0AvTcLVRIeRdSc98jgA\", \"target\": \"y+bS1hJzb7DfBIsDLnbkjw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"Snf67yCbEURPNP44X86EnA\", \"target\": \"mf/sQ2DSs0ULStqjM3UzgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SzOCs7c2CI/xNi9n68tDgA\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HxJ47i5/R/AOuO045E5Uow\", \"target\": \"SzOCs7c2CI/xNi9n68tDgA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"w/1S2jjYrh+t4IF1b9hDkw\", \"target\": \"xJiz3I1kHzo5E+2oylh5gA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NjVhdiC4UmNJkZgJOcpn6w\", \"target\": \"xJiz3I1kHzo5E+2oylh5gA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6RqXWDqyVqOwgmmmqWtA/Q\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KWWMpirq65RWiugWtSapgA\", \"target\": \"lL2Pcacb0dpYNhoRRP2kxA\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"6/iAnL6duYjqsI6xQ8y1gA\", \"target\": \"difYUkvCfs1qtJHSw4xdlQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"6/iAnL6duYjqsI6xQ8y1gA\", \"target\": \"xU481WCGtb6/SRex5nLP/w\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"PT8VvCe2+xblFYSQtULWkw\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I7yLN7s/WeYO56T867I33w\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MsJMsnfAPOMulh3NVLhMgQ\", \"target\": \"OkkGhjLgMjJNiAwrkAWG0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2FUWUn57d9WkTiJeBNJWgQ\", \"target\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2FUWUn57d9WkTiJeBNJWgQ\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3GtPhtMHl5X4mu4HSukWhQ\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dd7eefikHh3XghSL4DEArw\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O4Kq1VZwa577rE7s8Hg7yw\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"target\": \"x6k18KHyhLwDGjL9tJ1o8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"ul28Dil0Q9FmcB3y/n13gQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ul28Dil0Q9FmcB3y/n13gQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9xlQC1cVGGA060Zj7md5gQ\", \"target\": \"i1pSrAwriMYqECKfr6rHqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9xlQC1cVGGA060Zj7md5gQ\", \"target\": \"Nhtm09YjxapjrWGAhjE88w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KB7edPf4DYwXNqs6bTZ+gQ\", \"target\": \"wZ45Zz2j32LbhWQfJBEbug\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"CDlP7HSYXLmFaiyN5IqYgQ\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CDlP7HSYXLmFaiyN5IqYgQ\", \"target\": \"LTaDkNz2mZP7yiaR9otroQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XRXBu87tOvpos1ClJ6ajgQ\", \"target\": \"qiADwYywQwryVlnMOEJtiQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iQM2EjFgUk/83dUXxYq3lA\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cCAe70sXGQWYb/OuJM5A0Q\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j0LG2TBfq7KBMfdREM9O/Q\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kZJvIqFrqBfAlh05aHf6gQ\", \"target\": \"wWOB65sUCgBZmtKzkj+zkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kZJvIqFrqBfAlh05aHf6gQ\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3pBelMFKaSd2kR58ooYagg\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3pBelMFKaSd2kR58ooYagg\", \"target\": \"PsuUNN4RIxQKVESQlo8kqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/mv1CYmTOO/we7OK54bu1A\", \"target\": \"3pBelMFKaSd2kR58ooYagg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OEXsyZle1VYYL8uWesEogg\", \"target\": \"xRIZCO6SRfXLOE0+vaXu8Q\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"yUoUSvScDsB2mWYtcrHuhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"ezkzW2wuFCumEZ/ag1Q4jA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"APTLNvOckRQErfs6WtWkjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DfJsJTOjR+NX+PmleFU+gg\", \"target\": \"Ri+0Jy7gEDnrphImzdan6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DfJsJTOjR+NX+PmleFU+gg\", \"target\": \"u2at6zf9OYlpg8Ts5KiK/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"eEG8U3fO2muTeIM7JCQChQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"jx/g1L2CPlipWbkZRdDfoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"Rjs/zx9VNy2E4O4zgmDipA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"ez0QStHl7M10wuzVy4Le/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"46aKlHUWbk6T7f6FIOuAgg\", \"target\": \"bDci8BIt+vso5WXBUfZPhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KlNDoIf7EQkwaCaUTuTr6g\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+vQfJbdbrfUr7z53avxu8A\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lvHT9cqSms7vkDUQasI/pw\", \"target\": \"pUettJS0B/38xCxmsnnjgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/vCuxHcLbkZ1JpcEBDRrng\", \"target\": \"sG/dTTSTiFiKB3E24Q71gg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"sG/dTTSTiFiKB3E24Q71gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sG/dTTSTiFiKB3E24Q71gg\", \"target\": \"xcCz7UtKMNaCiBrVKD9kyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"MAk0Mt0s1sgQXxtIyhtorg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"PX0uMM9zOfkfjyAq6RMg9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m4x3ssVqGyiYYK9y9OQqgw\", \"target\": \"pkVC7mSNtEwUuxi1LLrwhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MNVcFZjSVu0z0JmNCIKavg\", \"target\": \"m4x3ssVqGyiYYK9y9OQqgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ecY7ptJ6w2uSJ548yiw2g\", \"target\": \"m4x3ssVqGyiYYK9y9OQqgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JZ/SP3mwjV46p9S5v9Mwgw\", \"target\": \"tag4XqPZ1ovS8C2YXBc2iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"n4RzrfSaNuZhs0nJCUy93A\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MFadgRNeoJXgS6129bqinA\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PsuUNN4RIxQKVESQlo8kqw\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/mv1CYmTOO/we7OK54bu1A\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tRTiUT2q7boLzf2OSBBKgw\", \"target\": \"uoq9y01xGOC/8QgrrSih6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SPnVEAItdFjPGaU3ufZSgw\", \"target\": \"oaRnYnhvO/FYGlQNqix0jQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SPnVEAItdFjPGaU3ufZSgw\", \"target\": \"xYqY6+nbtRNwS10J4bsI5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SPnVEAItdFjPGaU3ufZSgw\", \"target\": \"ghJksWt+/t2VYaCzm/Qs+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hNssRjdsVPWPIXeaQ55ogw\", \"target\": \"stZS7egMHVmBbshb4MJJxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hNssRjdsVPWPIXeaQ55ogw\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"+v4QPdKqrYzi44heM0Bfnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"Q4c13sv+X+/8COGPb4kfug\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"8GSDTYbw+zWL3W0uIt2tyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"cB4k/wvjlkEyABHiHtqigw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6W3ZK4Q6x6D3AFIqq66p5A\", \"target\": \"cB4k/wvjlkEyABHiHtqigw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Q/OMdobhpcAL8bNzgFA9A\", \"target\": \"gkzABWaToN7RXcv0rf/Ogw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"fzbpoYXB7t3QDILutC3sgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"jV2svVJMSyO+sjV8yHa59w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"813MKAEw6poYGq6K5JHtgw\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"813MKAEw6poYGq6K5JHtgw\", \"target\": \"o8icG02ljIVugMJm5yWV5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/a9HU16WypmlvPBzMlAP1A\", \"target\": \"BwE/g8Wgt3CdH7ApP+YShA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XHApgMrcyJKBXYHBHMgahA\", \"target\": \"dUP7AahGpOkDnORHDuEzrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XHApgMrcyJKBXYHBHMgahA\", \"target\": \"eRxPWjT//2+yUjJyJK+N7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"LlaVgzJQejxtWoYhKnBQhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LlaVgzJQejxtWoYhKnBQhA\", \"target\": \"MauRd73SPuaI/SsIA8Wh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GQFoIQ9wL/eZEy/wZDZehA\", \"target\": \"pvS7Yyc5fiUtVQLhhblzrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GQFoIQ9wL/eZEy/wZDZehA\", \"target\": \"luYw49ThXPmJHnnREMyJ3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4Z23zzva4euaLRBGl9VehA\", \"target\": \"pzrkk3XBurZ98mVCu1qMlA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"XIRrwR+1QmICAcgD/JfPrQ\", \"target\": \"icW9xFiUc3lytmLbrRx/hA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"qO5g9FMOF+kipT/dNQiJhA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"amTcXluqwFvvCKvAyPmXhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1c9qdGnhBhonltEFNBk+Vw\", \"target\": \"amTcXluqwFvvCKvAyPmXhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EADV6v6vusn6OhIrZeLLtA\", \"target\": \"J3mNS9kxe26Yi816SQSYhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3mNS9kxe26Yi816SQSYhA\", \"target\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3VKE9O3qoeFicDCMezlWxA\", \"target\": \"GigVNO8Fs+XEzbfNezzphA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"MNVcFZjSVu0z0JmNCIKavg\", \"target\": \"pkVC7mSNtEwUuxi1LLrwhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ecY7ptJ6w2uSJ548yiw2g\", \"target\": \"pkVC7mSNtEwUuxi1LLrwhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1lNjFkPQft6RLWOT4nThsQ\", \"target\": \"a1dPxbwXNfiONYdhIiQNhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a1dPxbwXNfiONYdhIiQNhQ\", \"target\": \"lajlfjCT3uep6UXeChc2tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"s/k+WFHQ5W9aHWgEMM8XhQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"AgQzuVP3IkMn/Ov+dswguQ\", \"target\": \"HxdyC6c/hI78wBGO81UahQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"target\": \"tPGsf2lNyo/YwJKk//Xn6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"We/y8kKlzK1iY53AKV7n0w\", \"target\": \"ZOXH4sYXO8arQZZMzYldhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34S4/qPUMbfIiVg4qPcv9Q\", \"target\": \"v6rEtj7X5ZMJKzcuXNJhhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m2zFkWR4ShPkpk94te9r/g\", \"target\": \"v6rEtj7X5ZMJKzcuXNJhhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/RiRhji19HANI2EN5WdnhQ\", \"target\": \"/VSjNgh6mEKfWVR2yolAmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/RiRhji19HANI2EN5WdnhQ\", \"target\": \"AAoMjjx0U7e1swPFxDgm1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ykn3g3QC0rQT10FGrwVuhQ\", \"target\": \"o5hJtnYCQOtp9KjOY9KKww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ek+y8Dv6MgaaKLo1u1FL4A\", \"target\": \"Ykn3g3QC0rQT10FGrwVuhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"target\": \"Ql8yEBGa1dW1kesET0c40g\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H2tvrSRDcqdQ6JvqtrIzsA\", \"target\": \"lDMw8TfqrCgHHpa7WOOYhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3OV376PlBaoLTaGgahvzzw\", \"target\": \"lDMw8TfqrCgHHpa7WOOYhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cNenZQZhgXXSMyomN525A\", \"target\": \"lojx+gIGkFIte9+XWtSjhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lojx+gIGkFIte9+XWtSjhQ\", \"target\": \"wXuMAPhfrJpUDgsV2ojS7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pn48zoj9DvyN79bhDOnBlg\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9GK18/slEWXsvIbLQoRFpQ\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"target\": \"cfyIaZvA2RoXHpxUpLCevg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Yh6K3qHkI0KgShV8S7RnA\", \"target\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"UJEqm8fIHoj/jzcSuPu0vA\", \"target\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"WFWWw2jQ8tZw5iRQSFNP8g\", \"target\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a4+4zao4O23gIPqZq/U2uQ\", \"target\": \"wph8PLZvlqygec2g0ZIIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OedMXRR6GuunUdLE7Eirrw\", \"target\": \"xu7RHPhCjrChYtE9udUIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"92gCbscZjdcp5CNIO3Cd8Q\", \"target\": \"xu7RHPhCjrChYtE9udUIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OKTk/onbe2oebWvf+eMKvQ\", \"target\": \"iweGkp1urOOrJF2VoRZNhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iweGkp1urOOrJF2VoRZNhg\", \"target\": \"mBGZFsgZHxC73vu9VcF0vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"7u2XSrqa0R2siPqtptBvhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Y2XOerDgiAo1WK6+LC/sQ\", \"target\": \"DOJ3OEl+wag5/2KgunNwhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9SJVLkajTeR4POfLrh2KvQ\", \"target\": \"DOJ3OEl+wag5/2KgunNwhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RdxNld8Jy3rGVLi1TUSehg\", \"target\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CqoXzfpGmzyXa3+Qf/nb4A\", \"target\": \"P8GKZk+TH9Fs7Xg2twighg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"target\": \"P8GKZk+TH9Fs7Xg2twighg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gbTBrGKYi9EDhNNNZpNjig\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNaUmTD9XiBvuQRyF+hEog\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uczLdKTFHKiIVXA00xpOqA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rdcU0794FRm7pA510uJR1A\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"Kbhv+XSqvDoMD13AFgLghg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kbhv+XSqvDoMD13AFgLghg\", \"target\": \"gg8gSKkaDuBXakmAggtwoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"pQPJ271k9bUoMV49g6IUhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mEZ6ATXL3dtFAQpxVo1GnQ\", \"target\": \"pQPJ271k9bUoMV49g6IUhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HxJ47i5/R/AOuO045E5Uow\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c/FYJcXeWjIHYyY6uVwytw\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"M/+0wuChC+y87lbk0nzOkw\", \"target\": \"o2bKAZR6aYNtSggKGSVPhw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"RrwVqK/gCHzzTMUpXDhB6Q\", \"target\": \"o2bKAZR6aYNtSggKGSVPhw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TjSWBmQ46SH6wSdnCe5g8w\", \"target\": \"o2bKAZR6aYNtSggKGSVPhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P/cyRrtKGbRESXIaIUDjuA\", \"target\": \"p3tybEF2UpLMP4gDgTlShw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"p3tybEF2UpLMP4gDgTlShw\", \"target\": \"w5zZguOil64NNAAULQPU1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GT+3GNQqNXtZnm7G2RrQkg\", \"target\": \"TodOSaFZiYOH8gsHOfldhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TodOSaFZiYOH8gsHOfldhw\", \"target\": \"UsfNfeGSTAvJn67KIlF1mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"target\": \"TodOSaFZiYOH8gsHOfldhw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1xvTFcy1sizvpJ70mbM5mw\", \"target\": \"8rzeo+EaMha06b3mPHaFhw\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"0sfaCWjVStturOAXfaGRhw\", \"target\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfaCWjVStturOAXfaGRhw\", \"target\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTBYEyX2QOB4W51Qglmqhw\", \"target\": \"Wu9y2fqKtlmpQc2y8UYBjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5cV0GYVtl1fh/DI7O5TBhw\", \"target\": \"CbimiVMxuT7pDVfyGcT4wA\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"ezkzW2wuFCumEZ/ag1Q4jA\", \"target\": \"yUoUSvScDsB2mWYtcrHuhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APTLNvOckRQErfs6WtWkjA\", \"target\": \"yUoUSvScDsB2mWYtcrHuhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q1bmXHnbChJuHI/NXkr5hw\", \"target\": \"s55XD/vCmr3qzY+v2f8CmA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q1bmXHnbChJuHI/NXkr5hw\", \"target\": \"zANMFHvfDmlolnGwAg6Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q1bmXHnbChJuHI/NXkr5hw\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8E4XB9kLowELIYjeWrbT9g\", \"target\": \"eI+GLSSPGpM0YzAynKwBiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TeLYnQ4sMDKjTiO/ulKS/w\", \"target\": \"eI+GLSSPGpM0YzAynKwBiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UvwgWrEVRAhIKi90bruZqA\", \"target\": \"wjjHMDS+oPWRjv725xcDiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"target\": \"wjjHMDS+oPWRjv725xcDiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WSYFeSzGx7LhdNhRlOcfzg\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"RY9tUqtEDoNHUOJc5OdH0g\", \"target\": \"fcFSRQ5f5s0sLFOMwmYsiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"fcFSRQ5f5s0sLFOMwmYsiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/mnxJbBXFRoJm1t8b+jupA\", \"target\": \"rtQmcpROqcblEzxYvOdFiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7LoXRQyN/WUR4uMbgJgsiQ\", \"target\": \"SVHlmn1r2bsNbwqdYmNdiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3IwN77QI+uhaJkmHUl9rA\", \"target\": \"SVHlmn1r2bsNbwqdYmNdiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"D/A8t0cmv3N4b8hDFamTiA\", \"target\": \"bwWPWOOz5uHVBrqvXEpW8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WlJWpfvSrkQ4/HN21rW4w\", \"target\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+XX4ipo2EDh1Vw861N3B7g\", \"target\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CgaMJFHu5XcA/PL4JD5Fog\", \"target\": \"MrbW31/GLJu0yonpmKadiA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"MrbW31/GLJu0yonpmKadiA\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S99EddmDGE9UZMtGmMlmtA\", \"target\": \"lmBINJAFKbwThqfREy6/iA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lmBINJAFKbwThqfREy6/iA\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XxgcW3KOOwIwxZx0l+ao7w\", \"target\": \"dlr2R44ETn3xtO4mnELFiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"ngOZ4hkbAkeH9Y4DYwuonA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"YcbMC6X7w3/ZbkRqHX2Z0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dJLrv9jk7ldi+jAgapgViQ\", \"target\": \"l2Q/oIYm74GDWIiJ0C031Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ELU9OZuGG7mvNMcFBlEmiQ\", \"target\": \"GfC4/nvDCu7sIotSuigJig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ELU9OZuGG7mvNMcFBlEmiQ\", \"target\": \"x+lG/kXRYYoK8naWzHS1wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ELU9OZuGG7mvNMcFBlEmiQ\", \"target\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7LoXRQyN/WUR4uMbgJgsiQ\", \"target\": \"J3IwN77QI+uhaJkmHUl9rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nQbo89EjFqendC5KI+7G5A\", \"target\": \"t4T3wmGipQx4c4H54HxOiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hu6/TvmZK8UiWeZ2sq0rnQ\", \"target\": \"MeX6DDISi5cEsrtmH2FZiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9GHwM2Vq3oyzQrCqt5ciQ\", \"target\": \"P3m65AjR0i02EPNbMQtNqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BzxNAuFyU0u79vAaduSj2g\", \"target\": \"N9GHwM2Vq3oyzQrCqt5ciQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KuY19ZpJ9pyPPEUlZSFuiQ\", \"target\": \"kdW6Be6DZ17iGHRc72n1sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KuY19ZpJ9pyPPEUlZSFuiQ\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5//GAO7hi2HIxr4ipP2KiQ\", \"target\": \"Fdf8JL4Yug+BKZDs2me/6Q\", \"metadata\": {\"weight\": 47, \"hover\": 47}}, {\"source\": \"HRfIlCMyjqCLOAdE7RCTiQ\", \"target\": \"JnvphYTbY0KnOUfWIwmU5Q\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"target\": \"OTbEze7cZgrnpeMfdrKLrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9mblVkBMEnDTwMTEpwh5sA\", \"target\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wDxYj7DcItX8ETmJuSwww\", \"target\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"target\": \"V8ksPyfaupEEfgw8dUrT3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"target\": \"felsQ1UdIZxKSSJZnxxh8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M28X/3X9XhtMKEhs+6oP2g\", \"target\": \"S1/wc5PKbfp7F7b/fdnEiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"S1/wc5PKbfp7F7b/fdnEiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"s3qP/XBlR8cGjJ1s3pX2iQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"AdIBqPKbWZ1ixMQ1vwkHig\", \"target\": \"AheEjR6jraasDVl7HQ0q6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GfC4/nvDCu7sIotSuigJig\", \"target\": \"x+lG/kXRYYoK8naWzHS1wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GfC4/nvDCu7sIotSuigJig\", \"target\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"IrD+kWAzYPM1bqM4hRxKpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"oUJBjKPhjCGJybVjNgQS5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"ZYIgMFU3qCf6nt4PPviA+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gbTBrGKYi9EDhNNNZpNjig\", \"target\": \"rdcU0794FRm7pA510uJR1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZK6YeSt70T5UPes8Tj68ig\", \"target\": \"eJfOofg/VkU3qdrZNfHY1g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aU4n2x4OPkJodk0KxvLYig\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"aU4n2x4OPkJodk0KxvLYig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R9reG8IlWahr3kb1OVLP5A\", \"target\": \"aU4n2x4OPkJodk0KxvLYig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aU4n2x4OPkJodk0KxvLYig\", \"target\": \"ya2o5/Rbz4LKL7fJB/aH8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L2474WrP9VHTSD5GjTHeig\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"atJoIn0HO1lHzEghWBykxQ\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J1g4OQI92LIr7/d8aT91+A\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+ZNPAfLfJ4E3rqIsOm3zA\", \"target\": \"LbpAv4RD73ZyJlP8Viv4ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EDp/Q2VCkQFOz0Iplgj9ig\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"RcN8xiuUhv2kkieL87f/ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RcN8xiuUhv2kkieL87f/ig\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2WuhL5d5X3mqFFxzpE4Siw\", \"target\": \"I2xubWo3ds1VoHwxbTE8mA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"1TyGrvk8SzqnwelG70YR5g\", \"target\": \"NWZIDb0hOgiqfdVF/d8Viw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"UWN2fvz659JGxKe9R1s92w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"b3tzFgpkl9x19kBFzaQ7iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V42JQgL0mjSlYRIaBgRe1w\", \"target\": \"b3tzFgpkl9x19kBFzaQ7iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"44m6YoyPWWMgqGmxbpPgww\", \"target\": \"AnqqRMSFJIdjqNTRgBhGiw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aZ94xZmWiU/6fGBxFlmAiw\", \"target\": \"rB3LvGy39n1F6H8VS0+2yw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"b5vs1fwa84/qK2dkqpWviw\", \"target\": \"qZrorchi2uCuBRCn13Jfjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANJirwOmc8zfhtEnI0IYxg\", \"target\": \"b5vs1fwa84/qK2dkqpWviw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b5vs1fwa84/qK2dkqpWviw\", \"target\": \"lI/eft/RzEEhzaigNox70g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l530hSXtzJ0CZmjTdke3iw\", \"target\": \"y4UnH6+f6jsDk+33vZLosw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l530hSXtzJ0CZmjTdke3iw\", \"target\": \"sg8bvnXSB8YcDFZaIVK+vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iImUqiPNPbAQT9k7P7UswA\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X+JG0+UOYlsa2OzMINsA9g\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ARtNFnnaQ6GXiln4T/Qiw\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HASgCJE/Y8hAt4Al2gtgnA\", \"target\": \"dhusCwGFABIyWc0D0Gbxiw\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"7WnSaJh7YZRbTu+sts30iw\", \"target\": \"cbBd9N1KLhKdXGpN8o10mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"34JltuWiUJGNu5yr30D4iw\", \"target\": \"sMVEDjYAoPnviUTBQoXGwA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"hGQwGeez8E92ZELQ24STqw\", \"target\": \"xmdiNDAZrXb96DU6G+YMjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"uXgRv+EhLbgeoK6stpaXww\", \"target\": \"xmdiNDAZrXb96DU6G+YMjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AYUi4YjxI3sjyh69XmUZjA\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AYUi4YjxI3sjyh69XmUZjA\", \"target\": \"EdXT816QZBfXGmfl0EIs3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APTLNvOckRQErfs6WtWkjA\", \"target\": \"ezkzW2wuFCumEZ/ag1Q4jA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PCycEl2GTWjoexk2Y2k+xQ\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"LTaDkNz2mZP7yiaR9otroQ\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cCAe70sXGQWYb/OuJM5A0Q\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B1+BS78xBzICq4XtMwmzlg\", \"target\": \"J8SjBvJCmPKOGw5leXvCjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J8SjBvJCmPKOGw5leXvCjA\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"Yz2zqM3ottFo16zf8VP/jA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"su6tafi80XozMhq/bUQQjQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"su6tafi80XozMhq/bUQQjQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8Ow4dabxHnWh03IJriBQjQ\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"oaRnYnhvO/FYGlQNqix0jQ\", \"target\": \"xYqY6+nbtRNwS10J4bsI5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ghJksWt+/t2VYaCzm/Qs+w\", \"target\": \"oaRnYnhvO/FYGlQNqix0jQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VwYIikUAhpUNQ87/LkyMjQ\", \"target\": \"pw1Urc5iVfS4y0uLi0eh1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VwYIikUAhpUNQ87/LkyMjQ\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"YiYxSGimBFYfI1PSZXEXpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"8wXFOFxvQzDP2XGsXPTJug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"zBYtW6j0BVVb87hgefOzjQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"EI1Bb3iYtYtE0JmXrzbhjQ\", \"target\": \"aobPH6KJJmtGIvnX9Mes2Q\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"STJBi8oPwc2BctwyE6sWjg\", \"target\": \"V0X2HIuhS0Ps7WOiYcGtmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"target\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"ANJirwOmc8zfhtEnI0IYxg\", \"target\": \"qZrorchi2uCuBRCn13Jfjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lI/eft/RzEEhzaigNox70g\", \"target\": \"qZrorchi2uCuBRCn13Jfjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EngmqUh4gyea4TS7OO9yjg\", \"target\": \"H4E5AoIqhz9wh2Kf55g9ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EngmqUh4gyea4TS7OO9yjg\", \"target\": \"T3l0u3ldOx9jtSUKFA+k7w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L5j3a+KEjVvruGkUNWZ0/A\", \"target\": \"kjHwdaup66csMOCG3ROKjg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"cH7hwoKgMaOJsY5D3kVnmw\", \"target\": \"jSRfMZy/4td8W+2rHbKKjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2kwqkjb20NhFUxxC1Tm51Q\", \"target\": \"jSRfMZy/4td8W+2rHbKKjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pM8Ak4i3j5S+FA0NY5Xmw\", \"target\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"target\": \"ThEEbPC4bj3+L1bdTz0Muw\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"target\": \"GyNDEvMoYuhGvUGJuPBrww\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"Iat6FJq/KuV7fq2K9pp+pQ\", \"target\": \"tSRwNpETY7Lfodms/g7djg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ehabqbw4OQYvR5CymUIO2A\", \"target\": \"tSRwNpETY7Lfodms/g7djg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5zGaSrpx8N1/soA9uEI+wQ\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KY7SDv55+3dlAQFrfzmPzA\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"W259ly2a2z+n+NPO0gK6zA\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"A6KU/qYQ98spmWi6/tD3vw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LjIJIsWr2kj76XygrEd5jw\", \"target\": \"mwwTgvkZoGiAGW1oNL+LkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LjIJIsWr2kj76XygrEd5jw\", \"target\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KcKrZ7VTELYyhbcB1CLjw\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"7KcKrZ7VTELYyhbcB1CLjw\", \"target\": \"pzrkk3XBurZ98mVCu1qMlA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"KSy197RLM9KmZkkCLRjLjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NyPKUTLm1jwUANNoIQoIqA\", \"target\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IOl829hIWWsSYYNSeFTw/w\", \"target\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EmDKU/Z/uCBSXOGi++/1jw\", \"target\": \"cq4YPHqoBPScATaVsSLepA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"EmDKU/Z/uCBSXOGi++/1jw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lds6GA7YRogoMFggLBQWqw\", \"target\": \"tT56pcNitJCJsWGjol9AkA\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"Po1F1afptpiGxInRk3sK+Q\", \"target\": \"tT56pcNitJCJsWGjol9AkA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"XqkxpgKTYkq8YB+YxQNJkA\", \"target\": \"XsBDmmlxAWof97JjGRrn4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLqvxwV6cLRbZzV/S6ce/g\", \"target\": \"XqkxpgKTYkq8YB+YxQNJkA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Tj1QpznbGlgcl36CONWxmw\", \"target\": \"ymZAIf0E6zclGzrp8HZOkA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"P/7py6K8bExzhGEq33Cz+w\", \"target\": \"ymZAIf0E6zclGzrp8HZOkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"8DMefT1OSM5d4f8qFzt9kA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"qrsjsWUS7pNe8p0FWJp9kA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"target\": \"mwwTgvkZoGiAGW1oNL+LkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U/fhW6N6mo7uVhkMHY58oQ\", \"target\": \"hdbnBT9t2fyEJTsarj2ckA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"hdbnBT9t2fyEJTsarj2ckA\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5mpJr5Sfqf4U8mpiqhJ7kw\", \"target\": \"s1Cp/MWD2ItYJBSRuQDQkA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"s1Cp/MWD2ItYJBSRuQDQkA\", \"target\": \"v0tsis6xbkZzzbvFeAXBpQ\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"yrXDjH5Y3GviTTblofUhkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eUllzuIfKGJ2N2NV6xyHmA\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"target\": \"tX0B7WfMBbtslZFb0IpizQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0cSWpJdc3Akr/N3MCnC8kQ\", \"target\": \"XEXq4+EHfYmpdLTINBij/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aobPH6KJJmtGIvnX9Mes2Q\", \"target\": \"nJ1II7w+Iraj91Z0NlS9kQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+jed9hT4PCjAgcZW7k3BkQ\", \"target\": \"rUmPGQXYQ01oDAOVKdAA1Q\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"+jed9hT4PCjAgcZW7k3BkQ\", \"target\": \"yh404VRB85qtz9EJBxRg5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1dkRbCWZ/SjfQ1T81WrCLQ\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"target\": \"qTBjKwL3Q0ouakCUEcv7lA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"AOZ6RzZdEBiJwiF5Ba7v2Q\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2LHI1R6SjODg/VQK0mSy4g\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbNmAv8ufmo03YB7SphOmA\", \"target\": \"vmO6Y+KYqGplY91Uh4otkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"odc3xGllAo0CLlmOvS30+A\", \"target\": \"vmO6Y+KYqGplY91Uh4otkg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1vnevzowu+uO6Fw7bnhVkg\", \"target\": \"YL7u6Ftz6it+yHZ1zOCPlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1vnevzowu+uO6Fw7bnhVkg\", \"target\": \"d+kA2No99UCwkK/diexNvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MD286c3p+1wLoCXHWXNekg\", \"target\": \"YXIjTDE6sJvw8Ctchvbo1w\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"KQfkDTCpE+13mWT03/1e9A\", \"target\": \"fVODvtXqbIUOpKDyQOeZkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B/w7bWKqIekFMsM0huAwnw\", \"target\": \"JWq9Z94VJ3KnTaJTzG6rkg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1mrWjfQ/EuoZlFn7YpeHug\", \"target\": \"aY38F1Hi68kXNObkjJy0kg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"GT+3GNQqNXtZnm7G2RrQkg\", \"target\": \"UsfNfeGSTAvJn67KIlF1mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GT+3GNQqNXtZnm7G2RrQkg\", \"target\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pcApyi0C63xSascCt1wrw\", \"target\": \"BP7DgF9QPNEPPG09OT3xkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BP7DgF9QPNEPPG09OT3xkg\", \"target\": \"qcL9ytXQGVZEzfmjivkj1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0itFxQ86XIpBvYaqkb0rmg\", \"target\": \"gCCFDdahxk6vhMbz8r0Dkw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"mJoSuOtK1NC4MEDpqX/U4Q\", \"target\": \"q1hIpuJfhsRHeVqWKvcwkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V39HVLs3gAxLStN2ZbhDkw\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V39HVLs3gAxLStN2ZbhDkw\", \"target\": \"usCj8EbPFiwMXDxfRmyWvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NjVhdiC4UmNJkZgJOcpn6w\", \"target\": \"w/1S2jjYrh+t4IF1b9hDkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"vRASEJmApd9kVKJdViBVkw\", \"target\": \"ze9Ajo7bQIrDR2Q61Vkf4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Vql7Mlk/vvWRyGpTsvc5w\", \"target\": \"vRASEJmApd9kVKJdViBVkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"coyiMRwZqLI5ZdJOoZeykw\", \"target\": \"txTXlRobNKgppIbcfQ7eng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1K11RU9HVahHEfRalAKE+w\", \"target\": \"coyiMRwZqLI5ZdJOoZeykw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wBpP5H4NcclejiuYfAsH3g\", \"target\": \"wWOB65sUCgBZmtKzkj+zkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2XgKwEYu+xnjpKxCZsXPkw\", \"target\": \"wq4jS3BQFR4Q7rCcHmTkqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2XgKwEYu+xnjpKxCZsXPkw\", \"target\": \"JGCy4XtfSbtbG7+nlw4CtA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2XgKwEYu+xnjpKxCZsXPkw\", \"target\": \"ohyQWYf1WFaWLvKobSUl7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hcPbiZB+EqklCe9mW0OlA\", \"target\": \"UInULZd3JLguWndjhxn7rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+ko4YzNx60P+2xghNILs2g\", \"target\": \"RFhRmMGBBEPoXxsodv9AlA\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"0OJgoCy/iRkK0pdhLZlDlA\", \"target\": \"H+It2SD4KPOr34Qht7sHsw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"CZUI2rMtgbqzvrBv4i+mnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"7ZFgUu+P8FAztoZ9QRHP1g\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/hoM3x9QDTrZMypNwFxFuA\", \"target\": \"stm5O3lA7Tm784XxpVddlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R0VympemlR1IDHdJpudzlA\", \"target\": \"rZGX7tiTLIup6b1UOtdDoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Df0dOb7XVmqj7vlzc20y4A\", \"target\": \"pzrkk3XBurZ98mVCu1qMlA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YL7u6Ftz6it+yHZ1zOCPlA\", \"target\": \"d+kA2No99UCwkK/diexNvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iQM2EjFgUk/83dUXxYq3lA\", \"target\": \"j0LG2TBfq7KBMfdREM9O/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0/q+Y7rDgFo0pIuKyYUPlQ\", \"target\": \"uob06uLmmmvE1HYJtEpitQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"target\": \"MVzuargAqRhEhH9ikjoTlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVzuargAqRhEhH9ikjoTlQ\", \"target\": \"p3DWdLyxBb2M4TQNRHwLog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Inzja40kbY1hPZTZY4WlQ\", \"target\": \"HKsqt90NplyxlSg6LyWgXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Inzja40kbY1hPZTZY4WlQ\", \"target\": \"L2tB1n1pURXM5J79efXQzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"target\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UqUz0DfWRXLEeSZqgAESpg\", \"target\": \"g7BClnljHMe7t/6wyE8flQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"P84WP5DJo+ONWAPG0AZm2g\", \"target\": \"a5nwKdFepWlrJsQ5uDgklQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"gRn+/8gycwpXhkV24zExlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"plg79dOordUluDMn0QerlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gaELPVErzQA3/wtTOOyoEQ\", \"target\": \"lu/KWGLuVxFjTOsFrAK1lQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TsBp/bUpbkbp5S1HqqD0wQ\", \"target\": \"wLHG6RNrCE68R009G9u3lQ\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"aMtomuAEu+BPWSpp9f67lQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aMtomuAEu+BPWSpp9f67lQ\", \"target\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aMtomuAEu+BPWSpp9f67lQ\", \"target\": \"pPmXlW2jutvNWlr49riJww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1qh/9xi047BN/ZyQnxclpQ\", \"target\": \"BrKEzkZl+oeSpp1lEm/RlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BrKEzkZl+oeSpp1lEm/RlQ\", \"target\": \"qIWaissn6WMBkpy7C7Z28A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"target\": \"LsulSTGDU78TB0LMXI5p6w\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1THmiGWj4fAKDegLXyKkYw\", \"target\": \"RsEcyneOsOsiTwGvQLs8lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RsEcyneOsOsiTwGvQLs8lg\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"70aYqyv9oeYGbgxhrjo+lg\", \"target\": \"75GLam0GiNbHonLi9pd/4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"70aYqyv9oeYGbgxhrjo+lg\", \"target\": \"M3mzslSGFKL89Hr6jj7Y9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7/bDMg+CgSBsSBxSvS5Jlg\", \"target\": \"VI26TkOgYTwvvdTzNROoRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7/bDMg+CgSBsSBxSvS5Jlg\", \"target\": \"ugotZicfaCxO89ywurXDgg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7/bDMg+CgSBsSBxSvS5Jlg\", \"target\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"ORrKkkolP4HTZZkv84pXlg\", \"target\": \"ywsnSvZ81TfCojhlHXfNow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"Y71JXwPp8BNr1I0/V5OLqQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"pnzwd6zA7P0nwxXLzK5elg\", \"target\": \"tK2U2fHkt+0EQze0I6bypg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eof82uJ+FIvvh5PWSJZF3w\", \"target\": \"pnzwd6zA7P0nwxXLzK5elg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"OgPOP14AXvUmCvsSYLWvbw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"H4uou4s2t0Bc4QGhTbWClQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"FqlSDenR1ixjbu54Vutxlg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"UX3YXL0WCL6Q9XNHkwlVwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"qCdC3QwLjV6GYNuI6++H3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"target\": \"bruKgrPMaRoxZXRCGPN7lg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ie2ipRiDjN8xf3W2LEwvqQ\", \"target\": \"bruKgrPMaRoxZXRCGPN7lg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B1+BS78xBzICq4XtMwmzlg\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pn48zoj9DvyN79bhDOnBlg\", \"target\": \"cfyIaZvA2RoXHpxUpLCevg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"target\": \"nIgO2SB8550Bt4Vxy2bC1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"target\": \"pTMybSugouBc0nZLe/g+2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ULTEbZ9xWlg84CiPGN5+mw\", \"target\": \"skKOLxoTeRihqW43U/fRlg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"A4GDSAA4mHRobOibWak3lw\", \"target\": \"O/m49NG+OSq7jZLZYq9E6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A4GDSAA4mHRobOibWak3lw\", \"target\": \"J9lncln67Ektsz70Jz1s+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/cpUGyXhspITs2LY9v5Vlw\", \"target\": \"AlCXpabHb9Fswv7L4U0Bwg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"/cpUGyXhspITs2LY9v5Vlw\", \"target\": \"hMo5gNfTHyj3lOFtJAwj3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V6ERLfamkqdKjMJZjCzbpA\", \"target\": \"Ye9kqudPVvs1pgQ+Rc9mlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N3NaYvG5XKOWroyCvqHesw\", \"target\": \"Ye9kqudPVvs1pgQ+Rc9mlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"PFQQFTwxo7gAyWxkxct3lw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QqHIoi1m6uc9wf5EvV+Hvg\", \"target\": \"nOU0JofEhmOu14V1gJCDlw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F6YNnTWNiTfmQxsIu88kzw\", \"target\": \"nOU0JofEhmOu14V1gJCDlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mm96JWwrURGUG7NvDFmFlw\", \"target\": \"aY38F1Hi68kXNObkjJy0kg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3AKM2uMCMBowR2F0SPaRlw\", \"target\": \"KnQ1veuKdeMziZDzLYjmxA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"wzAftnwgVrYbBviqd5/Nlw\", \"target\": \"ykhADMSBj+Y4ryryeKH5uA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1Y8y0BN2GoCseNXlNfRuQ\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lAzBrk9QGzuamP+I91TWlw\", \"target\": \"y49HkmqZsWWjpBlDEZSH9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E5HA829CEYozUMuleqDXlw\", \"target\": \"ErkzyHpetFkkZkbpDTyo0g\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"WFWWw2jQ8tZw5iRQSFNP8g\", \"target\": \"e3WYn1OreehJ2jK6m8rnlw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"6lApIV2MCrZkWFZZJf/rlw\", \"target\": \"ifErMyAVjoUcEphHINV83g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"s55XD/vCmr3qzY+v2f8CmA\", \"target\": \"zANMFHvfDmlolnGwAg6Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"s55XD/vCmr3qzY+v2f8CmA\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+z27pdsw9ziRL7iqccgQ4A\", \"target\": \"Rd6VoO4/XbQaKWB9PSUNmA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"TxvBO7S9xqj6+BYalhASmA\", \"target\": \"zEGSOiQBax3FfgouHdO4sg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"7PIjjpdWBiwyW4ixCoecyA\", \"target\": \"uEQS6OisQD2R3qCxp/0amA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"I2xubWo3ds1VoHwxbTE8mA\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbNmAv8ufmo03YB7SphOmA\", \"target\": \"odc3xGllAo0CLlmOvS30+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"mEZ6ATXL3dtFAQpxVo1GnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H7bKs0LhQYdNQKdCXn0esw\", \"target\": \"ZZkUAgtwxPW4ue5corBtmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bUm8ndxdpk/K+EnRPsxM3g\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"dOUE10943msMhph80cKHmA\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"LFxJPJkguSiDBpErKUVQ7w\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"Hz0AHLYlerZt66T6kgGt8g\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"dOUE10943msMhph80cKHmA\", \"target\": \"g8S6E8i7+yu/FTfvB/Hx+w\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"2tErsV7PrIgWpryU+hSNmA\", \"target\": \"kUSjYI/KovDOP2WNmP3Ppg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"RmT2VUCyBml1MSaKA8p4wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"dk6DwZwUWB0ANONnemeyxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"LFxJPJkguSiDBpErKUVQ7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"r+Can401isBVNhLUfNf6mA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"VzS48APpJ+ye48pIki2dug\", \"target\": \"ciq0t3t4csHVxzE/sPowmQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89IPAn8CnXhoaYUJqaDq2w\", \"target\": \"ciq0t3t4csHVxzE/sPowmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ODLi5SBwNecxZWLF9IQr5w\", \"target\": \"ciq0t3t4csHVxzE/sPowmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0njIZzPiH4ZQ3yQroYg0mQ\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"0njIZzPiH4ZQ3yQroYg0mQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"gg8gSKkaDuBXakmAggtwoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"pA2XvK7a3lX0398AJNHdsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"target\": \"wH4ggU+AeirvEleuA5QfsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lnJYySQ1nGxJ0pjUAVqwg\", \"target\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"target\": \"swp8nA1IIlV5HAlku2M7xg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6BlHPEWxjD7W/EXGlQA8/A\", \"target\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WZO2jjMqEHtvBBYv4mK8A\", \"target\": \"HZQlAg8cz/q0rps2qUxTmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"target\": \"UsfNfeGSTAvJn67KIlF1mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O1RVC+p7aPV8bOsQ6e7fmQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UZYf/isTOX6flCmlncT2uw\", \"target\": \"qZLjmxMAXLWRVlLqWDUUmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qZLjmxMAXLWRVlLqWDUUmg\", \"target\": \"rSNn/s244brhIQqf3dJ++g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1RXEjZUbzQlv/sF+7lcjmg\", \"target\": \"z74I6YSnuYW7jPenY9cb4A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0itFxQ86XIpBvYaqkb0rmg\", \"target\": \"sdoG82xh/hHfEnvybgiirw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"Ie2ipRiDjN8xf3W2LEwvqQ\", \"target\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"target\": \"nOXqrXnI0km8cLuIHTi4sA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"target\": \"JQF9x7q7foGGWrdOMznT3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WsOH4nJKjn2CB/iEjBAmg\", \"target\": \"6MOzNfjdUIZpKdO5Anh4sQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WsOH4nJKjn2CB/iEjBAmg\", \"target\": \"xRv17OpeWpPllhbTSqIRvg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/VSjNgh6mEKfWVR2yolAmg\", \"target\": \"AAoMjjx0U7e1swPFxDgm1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TsBp/bUpbkbp5S1HqqD0wQ\", \"target\": \"WsADvQUexHH226piNwJkmg\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"lsLKKaHMUiMrn6Zcpfq5yA\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N71NdD65ClhwHhQI+8WYmg\", \"target\": \"v+BYHiPvbunDD4aX0RIKrA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"AuPs8xIujNSsWmRixEWlmg\", \"target\": \"GESk4W8kGwn+vZG9m8yvwg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"2MVXq8uLdwsJtUdF9Q1v8Q\", \"target\": \"AuPs8xIujNSsWmRixEWlmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YHY1mcZdSq+ai241CebG2g\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"EdXT816QZBfXGmfl0EIs3Q\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fE6HcnXHKbr/hLbDIc0Yng\", \"target\": \"t1GlVhkS7JUA74ZRrn7omg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"t1GlVhkS7JUA74ZRrn7omg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iJ1xPU/tcdkxseJn58AG1g\", \"target\": \"t1GlVhkS7JUA74ZRrn7omg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+hre7gCyki7DbDJpF54Emw\", \"target\": \"iFSG61RwkUqV0uuBHuopKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"X5dyuyZq3obza709mjmSrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"8iXe8Rxo1mY3KR7nSIb99g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"n+6GBSL9r88/k1XUx+wJmw\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I7yLN7s/WeYO56T867I33w\", \"target\": \"IUCSc8JrpOX9siFlq4kTmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iKUw4Z9w96D6wQtz5rpe0Q\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gHJfO8svh+gm3L4Lwbss+A\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2kwqkjb20NhFUxxC1Tm51Q\", \"target\": \"cH7hwoKgMaOJsY5D3kVnmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FgYx9haFz7m/jpwNa8RpoQ\", \"target\": \"hWotMeINwSMsuStZDvr2mw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"Ifsn31I/BxOTLopfp+ELnA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KvjMCetZz2V1Zmw8U58vnA\", \"target\": \"qlJAbL1oAT+FwtNvVKFspA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MuG/pOvxWpq41fkfo/RhnA\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Snf67yCbEURPNP44X86EnA\", \"target\": \"pLV1jlhExMm2ObkllrzYzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IWWaiBa/jxZXyRG8dtN64Q\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1HD1hgKxdxjSKUE56jLcxA\", \"target\": \"HHkXkBT/54litQTh/BmLnA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"wUALAJQSrjDS74qqSXWanA\", \"target\": \"ylU7OoOB+lTyYkp2CvNrrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MFadgRNeoJXgS6129bqinA\", \"target\": \"uoq9y01xGOC/8QgrrSih6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q4EZp1LH5wD+RGBFB5XKnA\", \"target\": \"nSOPa8O+2GmeTc1ttJWhsQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"GFbM1Slh7/TpvUKSCABlsg\", \"target\": \"PTV3NYO5Go72N57MchX0nA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"pPmXlW2jutvNWlr49riJww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"XiC7FH1g29T+yR+JgexY0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RqAoRt/0ERHfq//jRwMCxg\", \"target\": \"qzKEcvwdglP92ELKCY0LnQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"EZCqsbBxog066gDQ9no/nQ\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"VYKTf58Y/3PKyKyODXVDnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DXapr/UUm27Eyi8aPwWmtA\", \"target\": \"EOUXKxeOsabsew6mhTtFnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7jyOu3xNAXh9K/BlvEEH+g\", \"target\": \"EOUXKxeOsabsew6mhTtFnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Sa3pdyOhhVraK3JVehnezw\", \"target\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EBC83dLOPfyZ6CgyHfS33A\", \"target\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"Nxf6Dl2TY1lZ+tAbB1jI0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MHef1Rs4455vMbiW11h8nQ\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"CZUI2rMtgbqzvrBv4i+mnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/244Bhg1oGurt3IyzwKYxQ\", \"target\": \"7b2RfDpW6ux8JFAhGs6unQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MLDh6bSGi6PSwySBAYEg6A\", \"target\": \"xdPBng9vNQkVKMcV3dLUnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IPgGExpgq0OmbJYAJoFSwQ\", \"target\": \"riYzk3GZZhFYefWPcH7rnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NI1i9raj16VxnRqrILX1nQ\", \"target\": \"ZhZVkXk5CkcWX5ZOOMDl8A\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"81f+4meCZgFFZXrAqsoIng\", \"target\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"81f+4meCZgFFZXrAqsoIng\", \"target\": \"tzXhsMltVbaVhDOHG+D51g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"fE6HcnXHKbr/hLbDIc0Yng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fE6HcnXHKbr/hLbDIc0Yng\", \"target\": \"iJ1xPU/tcdkxseJn58AG1g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cT8S0osGv1Yx07xujT9gqw\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O61qmbeWRO9KIoKQ+zT/2g\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"budk6JQt4FfXRTibqggC/A\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8JbF9ap+6Qhiv10Vnu/1uQ\", \"target\": \"SQ42EOxBogb4ZYJ+L6pPng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SQ42EOxBogb4ZYJ+L6pPng\", \"target\": \"fNckhogPhWH5mD6GuOx38Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/vCuxHcLbkZ1JpcEBDRrng\", \"target\": \"eicDvHwLimEpCXnCzX92tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/vCuxHcLbkZ1JpcEBDRrng\", \"target\": \"xcCz7UtKMNaCiBrVKD9kyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"rBRMKV18YrOSdA+WPlz6sQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+OvKwxEMof0l0CAhF/aWng\", \"target\": \"9YG8veR7SSp+tcshzpdFyw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"1K11RU9HVahHEfRalAKE+w\", \"target\": \"txTXlRobNKgppIbcfQ7eng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1z8Qkaup4fk+PHtX1lefqw\", \"target\": \"JwgF3TNIvzasqJg5v/oRnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JwgF3TNIvzasqJg5v/oRnw\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ds30CGNRVqJEmviGG5Mqnw\", \"target\": \"zhwkPccrVBCZlu4Vm/0dvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"n6Jg/gVSETfLFTXNshownw\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"3Jk8W0OQRDbN2UwPVWg3nw\", \"target\": \"PuWM2tbLWJu86IYmsZO2rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Jk8W0OQRDbN2UwPVWg3nw\", \"target\": \"w159VscyStCfuNPVMuBj8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lzH6Idq2FJnBDgEnU3CMvQ\", \"target\": \"pYz+Bh5cLgD4u37ISthJnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+v4QPdKqrYzi44heM0Bfnw\", \"target\": \"8GSDTYbw+zWL3W0uIt2tyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tNPQOgx1QK26mgnI8Z8woA\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HanEWAQVvp92czeWbS1z1g\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"w3l9D6GAOJ9N0Lh9dUhQsg\", \"target\": \"z+9dH9mOBGtV12klfo+Inw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"wJdydwMBpGIslyVgQAeX/A\", \"target\": \"z+9dH9mOBGtV12klfo+Inw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"Kah82w+S/u4725mVZgjAnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8Axznb3nRk/NprDR3QVNxQ\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6suweX+9HNHlp9Z3oC+26g\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sBHxxv8TDcRka7cQD0Trnw\", \"target\": \"vDRBQBe5FIOF6UackNq59g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"00+hT3AJnNlMB1LEokJt+A\", \"target\": \"sBHxxv8TDcRka7cQD0Trnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHMvV8h1aOg6zyB7wC1Lyw\", \"target\": \"pfw6cFOu3J2geMdfjUn5nw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"NB36u7yBXPdWuZqt6xVvoA\", \"target\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JtLiGrVMyc63d3hcU/qYoA\", \"target\": \"k+P5VcOaZtVHG+bmx8RO3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RW96NHBcsbA7UIpMwIlD2A\", \"target\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1CYNn0c/dSMW7awW+ln8oA\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"+VLSwuuXCcLbYcRl6hvWtg\", \"target\": \"JHN1RRKwapnUWKCl3tIioQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JHN1RRKwapnUWKCl3tIioQ\", \"target\": \"jl+NiomZ13QCt0ovVOEn1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"uorSEJpZYH5T0K4M6kopoQ\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"OkpZWWmaKw6a1Opzusv4pg\", \"target\": \"TsndRw82xTWIzr8YhLs7oQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TgyNoh7F93CAwdFFP4NWvA\", \"target\": \"TsndRw82xTWIzr8YhLs7oQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"target\": \"p3DWdLyxBb2M4TQNRHwLog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AlCXpabHb9Fswv7L4U0Bwg\", \"target\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"1WjfVSCScOY81ocVLG5loQ\", \"target\": \"POgaZ85u3n/rjr0nGAs1sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UH5IsiL9uFI65JlQVZqCpg\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"o8icG02ljIVugMJm5yWV5Q\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BZgWCBNlAJw0MgydF4igoQ\", \"target\": \"LW7RUp4WpBDp3yrEPkJV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iGZuWn8fO2VU2b3SzmHm1Q\", \"target\": \"jz9J9As81u6mk8QhToO4oQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"66eisG0zlPciGk3M3zXzqg\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"target\": \"vy0FMq4VqzAmN+15yanvrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rjs/zx9VNy2E4O4zgmDipA\", \"target\": \"jx/g1L2CPlipWbkZRdDfoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ez0QStHl7M10wuzVy4Le/w\", \"target\": \"jx/g1L2CPlipWbkZRdDfoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC76g5K8wAxvtnuruj3moQ\", \"target\": \"W5vKZMcezwUnhC22O8hM9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Xx2MKu3v/ca2MdNY+roAog\", \"target\": \"ufljtH2NardpOebKv0f7qA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Xx2MKu3v/ca2MdNY+roAog\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+SDMPAJnM5smfsvJtvU5Q\", \"target\": \"Rz7xx0+t9Pg49kUuRAUxog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rz7xx0+t9Pg49kUuRAUxog\", \"target\": \"aU8RxAk5dpz79KvpKp2W7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3CeBf9rBRUJJEl8QTxljpg\", \"target\": \"PXDoJ1dCnYjkw81cC+M2og\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5vOpbU7kc21gWGoUtU+Zyg\", \"target\": \"PXDoJ1dCnYjkw81cC+M2og\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"target\": \"QNaUmTD9XiBvuQRyF+hEog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"c9uAkbAxw0Nggb2/V2aNog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y/HkWrJ/U/Bxbdr7NgH3sw\", \"target\": \"c9uAkbAxw0Nggb2/V2aNog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"lGkpU3/jy713soPYjV1X4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EA8a4UBy2yScgW0M741Now\", \"target\": \"hKQRArjse+VYfHpwz8rFsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EA8a4UBy2yScgW0M741Now\", \"target\": \"yW3srrSTsNB2YpFbKqcI4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Zitss1YyKE3+SZddwmmpQ\", \"target\": \"IvZE7F6iOLbqCW9HzCN7ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H07w+dzMUBY1Tb8aYnul6g\", \"target\": \"IvZE7F6iOLbqCW9HzCN7ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TLca0dGaohU0qFvxCq6Dow\", \"target\": \"iL/YeEnkI5SD8xbo+fm5tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Lg63ntVVe/szA2gZJ1zcww\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2hqjTmv4MpPdFdsOI/OY1A\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTkc8476vXtqFJNyISCv6Q\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bp/cH5b+nBTbc8NY0tOcow\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bp/cH5b+nBTbc8NY0tOcow\", \"target\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Io8slHVhx1bwsIhDh76qow\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EjXIpdCPF+ANqs8VdEvHow\", \"target\": \"rKPsaIVig93SRx4sDucCrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"pL6nc0UXPCXIC0pq2oPHow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"EPqSyzWGXSd1L8fp3h/Uow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/CMsaEuGu3ULvTJxZ5L0ow\", \"target\": \"NEchXFq2tu9tS/CqClXlpA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/CMsaEuGu3ULvTJxZ5L0ow\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Jwoyvq6WKnel/GQ7emAxpA\", \"target\": \"Zvd//MafwP9D03olooL/xg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"Jwoyvq6WKnel/GQ7emAxpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"Jwoyvq6WKnel/GQ7emAxpA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dFfhM/U6nLNgdH6gFCxCpA\", \"target\": \"en3A02Nh2kO7dedg0Atp/A\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"IrD+kWAzYPM1bqM4hRxKpA\", \"target\": \"oUJBjKPhjCGJybVjNgQS5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QZ213ed+FC+L24Iot9ZepA\", \"target\": \"ja/6z8z+hVceS31PBR/prg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"LSmb834QdrGseWhJgOqB3A\", \"target\": \"QZ213ed+FC+L24Iot9ZepA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ol/sPUF0PGOJzBdNSDZypA\", \"target\": \"UqUz0DfWRXLEeSZqgAESpg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"5I/RxqOeoSM2vBkJK5xS0g\", \"target\": \"F4RdrvgcVitZblPtUleopA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DmkQdDNsbUmmMLkddnQT8Q\", \"target\": \"F4RdrvgcVitZblPtUleopA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N3NaYvG5XKOWroyCvqHesw\", \"target\": \"V6ERLfamkqdKjMJZjCzbpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"cq4YPHqoBPScATaVsSLepA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rjs/zx9VNy2E4O4zgmDipA\", \"target\": \"ez0QStHl7M10wuzVy4Le/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NEchXFq2tu9tS/CqClXlpA\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"2kIv0pAaPg+lCtT2KEMNpQ\", \"target\": \"IEvjI9DghsvK8rqHLAZbXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2kIv0pAaPg+lCtT2KEMNpQ\", \"target\": \"81+dJ4sVb2xeMz9c6Y6C0w\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1qh/9xi047BN/ZyQnxclpQ\", \"target\": \"qIWaissn6WMBkpy7C7Z28A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"xmCrALNj7UEjOj1fRMfp6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Iat6FJq/KuV7fq2K9pp+pQ\", \"target\": \"ehabqbw4OQYvR5CymUIO2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Zitss1YyKE3+SZddwmmpQ\", \"target\": \"H07w+dzMUBY1Tb8aYnul6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib9VmFqcj1KqsdJi47OwA\", \"target\": \"lBfTM/Eoboj+//nPf9zJpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jW7V0TO2LoawsPs4sppD9g\", \"target\": \"lBfTM/Eoboj+//nPf9zJpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"S9GxuuDfsxmez0fF6ZXspQ\", \"target\": \"xFsftJBws+g1Jr8swvaNwg\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"O2g6a2KDuS1JDS3sgw8Rpg\", \"target\": \"qmYAqbFNd0dcizzEDHwK8g\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"3CeBf9rBRUJJEl8QTxljpg\", \"target\": \"5vOpbU7kc21gWGoUtU+Zyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"zIMloag8qUWv9b91U8kx/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h+88TEDu69e76yofbFUC7w\", \"target\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WIaFpd9DG91pxpUvdtrAuA\", \"target\": \"gaZmAfZSztu7UH4Ebeydpg\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"TtIAgvnQmh/5T/BJWJrIpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"target\": \"tL8Oc0Tm9BAb2WU2KCrC8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eof82uJ+FIvvh5PWSJZF3w\", \"target\": \"tK2U2fHkt+0EQze0I6bypg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OkpZWWmaKw6a1Opzusv4pg\", \"target\": \"TgyNoh7F93CAwdFFP4NWvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3SYvUVF2OJ2vB3PYtfYK1w\", \"target\": \"OkpZWWmaKw6a1Opzusv4pg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"ZjABoGhX7FZn8b7BhsAApw\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"ZjABoGhX7FZn8b7BhsAApw\", \"target\": \"b5hCRi7CHNEVt5U7QPDY3A\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"kpts1Dex2CaSJVU8vdHE7Q\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"vK+M4+nZPjX8OiBYzftzpw\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"a00EzNZRMAgZFXLOFn2jpw\", \"target\": \"x9R/caK7uyrvHrdoHKuZqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AwPAXKgosGfgMgf3zbXw2A\", \"target\": \"a00EzNZRMAgZFXLOFn2jpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"Y/HkWrJ/U/Bxbdr7NgH3sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZPZgl2SWzho28I+rPXI85w\", \"target\": \"mcdYiG6tbhQYd9JW+Bfqpw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"SmyQ4JHD7+SEeH4ITXT13Q\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2H8qGfkq5FJFrwm6c6dCrA\", \"target\": \"g40CLRrS7h0f2KDwtQT/pw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3IwN77QI+uhaJkmHUl9rA\", \"target\": \"z1X5qAdMM3gOJSTmzr4HqA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"IOl829hIWWsSYYNSeFTw/w\", \"target\": \"NyPKUTLm1jwUANNoIQoIqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6sR9fgv8OAB5rOrZEqkQqA\", \"target\": \"vxral90saOW+72B9xdDaxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ESC0HxN2+18/OEVFpNgDtw\", \"target\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"target\": \"nRGKdSUZWr/RPx5aNVjOug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aNKtA7iq1FYEJ6bLoj+s2g\", \"target\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1IsjuWLfsWa9UTyKGAheqA\", \"target\": \"bBf/i8CpRj7/MKQGf3PcZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"owBvkBaADHkAd2yCVArPug\", \"target\": \"tDEpAM/I1tgxpqK7PolgqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"tDEpAM/I1tgxpqK7PolgqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XXYop3GzPhl9y1ZdDhb0/A\", \"target\": \"tDEpAM/I1tgxpqK7PolgqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"79ZVec1G5s0cAdAPbGh7vw\", \"target\": \"JFsTmh4xEffCA34Bwl9sqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8ay8Jub/jSdSgmTtDJKJxA\", \"target\": \"JFsTmh4xEffCA34Bwl9sqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0QIadK8r6HxNza6Ny+h+qA\", \"target\": \"i1YhmqPsCV5G50aFCHtD+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EARZoqhcKM63G99flR3A0A\", \"target\": \"iMlV9a1op1gNksg4eI2LqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PPSZWersRoR/CWl2j5xK2g\", \"target\": \"iMlV9a1op1gNksg4eI2LqA\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"AwPAXKgosGfgMgf3zbXw2A\", \"target\": \"x9R/caK7uyrvHrdoHKuZqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"target\": \"UvwgWrEVRAhIKi90bruZqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UvwgWrEVRAhIKi90bruZqA\", \"target\": \"WbIwPdpoyybcirBTSc677g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"target\": \"ufljtH2NardpOebKv0f7qA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WEDPEOtHnqBwx2mcLMq81Q\", \"target\": \"ne3mJ4vHAOk3E9IlDOcAqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ne3mJ4vHAOk3E9IlDOcAqQ\", \"target\": \"tEeYd2NRrb/Qi528JuN1+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"target\": \"rfBcOTnoGOUeM+2vyb/r1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qYX/hJ1iKWEAkuu9BK/y3g\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"target\": \"tNJL9Wj9xM3IyYmtsaGaqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"Xi2Gq8LSXq700zET/00Esg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BJbJMVQIq8Prb7R9KmqRVA\", \"target\": \"Gzzno6mZNPrH0I4Dvc8Dqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gzzno6mZNPrH0I4Dvc8Dqg\", \"target\": \"S5Ym/doKX4FTQNjJEvtd1w\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"BqRKgn0/xYzfcP4hJf0j6A\", \"target\": \"H+wkAyPI5bSb8Bb+y88Lqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HGOabZuyDH+NWvcni8fIww\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HR7xM2Gj14hzkZZsBPkwqg\", \"target\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HR7xM2Gj14hzkZZsBPkwqg\", \"target\": \"r1jCxdcEbk+++Tqa6evO1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HR7xM2Gj14hzkZZsBPkwqg\", \"target\": \"I3druwziJ9VuG37wcrxL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xyt8E9Vly0yzp9vAum9d2Q\", \"target\": \"vtWfeIoNdt2OYL/M/Cg5qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BzxNAuFyU0u79vAaduSj2g\", \"target\": \"P3m65AjR0i02EPNbMQtNqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBkQGjDrY3J6TAqmfqoqg\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"XM0o8pv01Pfg5sFKZWng7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"idWTK0b8n3wVMKQEAfsV7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JGCy4XtfSbtbG7+nlw4CtA\", \"target\": \"wq4jS3BQFR4Q7rCcHmTkqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ohyQWYf1WFaWLvKobSUl7g\", \"target\": \"wq4jS3BQFR4Q7rCcHmTkqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"66eisG0zlPciGk3M3zXzqg\", \"target\": \"vy0FMq4VqzAmN+15yanvrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XAkVRZGQ94PVTV2tBtEKww\", \"target\": \"lds6GA7YRogoMFggLBQWqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/mv1CYmTOO/we7OK54bu1A\", \"target\": \"PsuUNN4RIxQKVESQlo8kqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eaQCvP/g9Lp8gpeddHG80Q\", \"target\": \"kr7eqRr/BUSM/bBJyU9Lqw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"budk6JQt4FfXRTibqggC/A\", \"target\": \"cT8S0osGv1Yx07xujT9gqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+CMr8Kod/3DtGz10hUou1w\", \"target\": \"vtRcGf0ox/w9MXmiOqN8qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hGQwGeez8E92ZELQ24STqw\", \"target\": \"uXgRv+EhLbgeoK6stpaXww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1z8Qkaup4fk+PHtX1lefqw\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"fxKELfeW2mmDU7Q7omK/1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"zVKc5Pn9CM7t8WCnSUvK5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sl/6PUC3DqG7BDyiBcK1qw\", \"target\": \"iDYq70C/dqdj+xr2nJmR9g\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"dJz7k+gQ7Qf0mGFV/ibGqw\", \"target\": \"nWOJ3KQgDcbnanj95rwerQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I/O27hbD2ZdHsBYgQYVQ+Q\", \"target\": \"dJz7k+gQ7Qf0mGFV/ibGqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Nhtm09YjxapjrWGAhjE88w\", \"target\": \"i1pSrAwriMYqECKfr6rHqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MfCKTk9Vom6dfNioYSOwyg\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"NCsCA3Mx7MjieYPd2Ajzqw\", \"target\": \"if2uIOOYU984PgU0edHV/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7bnu1kXLvO3ak/QRfIZKsA\", \"target\": \"DQtysVHWuXq+1/X7I2IIrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8zxchcDckT1281RKsWBF3w\", \"target\": \"DQtysVHWuXq+1/X7I2IIrA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TH6yeUquRV0AJfYGgRgOrA\", \"target\": \"YsX1xoG1Sju1MtguNdicyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8FaU6NkPlqE9UM1z6SSa7w\", \"target\": \"N9riAVATY34jHBt90TQZrA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hy9P4OdYnBfVowDKaFx75Q\", \"target\": \"x3FbWy/+P9rQmLGTqJtFrA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"bHlug9FuJiSNo/yQC0I/uw\", \"target\": \"mlnfnafl4/KzepBre697rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NIRt1zkakp48vUkF6P18rA\", \"target\": \"X3iS8Dq3cq8It+tMVZGR2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"NIRt1zkakp48vUkF6P18rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"V42JQgL0mjSlYRIaBgRe1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"w159VscyStCfuNPVMuBj8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Uehy6uzLhVLgSMe+7wQ9A\", \"target\": \"/A9R0/Ho6dHtwDu+uzPzrA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"hpIBMXHnjQ7uDbzVv376rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I/O27hbD2ZdHsBYgQYVQ+Q\", \"target\": \"nWOJ3KQgDcbnanj95rwerQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NDxIQcbkXhjk9VSfn5PNrQ\", \"target\": \"NSXGAgdB/FWrkkUOClxL6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NDxIQcbkXhjk9VSfn5PNrQ\", \"target\": \"f1nU9QKf5radbUNVzHHM/g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EZ1Uxbd2GRWzoNGSb6zYrQ\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EZ1Uxbd2GRWzoNGSb6zYrQ\", \"target\": \"iFxq8blHvCT13CeFg1Uq9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nZemi4L/TnUeky0vAf+euw\", \"target\": \"pZ0Nmh73qFc71JEMfbUOrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QH5V8o2q1ky152gZ2ALSxA\", \"target\": \"pZ0Nmh73qFc71JEMfbUOrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UOJIpTijHzZsoiQk7xwzxQ\", \"target\": \"mweUiILAkdAuuG85MxZPrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MAk0Mt0s1sgQXxtIyhtorg\", \"target\": \"PX0uMM9zOfkfjyAq6RMg9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mblVkBMEnDTwMTEpwh5sA\", \"target\": \"OTbEze7cZgrnpeMfdrKLrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wDxYj7DcItX8ETmJuSwww\", \"target\": \"OTbEze7cZgrnpeMfdrKLrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8iXe8Rxo1mY3KR7nSIb99g\", \"target\": \"X5dyuyZq3obza709mjmSrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bDI9Og953C9gM6mQqrsd2A\", \"target\": \"dX/TaBHa6EarDLBexxa0rg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dd7eefikHh3XghSL4DEArw\", \"target\": \"O4Kq1VZwa577rE7s8Hg7yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dd7eefikHh3XghSL4DEArw\", \"target\": \"x6k18KHyhLwDGjL9tJ1o8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3u1aNsidFHNxWqY7cr0Mrw\", \"target\": \"gfaga5/1riUiud+prjow1A\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"Mr5ZLOeckoL3eb323kIQrw\", \"target\": \"eRiEisBwuuYVtjRVE01srw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mr5ZLOeckoL3eb323kIQrw\", \"target\": \"QTDz5cNKcULUP3W4OR7lrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dUP7AahGpOkDnORHDuEzrw\", \"target\": \"eRxPWjT//2+yUjJyJK+N7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"eRiEisBwuuYVtjRVE01srw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pcApyi0C63xSascCt1wrw\", \"target\": \"qcL9ytXQGVZEzfmjivkj1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"luYw49ThXPmJHnnREMyJ3A\", \"target\": \"pvS7Yyc5fiUtVQLhhblzrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"92gCbscZjdcp5CNIO3Cd8Q\", \"target\": \"OedMXRR6GuunUdLE7Eirrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ut/cnsk0Y1yuS0FtNMJBwg\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IpE9fW8G0hjWR87t7DYy6g\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kzv484GoYuRyMQRePjjFrw\", \"target\": \"s50Uk1EXn+VMFjiSTbju+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"VmQJ9aObfF5IkVpEqtWhtQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"pMfrOXJD/g4uwkoIH3y23Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"tmZPh+CU+d/qziRFshhf6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6BlHPEWxjD7W/EXGlQA8/A\", \"target\": \"wH4ggU+AeirvEleuA5QfsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3OV376PlBaoLTaGgahvzzw\", \"target\": \"H2tvrSRDcqdQ6JvqtrIzsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7bnu1kXLvO3ak/QRfIZKsA\", \"target\": \"8zxchcDckT1281RKsWBF3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wDxYj7DcItX8ETmJuSwww\", \"target\": \"9mblVkBMEnDTwMTEpwh5sA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZ9LMeimyr0YWPJ0IsRj3Q\", \"target\": \"gty2NExwPAbA4hpY0yCDsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gty2NExwPAbA4hpY0yCDsA\", \"target\": \"qzW5fohBXdhHaVpKw/wW9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JQF9x7q7foGGWrdOMznT3w\", \"target\": \"nOXqrXnI0km8cLuIHTi4sA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hKQRArjse+VYfHpwz8rFsA\", \"target\": \"oqx1FFwhXdoO45ug5RFXwg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"hKQRArjse+VYfHpwz8rFsA\", \"target\": \"yW3srrSTsNB2YpFbKqcI4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"lGkpU3/jy713soPYjV1X4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AVpxGqZaxxfHPgUcyd6ByQ\", \"target\": \"hp+xOt3OuPNBJk8fxI/+sA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TbsMX0lpn0ca3Jbu0oDj6Q\", \"target\": \"UikPyTd+/Ke0c929axUssQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HMLHgWFAdRQ52AVLutxJsQ\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M68E+IUZic0BSnt35ytjsQ\", \"target\": \"PXiKkcZA6z5z6mJS/wWizw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M68E+IUZic0BSnt35ytjsQ\", \"target\": \"gB2Nx5Ypjd0LXJEVbjiV8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6MOzNfjdUIZpKdO5Anh4sQ\", \"target\": \"xRv17OpeWpPllhbTSqIRvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"01UXGd9bYhs21penRlNEWA\", \"target\": \"0fIx7s6vQfun5SPejrOXsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"tL8Oc0Tm9BAb2WU2KCrC8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nSOPa8O+2GmeTc1ttJWhsQ\", \"target\": \"yBjDJxBREU7HWT+JDb5e7g\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"/c8KCzUU8taJjhXPkCEYwQ\", \"target\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"target\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"gHJfO8svh+gm3L4Lwbss+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RIFKqY1gLZsQf+i0P0a8sQ\", \"target\": \"TFGivlNpyvLKfXPJLvfz2w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Y2XOerDgiAo1WK6+LC/sQ\", \"target\": \"9SJVLkajTeR4POfLrh2KvQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1lNjFkPQft6RLWOT4nThsQ\", \"target\": \"lajlfjCT3uep6UXeChc2tQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xi2Gq8LSXq700zET/00Esg\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"Xi2Gq8LSXq700zET/00Esg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"target\": \"TaIDJ7W1q1QH0q5C5igLsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H0zZceW5WCpd+LBiEJSR/w\", \"target\": \"TaIDJ7W1q1QH0q5C5igLsg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JjdNS7oWxI3B316S3ohBtA\", \"target\": \"f/GYujqRnQGcFVM9i0k/sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TaylE4VzYn6LbkxhJyE6xw\", \"target\": \"f/GYujqRnQGcFVM9i0k/sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"w3l9D6GAOJ9N0Lh9dUhQsg\", \"target\": \"wJdydwMBpGIslyVgQAeX/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GFbM1Slh7/TpvUKSCABlsg\", \"target\": \"XiC7FH1g29T+yR+JgexY0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lmCvKTCRZckGDMS8v1XR9w\", \"target\": \"tGIgPpSLABsuqToLwtBzsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H5iyKe8krA9s/HxZ4QqUsg\", \"target\": \"hKruHz9YqELlEfdSiJ2BxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"target\": \"oWaLXqrYAk5+6M57vVGnsg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"SRrPV4MCz83nj7AW/W7jsg\", \"target\": \"z5jHSXyyrX6eDs+IbTIDxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BnBQ+tWug8T5kfIlBJf1yQ\", \"target\": \"SRrPV4MCz83nj7AW/W7jsg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"0mCvCIbvhxPg63+1mNGf1g\", \"target\": \"SRrPV4MCz83nj7AW/W7jsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1+u3lYKavPRkmHAzpIgisw\", \"target\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9to0DbLdWNSbnCui4ixJsw\", \"target\": \"aLmsFb/9Xz3M4vYoXwMK1A\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"GgV82+Xq+zos6WPdMZgduA\", \"target\": \"molkhmMlDjjrZGVrsSlZsw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"Q62OQKXh0F0IVOGJ/nxxsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g2//Y847Q3iYW+VM33+Ksw\", \"target\": \"xGYjzaN7LnHvZGeHcLTD0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"Iv1TVwC5a8DIOQwR/OdixA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"iLCK0JeQAw5z+bYWs/914A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"6sNhg3eDE+xREDSk2Lsh/g\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"9YW+EyakNJaWXROQrcCs7A\", \"target\": \"s6vux+bQZlYQHu1lY6zesw\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"iImUqiPNPbAQT9k7P7UswA\", \"target\": \"y4UnH6+f6jsDk+33vZLosw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kdW6Be6DZ17iGHRc72n1sw\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JGCy4XtfSbtbG7+nlw4CtA\", \"target\": \"ohyQWYf1WFaWLvKobSUl7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JjdNS7oWxI3B316S3ohBtA\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"eicDvHwLimEpCXnCzX92tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S99EddmDGE9UZMtGmMlmtA\", \"target\": \"q4j9p9AYZkwSfi18CCiuxw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"S99EddmDGE9UZMtGmMlmtA\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"xcCz7UtKMNaCiBrVKD9kyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hvQCUOVVWEUK6absn+CyQw\", \"target\": \"qObfBPdskZ/bdJxoI02JtA\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"CbimiVMxuT7pDVfyGcT4wA\", \"target\": \"b0ewlzQFu3FeVzdmxcmPtA\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"7jyOu3xNAXh9K/BlvEEH+g\", \"target\": \"DXapr/UUm27Eyi8aPwWmtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2hqjTmv4MpPdFdsOI/OY1A\", \"target\": \"iL/YeEnkI5SD8xbo+fm5tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTkc8476vXtqFJNyISCv6Q\", \"target\": \"iL/YeEnkI5SD8xbo+fm5tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FuObJ7wvtRHTUJ+/118I6A\", \"target\": \"gRbv2VG/VVde+RVrP7C6tA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"7DJ1W9saIcI9kuHgRJb9ww\", \"target\": \"r2Exk8lJPGlgrhGDuXbItA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EADV6v6vusn6OhIrZeLLtA\", \"target\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"WOAGhCZ/9WsKbxJgIjLktA\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Fk9ODZxwazvx3GbYrh77tA\", \"target\": \"eKr9JVEDRy/wrfqS0kXGug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Em0/xm51jDdmoLNgvocVtQ\", \"target\": \"cyZ5Pkk5ztmXzP61SVHf3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ez3647QFG0wP7lSVpXZhtQ\", \"target\": \"lI/eft/RzEEhzaigNox70g\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"/7xUbAUGrwmRAMULC1yWtQ\", \"target\": \"0xmP5QwkmCYPv1fHz5GSuQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"VmQJ9aObfF5IkVpEqtWhtQ\", \"target\": \"pMfrOXJD/g4uwkoIH3y23Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VmQJ9aObfF5IkVpEqtWhtQ\", \"target\": \"tmZPh+CU+d/qziRFshhf6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/bA9vVOFPjpACVu2Rb8t0w\", \"target\": \"27dEDmdur1Zy6ijanei8tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"uldXPY99tgYVFbIPI3L5tQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kUwvpSYL10SBe4X6VrMWtg\", \"target\": \"lnsdRCpfQaAQ/sNzVzgm3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AT3qrNx2AwwIt990BkGz8A\", \"target\": \"kUwvpSYL10SBe4X6VrMWtg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"WaZcaQu0SHC/mL5lo4gZ+g\", \"target\": \"kUwvpSYL10SBe4X6VrMWtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tMA277Q1r1Ou54ivdg0ctg\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LIeJPRncazKd2mFj47eC+g\", \"target\": \"tMA277Q1r1Ou54ivdg0ctg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"target\": \"jgf1Fvm43ANS9QKsAgIhKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L49IPcN2EYZ4HFO7oiofbg\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"Nxf6Dl2TY1lZ+tAbB1jI0w\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"giVUGbtk3+U2igTdOb/Ktg\", \"target\": \"sBo1DoKZGqK99B32lYnxuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"giVUGbtk3+U2igTdOb/Ktg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+VLSwuuXCcLbYcRl6hvWtg\", \"target\": \"jl+NiomZ13QCt0ovVOEn1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pQzwAom3bwB92iB1vA83zQ\", \"target\": \"uWIj0NtbQXifNLvogWFEtw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"earNIEZ8UXTMmJ3RjUfJ9Q\", \"target\": \"uWIj0NtbQXifNLvogWFEtw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R1mcTef8YzRX3Syfonbctw\", \"target\": \"jjUjCBpwp2t9aL7mqYzByA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R1mcTef8YzRX3Syfonbctw\", \"target\": \"VDofsUx8MXnX74THtK8+1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hun8mOh7jntBJ/XZPgESuA\", \"target\": \"ZfGEvBA0I2qr5e3lQr9r3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ANKXuYblah5Sw/0h5ImguA\", \"target\": \"jU2QIPHqLFIT2TilhstV4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EOtEMeyM3THrTQQBPf6EHQ\", \"target\": \"WIaFpd9DG91pxpUvdtrAuA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WIaFpd9DG91pxpUvdtrAuA\", \"target\": \"cB4k/wvjlkEyABHiHtqigw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GfyAUcsLzhVQEJH+riPw1w\", \"target\": \"WIaFpd9DG91pxpUvdtrAuA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WIaFpd9DG91pxpUvdtrAuA\", \"target\": \"k5j3NuK3cCPLJA+hN4xu7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"bknqOYp4Vp6LPwQl9RTauA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GFetumiakdGmPB9Is78i/Q\", \"target\": \"bknqOYp4Vp6LPwQl9RTauA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"wZ45Zz2j32LbhWQfJBEbug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6W3ZK4Q6x6D3AFIqq66p5A\", \"target\": \"87aowLoWEwEaBtKV8tbbuA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ImV0GwcN4e8Sal+/A7vuA\", \"target\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"C4iU4YuGrw2y7Sbvl5ANZg\", \"target\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"target\": \"RmJICEOyIUQIJLdMilO4hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"target\": \"PXWig76h6lkyHzjEZPWCrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1eT/3ivP8O9hgbVBkGCn1A\", \"target\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"Hleul4MTT22k47YOIAou6g\", \"target\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhnulpEPg5r8judUu1mQ0w\", \"target\": \"R/bp+9HeU+cWRe6WcBIyuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R/bp+9HeU+cWRe6WcBIyuQ\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0xmP5QwkmCYPv1fHz5GSuQ\", \"target\": \"hk5NHur/fG7YKEZ7C3poLw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"G0HrHwXCAPzndCm/PFCQ7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"GFetumiakdGmPB9Is78i/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1Y8y0BN2GoCseNXlNfRuQ\", \"target\": \"y49HkmqZsWWjpBlDEZSH9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9dW2s/cOhwx8l3hsM4ujyg\", \"target\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"target\": \"WNt4O+KU1Es4d3huye/V6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"sBo1DoKZGqK99B32lYnxuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8JbF9ap+6Qhiv10Vnu/1uQ\", \"target\": \"fNckhogPhWH5mD6GuOx38Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H4E5AoIqhz9wh2Kf55g9ug\", \"target\": \"T3l0u3ldOx9jtSUKFA+k7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ARQKqak9qdhuK77IC6wK9w\", \"target\": \"IQM9aWomrU3BEDzBJmVLug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"oyFfCj3XEK2o5kEyMRZXug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Magx3/mXuyBOVJWMpiCug\", \"target\": \"XQnT/93qqR6fC3YyjNB40A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89IPAn8CnXhoaYUJqaDq2w\", \"target\": \"VzS48APpJ+ye48pIki2dug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ODLi5SBwNecxZWLF9IQr5w\", \"target\": \"VzS48APpJ+ye48pIki2dug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aNKtA7iq1FYEJ6bLoj+s2g\", \"target\": \"nRGKdSUZWr/RPx5aNVjOug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"owBvkBaADHkAd2yCVArPug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XXYop3GzPhl9y1ZdDhb0/A\", \"target\": \"owBvkBaADHkAd2yCVArPug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"u9+k6jrH+a5b7/DyIKv50w\", \"target\": \"yQXzd9q77QzB5sQHjLLuug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CJLO+byWnEBKLAAlusiW2Q\", \"target\": \"yQXzd9q77QzB5sQHjLLuug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CYlt9MHJ4J2C75oqnK5X5Q\", \"target\": \"yQXzd9q77QzB5sQHjLLuug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KF5Dbm9cM754JWLe3NAXuw\", \"target\": \"zn3v+4i0Sftl8cICrCEv3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8FTWC1IrA7HALNPMFE0lwQ\", \"target\": \"BjSMBv/+daH7S+x5+4kguw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"target\": \"bXGpMEzkXLgG31dxALVXyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X6RG1Kq2oEGyIv4GTBqBuw\", \"target\": \"xkCQC4UuNjDrwruLbTgC9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W/xMOfCQTNSfmwDOYwfP+A\", \"target\": \"X6RG1Kq2oEGyIv4GTBqBuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2w6gQx/64oNIN6vPSJkq1g\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"QH5V8o2q1ky152gZ2ALSxA\", \"target\": \"nZemi4L/TnUeky0vAf+euw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"tzXhsMltVbaVhDOHG+D51g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CbkkslpELDMcPtNI+j667w\", \"target\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d+jDWSs2T6c8VQ8BAurfuw\", \"target\": \"voyyn7epEtNpu6dfPTzP0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OVRrkEa1Qc7kjpyFl1Y7xw\", \"target\": \"pbRt9R8ohIfiCOBUlIbmuw\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"UZYf/isTOX6flCmlncT2uw\", \"target\": \"rSNn/s244brhIQqf3dJ++g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X+JG0+UOYlsa2OzMINsA9g\", \"target\": \"sg8bvnXSB8YcDFZaIVK+vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"pPmXlW2jutvNWlr49riJww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"h50AAX/nuP5rE/W++FALzg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OKTk/onbe2oebWvf+eMKvQ\", \"target\": \"mBGZFsgZHxC73vu9VcF0vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"w3gOMqJKLa4A2gm6BXxyvQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"13NDORsV0NBpE78voJX8zg\", \"target\": \"9SJVLkajTeR4POfLrh2KvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jnYl9d4UZUupzck1m5Xl6Q\", \"target\": \"mgKH8XgnUmt990hciUKkvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X7rqqVePj30IkrUqT51Y2w\", \"target\": \"lohttfXsDNw5mIztqHPOvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PWbZ/xn60ZHGlQtufbHz6w\", \"target\": \"lohttfXsDNw5mIztqHPOvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"target\": \"QEht9uW34xjqCjer4vFM6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0da62zHZzY1jczHHQ9xvvg\", \"target\": \"vWy0S3JkUaZezamXjZGr3A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"hUqcqGPdKtI69S4i5SSFvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6YNnTWNiTfmQxsIu88kzw\", \"target\": \"QqHIoi1m6uc9wf5EvV+Hvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ecY7ptJ6w2uSJ548yiw2g\", \"target\": \"MNVcFZjSVu0z0JmNCIKavg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cCPz7uMZwRbQ3ki4aClO4g\", \"target\": \"jvBpNSOT9RtSIOth8nCdvg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"target\": \"z4I7L9x+TFuWyccuF1Dzvg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"target\": \"XXV6z+C21UqJfmBajVoCvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0mApAkzVCbCD0Bj419HRwQ\", \"target\": \"RzobwgLknSJL7QUthZojvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"79ZVec1G5s0cAdAPbGh7vw\", \"target\": \"8ay8Jub/jSdSgmTtDJKJxA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"XXYop3GzPhl9y1ZdDhb0/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NW0G+AcQre0eRgnoS0q2+Q\", \"target\": \"blzjPT0h8JvaEyoeHM0HwA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"9H4dfR82pf4C6zAX/Kw+wA\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RmT2VUCyBml1MSaKA8p4wA\", \"target\": \"dk6DwZwUWB0ANONnemeyxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LFxJPJkguSiDBpErKUVQ7w\", \"target\": \"RmT2VUCyBml1MSaKA8p4wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjAof1RFrIHVKY/0zm3bxg\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9TKJBcJAUWfrnzzw+DnBwA\", \"target\": \"kx3qpS4wFrfj4AUSvD273g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9TKJBcJAUWfrnzzw+DnBwA\", \"target\": \"9V9YsR5v4buQUr0rs0XJ5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O+V1EgwBZppu7hmH3BPzRA\", \"target\": \"sMVEDjYAoPnviUTBQoXGwA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib9VmFqcj1KqsdJi47OwA\", \"target\": \"jW7V0TO2LoawsPs4sppD9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D4IAw+FEySK1aJafWfn3wA\", \"target\": \"TCY550vk9vsifylpEHU9Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D4IAw+FEySK1aJafWfn3wA\", \"target\": \"dBYlPbB0AjpFSwNcAhiN1A\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"8FTWC1IrA7HALNPMFE0lwQ\", \"target\": \"iGZuWn8fO2VU2b3SzmHm1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"nuOysH+Mh2h6a7WWgG44wQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5zGaSrpx8N1/soA9uEI+wQ\", \"target\": \"W259ly2a2z+n+NPO0gK6zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+5Bq+EbFrtKUOjGDiim7zw\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eVwUCQYDufTRiMXd3gS21A\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"Na1dZK+2rK5VDYolao51wQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"JP3yhcbiuU7ifkiJqEgw6A\", \"target\": \"hL75IBvLbfMhsjCx+1t8wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"hL75IBvLbfMhsjCx+1t8wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"target\": \"r1jCxdcEbk+++Tqa6evO1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I3druwziJ9VuG37wcrxL7Q\", \"target\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"target\": \"x+lG/kXRYYoK8naWzHS1wQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"T7Bbq1+NkLmIA0EL6tys0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"GolMlD0lgvRnJJ+TP7Iy2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"IQOr8oWTplyMdqllGFB/7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"iJ1xPU/tcdkxseJn58AG1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"5qxQ32uiDgE9ejioUCp3+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IKaWUv1v0QppVoq3jDu4xw\", \"target\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IpE9fW8G0hjWR87t7DYy6g\", \"target\": \"Ut/cnsk0Y1yuS0FtNMJBwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UxZn34sPt6+EihD5AG9Y1g\", \"target\": \"orA6XdY3CKntCIC/xzdPwg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"UX3YXL0WCL6Q9XNHkwlVwg\", \"target\": \"qCdC3QwLjV6GYNuI6++H3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/lnJYySQ1nGxJ0pjUAVqwg\", \"target\": \"swp8nA1IIlV5HAlku2M7xg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HA63TWBU2S0+FaXntjCnwg\", \"target\": \"jlP5eV/l50w203+qmY934Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HLd4WCwL+lRguGJbPDTi2w\", \"target\": \"iLKRP/GmekuHICjQTLXOwg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GcCIv1eDsDxcnxww5BRk8A\", \"target\": \"iLKRP/GmekuHICjQTLXOwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"f1/jPqUJ3XpKbRc+ulYwww\", \"target\": \"lEBrmAcP30d64NYUuN1gyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"S0ly3S1BjPwd+7c5UZob/Q\", \"target\": \"f1/jPqUJ3XpKbRc+ulYwww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JI8jNOmizj1lO3NTr2Nbww\", \"target\": \"R6b4LdI57QEcTyehRwfo4Q\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"KUKx56eLLLckf6HhvAhzww\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Ek+y8Dv6MgaaKLo1u1FL4A\", \"target\": \"o5hJtnYCQOtp9KjOY9KKww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AohI5f/BkoR8P/9gC7RUzw\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O16OCVveV3Dc1jkzE8jn0w\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"mm6xCo8N6tJFTZMAe4VI1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6U2XGydHRg50tnJ3g1rb3Q\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HGOabZuyDH+NWvcni8fIww\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"eYfvAr+UfKq1aCZN2x4y6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"Lg63ntVVe/szA2gZJ1zcww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"e+iMIH93HMrK3sBL12/1ww\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"Y6tU5iNEDLF6oW77OnXC0g\", \"target\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AohI5f/BkoR8P/9gC7RUzw\", \"target\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"stZS7egMHVmBbshb4MJJxA\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Iv1TVwC5a8DIOQwR/OdixA\", \"target\": \"iLCK0JeQAw5z+bYWs/914A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I3Qv6bMIp/IVjYk8GS9zxA\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"VQXF0znq/wL8TubQs93FxA\", \"target\": \"az7UoLqYUBxUBYpQRZ+k8A\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"KnQ1veuKdeMziZDzLYjmxA\", \"target\": \"oqa1czMKG9P74MWoG5iYyw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7B3pLJTfNbhA56BMabUB5Q\", \"target\": \"FP3VoLmMd2eZRBobuqshxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8T1982ymi8ae9f3QJo87xQ\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6suweX+9HNHlp9Z3oC+26g\", \"target\": \"8Axznb3nRk/NprDR3QVNxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J1g4OQI92LIr7/d8aT91+A\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bkqQRjjzTNbHJ7cOrH+65w\", \"target\": \"tbqMBPMzgCXgvALU4kS6xQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"1qJ9URMSFa7XqetYOgjcxQ\", \"target\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"0mCvCIbvhxPg63+1mNGf1g\", \"target\": \"z5jHSXyyrX6eDs+IbTIDxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANJirwOmc8zfhtEnI0IYxg\", \"target\": \"lI/eft/RzEEhzaigNox70g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4hgZUR2UUQ4ngEjM6puM6g\", \"target\": \"m/AwurfNm2p5UsvVvLsnxg\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"C/zXXUs47IAYnHl6zBhMyg\", \"target\": \"QAZy+ZyHzSGTg21oZbtFxg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"7+NijVvh9cRhrJcDfe+sxg\", \"target\": \"MVxpMOd/YHo81uKU8J1D2w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"Zvd//MafwP9D03olooL/xg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"Zvd//MafwP9D03olooL/xg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m3X7KkUEpv9j4UzhkoMAxw\", \"target\": \"pQzwAom3bwB92iB1vA83zQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"2CCWZd0r/q3XhcVZAzQo1A\", \"target\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"51sIXvwdb1xZwp6D19vL1w\", \"target\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"target\": \"l5XDIvoOxlEM5vDuvZb/8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"y64aPRdjU1N+2Egc1mEeyg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"2LHI1R6SjODg/VQK0mSy4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"AheEjR6jraasDVl7HQ0q6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LFxJPJkguSiDBpErKUVQ7w\", \"target\": \"dk6DwZwUWB0ANONnemeyxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y8BKm9HLQuNZAEIUJgv30A\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LIeJPRncazKd2mFj47eC+g\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QmC0hKSul+B5fhM04xGv/A\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S0ly3S1BjPwd+7c5UZob/Q\", \"target\": \"lEBrmAcP30d64NYUuN1gyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YoguZr7Ht5VTBpiOW2uiyA\", \"target\": \"mcallpj5pQ42vQPCDSTb3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FbaFWKwjLhE68HJWltWqyA\", \"target\": \"Vt717tNeUr26Ht7uz3W6zA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9fU7qlQhRR5rhI7dOB+uyA\", \"target\": \"fOMm6Ou37Z2W7aJSC+0sUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9fU7qlQhRR5rhI7dOB+uyA\", \"target\": \"gvILdsGxoPhTFjabAP3M1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VDofsUx8MXnX74THtK8+1A\", \"target\": \"jjUjCBpwp2t9aL7mqYzByA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b2mBfHZKw/7Wv719ImjRyA\", \"target\": \"yXEVx+7BMBM9SJGPv2+Z+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"1iphEBC8RewWM71m3w1mzQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"3JHFRc0psawMPSLp7G5OyQ\", \"target\": \"U3v3OOBqhXPTXAhsLPhL9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"91ATqeatEnZnOl7GYatz7Q\", \"target\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"yh404VRB85qtz9EJBxRg5g\", \"target\": \"zdLzAZO8WpWxWxG/u35/yQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"lve+wd/wKPyn3CsMesLZyQ\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lve+wd/wKPyn3CsMesLZyQ\", \"target\": \"yA42YJjumsokSSLXucqU6A\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Q+4EDqYZPaAgWbykhywf8Q\", \"target\": \"lve+wd/wKPyn3CsMesLZyQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"q/LU05EL2cNf9O5N1wNCyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"RNWd8UAwtRy33uFufI5/yg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9dW2s/cOhwx8l3hsM4ujyg\", \"target\": \"WNt4O+KU1Es4d3huye/V6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"dGVXj5FGpjyorj3Kj9HDyg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"dGVXj5FGpjyorj3Kj9HDyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O4Kq1VZwa577rE7s8Hg7yw\", \"target\": \"x6k18KHyhLwDGjL9tJ1o8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"F5YJ1jose1f1KbLOiCJJyw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F5YJ1jose1f1KbLOiCJJyw\", \"target\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/wQHIKlt0DWBWTIC94i1yw\", \"target\": \"VPe/WBhgMRDejNmchQGp8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/wQHIKlt0DWBWTIC94i1yw\", \"target\": \"U04BOACjO7txW+arJZbh/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b0c1d26mJFr1jSCe2avt1A\", \"target\": \"wvKwvzhvGsDMWXfZrSC8yw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/EfEBO3c5f0+d80AqXQBzA\", \"target\": \"csgs7Ozxjop4sTVUvthD3A\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"BmpnjQD2BpL61dVZceomzA\", \"target\": \"gn2FcY9/SrQeM6Fz2Rlu1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8fpnzCB7pOsbIrJNam9zg\", \"target\": \"gbLXXnl675hHRZYXyW0pzA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2WZ+QLWazLW8nSczXoOlzA\", \"target\": \"MtpjJ6XcmH6qPnAjbjY75A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IWWaiBa/jxZXyRG8dtN64Q\", \"target\": \"pLV1jlhExMm2ObkllrzYzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"X2tMjZDabILeP8FJTJQK2Q\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"earNIEZ8UXTMmJ3RjUfJ9Q\", \"target\": \"pQzwAom3bwB92iB1vA83zQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"49HrxjOtiYvNOAd8M5Mqzg\", \"target\": \"pegI6X4Bu+bbTMgjISqE3Q\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"NbdJmnny6VadnVE/Q5dqzg\", \"target\": \"Qy0hhxrb9Nmf8+xAUfVp/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"265feNjxTzIMZ8+BKwy4zg\", \"target\": \"cCmG6cRvUcKWgi1UAH9g0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sbcB52eztAxnw3afxfrTzg\", \"target\": \"zA4lrOvjqTMBfQi5rlOm0Q\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"iK9ayHc/AXaY84l64fm17A\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CIEk6rJ4pzoVNKDg6ks8zw\", \"target\": \"ZzXKeIKTxEylrN333Zct1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"target\": \"zANMFHvfDmlolnGwAg6Hzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PXiKkcZA6z5z6mJS/wWizw\", \"target\": \"gB2Nx5Ypjd0LXJEVbjiV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+5Bq+EbFrtKUOjGDiim7zw\", \"target\": \"eVwUCQYDufTRiMXd3gS21A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EBC83dLOPfyZ6CgyHfS33A\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UIT/M2z73PBRJtArUS6Z0A\", \"target\": \"s1Cp/MWD2ItYJBSRuQDQkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UIT/M2z73PBRJtArUS6Z0A\", \"target\": \"zxkZsCPuXUWUsF7xYiXRsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UIT/M2z73PBRJtArUS6Z0A\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YcbMC6X7w3/ZbkRqHX2Z0A\", \"target\": \"eaQCvP/g9Lp8gpeddHG80Q\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"IQOr8oWTplyMdqllGFB/7g\", \"target\": \"T7Bbq1+NkLmIA0EL6tys0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BA9DMxaYbrqyBsAxrrvV0A\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QmC0hKSul+B5fhM04xGv/A\", \"target\": \"Y8BKm9HLQuNZAEIUJgv30A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JARaDTo+BmuRHMBD03pY0Q\", \"target\": \"wVc80t3sNC598XKNFbIp/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LAnZCtjOl2bhcv2vZlGOQA\", \"target\": \"eaQCvP/g9Lp8gpeddHG80Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PyEwC8P2XWgBNOn//O9W6g\", \"target\": \"RGjlmlPAkXa/tI12Y6I10g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLTeNonoRsfy6pTZgfM80g\", \"target\": \"S0cvWu7kth8Hv99QFfiW4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9pzXh+m3X+Q11g+VAoQ6A\", \"target\": \"DLTeNonoRsfy6pTZgfM80g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"RY9tUqtEDoNHUOJc5OdH0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5I/RxqOeoSM2vBkJK5xS0g\", \"target\": \"DmkQdDNsbUmmMLkddnQT8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"nrmey3lo5Rp0gzeNirbf+w\", \"target\": \"skeECVWpQl8ufmsJtEK60g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"kR1PDrgpN92D90eUdVDO0g\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"v4fMIOFhdBvfKZW3Xyfg0g\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"9kEfT969BAAcMsgbk9Cq5g\", \"target\": \"MG00eunxEmm1lYvM3jWA0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MG00eunxEmm1lYvM3jWA0w\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hKdbfGbrvmmwC8+BbLia3g\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5md/MVOxk6Lw2Tjacf6D0w\", \"target\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhnulpEPg5r8judUu1mQ0w\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"jV2svVJMSyO+sjV8yHa59w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O16OCVveV3Dc1jkzE8jn0w\", \"target\": \"mm6xCo8N6tJFTZMAe4VI1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6U2XGydHRg50tnJ3g1rb3Q\", \"target\": \"O16OCVveV3Dc1jkzE8jn0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CJLO+byWnEBKLAAlusiW2Q\", \"target\": \"u9+k6jrH+a5b7/DyIKv50w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CYlt9MHJ4J2C75oqnK5X5Q\", \"target\": \"u9+k6jrH+a5b7/DyIKv50w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aLmsFb/9Xz3M4vYoXwMK1A\", \"target\": \"xFtvUt54mWyK6jRKl1JzxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ECrXW4TwKkiq0yhDSQsg1A\", \"target\": \"iZG0kK83mAwI7l40kRt+/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2CCWZd0r/q3XhcVZAzQo1A\", \"target\": \"51sIXvwdb1xZwp6D19vL1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6U2XGydHRg50tnJ3g1rb3Q\", \"target\": \"mm6xCo8N6tJFTZMAe4VI1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"IaImK3Wfmh8zprJ17Fuz1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"Smz1QIvP657gJFJUHLty1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"HSXYunXnU735XSqPVXaV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2hqjTmv4MpPdFdsOI/OY1A\", \"target\": \"QTkc8476vXtqFJNyISCv6Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I3druwziJ9VuG37wcrxL7Q\", \"target\": \"r1jCxdcEbk+++Tqa6evO1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"target\": \"z/TAoZvzjf2wvlusVBnV1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OPbynxn1A1QV0hBtvMlC5A\", \"target\": \"b0c1d26mJFr1jSCe2avt1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rUmPGQXYQ01oDAOVKdAA1Q\", \"target\": \"uYfni3DsnHLywrApmbU6kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lvthtbal/X6FAsz6GwDo2Q\", \"target\": \"rUmPGQXYQ01oDAOVKdAA1Q\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"UBvzeFzQMqnE1mhmQnp41Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UBvzeFzQMqnE1mhmQnp41Q\", \"target\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"target\": \"pw1Urc5iVfS4y0uLi0eh1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WEDPEOtHnqBwx2mcLMq81Q\", \"target\": \"tEeYd2NRrb/Qi528JuN1+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fxKELfeW2mmDU7Q7omK/1Q\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fxKELfeW2mmDU7Q7omK/1Q\", \"target\": \"zVKc5Pn9CM7t8WCnSUvK5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dPQX4HZuIcEoHZnu61i2Q\", \"target\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HX5tAgQbmKUs5gGEs/gx1g\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lTy5ajnv+ybkdhf/wEdD1g\", \"target\": \"ttNA9EtrRO4vzKDbSnXp8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"Smz1QIvP657gJFJUHLty1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SdLACOA5NHzMq25kxSWf1g\", \"target\": \"pQboYj1uZMjFOkzVaqCR/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nIgO2SB8550Bt4Vxy2bC1g\", \"target\": \"pTMybSugouBc0nZLe/g+2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RZ1gq+G6Ry3quch8vo8E+g\", \"target\": \"ZUTxzdQNHeX1I/vY7OUf1w\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"YXIjTDE6sJvw8Ctchvbo1w\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"qYX/hJ1iKWEAkuu9BK/y3g\", \"target\": \"rfBcOTnoGOUeM+2vyb/r1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"9uuEGhRv+nnRtMzAzjB2Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+ko4YzNx60P+2xghNILs2g\", \"target\": \"7D9a/qbeWge1uN9fmApJ2A\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"target\": \"rwxpB8UX/weoLJqfaRmJ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"X3iS8Dq3cq8It+tMVZGR2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fl4EFQq7n5+GbI3MLNGA6g\", \"target\": \"h+D0DMg6qkCwcplM2Gqo2A\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"lstYZJhfvS9jBG5xm+8U9A\", \"target\": \"nks5WSx4QKKAPQCWyIn32A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"cHPtw67C6L5578ABzu9m2Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cHPtw67C6L5578ABzu9m2Q\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CJLO+byWnEBKLAAlusiW2Q\", \"target\": \"CYlt9MHJ4J2C75oqnK5X5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+lVxYLjIFO+Ycwih/VOi2Q\", \"target\": \"iiHdIj3dYCnLmrkXpUxV3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+lVxYLjIFO+Ycwih/VOi2Q\", \"target\": \"xbWKQYE6mafD8ye2m0H89Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Df0dOb7XVmqj7vlzc20y4A\", \"target\": \"M28X/3X9XhtMKEhs+6oP2g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"M28X/3X9XhtMKEhs+6oP2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ORocJgkETt4cgx7zJX1m2g\", \"target\": \"eodI+fnS3UzxZQs/glMJ3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ORocJgkETt4cgx7zJX1m2g\", \"target\": \"aPDfJ/RktssG6+PgDXeC4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"YSeBLUEND64U5fx2jVt88w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC7hxczsJaJ2uIOIqoo66Q\", \"target\": \"TO1aIK0+tIq16RepokHF2g\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"RdHJ6h70jpiHt3m/vAPL2g\", \"target\": \"vxqJKZeQ2Vvx7xXFybjU3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PWbZ/xn60ZHGlQtufbHz6w\", \"target\": \"X7rqqVePj30IkrUqT51Y2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DaTobGDBd8qNG33vbIxl2g\", \"target\": \"qjM9bPDJ6Esfd1jc9Zuv2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DQOcWsYX6ai57NZ4jqyY5w\", \"target\": \"qjM9bPDJ6Esfd1jc9Zuv2w\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"GcCIv1eDsDxcnxww5BRk8A\", \"target\": \"HLd4WCwL+lRguGJbPDTi2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89IPAn8CnXhoaYUJqaDq2w\", \"target\": \"ODLi5SBwNecxZWLF9IQr5w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"I8/gD89DiH9csk/ZEjSV9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aPDfJ/RktssG6+PgDXeC4Q\", \"target\": \"eodI+fnS3UzxZQs/glMJ3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qvgHYr//5UeK5A/rGOI+WA\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"Jk7T08xaG4CWAcdaiJqg8A\", \"target\": \"vWy0S3JkUaZezamXjZGr3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ad2FQPLN06d20a77mVj34A\", \"target\": \"EBC83dLOPfyZ6CgyHfS33A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"EBC83dLOPfyZ6CgyHfS33A\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"EBC83dLOPfyZ6CgyHfS33A\", \"target\": \"SW7VFc8aTUoC/Mh9jAjh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZ9LMeimyr0YWPJ0IsRj3Q\", \"target\": \"qzW5fohBXdhHaVpKw/wW9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pMfrOXJD/g4uwkoIH3y23Q\", \"target\": \"tmZPh+CU+d/qziRFshhf6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"M65c5Nr2OwUx4RrgWBt69w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"V8ksPyfaupEEfgw8dUrT3Q\", \"target\": \"felsQ1UdIZxKSSJZnxxh8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SmyQ4JHD7+SEeH4ITXT13Q\", \"target\": \"UmPwQU3QXSrVekUbTxop9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XOw9Q1YxcvuhPXdiOGJMGA\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"hKdbfGbrvmmwC8+BbLia3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9V9YsR5v4buQUr0rs0XJ5Q\", \"target\": \"kx3qpS4wFrfj4AUSvD273g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"91ATqeatEnZnOl7GYatz7Q\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WaZcaQu0SHC/mL5lo4gZ+g\", \"target\": \"lnsdRCpfQaAQ/sNzVzgm3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BXpeYYaO1qQF8B0NEv4r3w\", \"target\": \"m6ZpojGcm6og1aNvWaJL/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0t6hQrq58/AjvNmfKQJA3w\", \"target\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0t6hQrq58/AjvNmfKQJA3w\", \"target\": \"zs/qGBZegqxG9zpefbXLew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"target\": \"bPIwjFI4aO3BnDDiSWmD4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AvVCWm591ZvQ6DEW2qb+6Q\", \"target\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PL1tDqyryL2f0TlTwStn7A\", \"target\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iiHdIj3dYCnLmrkXpUxV3w\", \"target\": \"xbWKQYE6mafD8ye2m0H89Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h37mnRkwndeMxNuIzr0k+A\", \"target\": \"w7AN2URAar7AQyqiyJ5h3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IzWwQQvk67Hujjt0zNQ74A\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4znuuTThxX8nevY99oHk5w\", \"target\": \"IzWwQQvk67Hujjt0zNQ74A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Arwkdm13CeJyyFNcAAd37A\", \"target\": \"IzWwQQvk67Hujjt0zNQ74A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"2af10RCETu3QPCGmsHF+4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6jhFejUN6c7Aff2g3e674A\", \"target\": \"vlSMwSjwxW6VB+DOD3V94w\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"Ad2FQPLN06d20a77mVj34A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ad2FQPLN06d20a77mVj34A\", \"target\": \"SW7VFc8aTUoC/Mh9jAjh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4t1AHK2HFYcR5D9nIC0Y9A\", \"target\": \"j6By1U2pa9tCpe2vghUI4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"75GLam0GiNbHonLi9pd/4Q\", \"target\": \"M3mzslSGFKL89Hr6jj7Y9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTana0mhDAQ7pDlNgeTo5g\", \"target\": \"nNdeLertJElPQpss2WS+4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"eXnfZLXLieBorLzxKlLM4Q\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"+tWCi7UnnHlKpwgxsZYw8g\", \"target\": \"R6b4LdI57QEcTyehRwfo4Q\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"9Vql7Mlk/vvWRyGpTsvc5w\", \"target\": \"ze9Ajo7bQIrDR2Q61Vkf4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AvVCWm591ZvQ6DEW2qb+6Q\", \"target\": \"bPIwjFI4aO3BnDDiSWmD4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PL1tDqyryL2f0TlTwStn7A\", \"target\": \"bPIwjFI4aO3BnDDiSWmD4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"D9pzXh+m3X+Q11g+VAoQ6A\", \"target\": \"S0cvWu7kth8Hv99QFfiW4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Yxer1BQHw8ayI4coIJWc7A\", \"target\": \"qKdc7yaOfDNQ3Ioddlqw4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2LHI1R6SjODg/VQK0mSy4g\", \"target\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1swWkYMcwILy7Fx6Zpvz4g\", \"target\": \"X+ETh+ba1MHT0Np6yw/i4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLqvxwV6cLRbZzV/S6ce/g\", \"target\": \"XsBDmmlxAWof97JjGRrn4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"tPGsf2lNyo/YwJKk//Xn6A\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"target\": \"sJ1m92koFlNMH0NSe7dO4w\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"+XX4ipo2EDh1Vw861N3B7g\", \"target\": \"8WlJWpfvSrkQ4/HN21rW4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+cNenZQZhgXXSMyomN525A\", \"target\": \"wXuMAPhfrJpUDgsV2ojS7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Crhp8YifQTQDrSTRS7ZX/A\", \"target\": \"yow/PWjTeFNHBFPlDU175A\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"r+f8AzuIChCT+43z1V4r+Q\", \"target\": \"z+Erzv6FAAAlpHglkqjD5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JboAWyXnCoash2wb7PAb7A\", \"target\": \"nQbo89EjFqendC5KI+7G5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R9reG8IlWahr3kb1OVLP5A\", \"target\": \"ya2o5/Rbz4LKL7fJB/aH8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4znuuTThxX8nevY99oHk5w\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Arwkdm13CeJyyFNcAAd37A\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rqiARZpwzVbzZK73amgN5Q\", \"target\": \"zVKc5Pn9CM7t8WCnSUvK5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iFxq8blHvCT13CeFg1Uq9w\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+SDMPAJnM5smfsvJtvU5Q\", \"target\": \"aU8RxAk5dpz79KvpKp2W7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ghJksWt+/t2VYaCzm/Qs+w\", \"target\": \"xYqY6+nbtRNwS10J4bsI5g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1TyGrvk8SzqnwelG70YR5g\", \"target\": \"fNS5Dg9E+rY2v60BUkcE9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kEfT969BAAcMsgbk9Cq5g\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"4OBgakItKw3fodKU1F695g\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"LRlDXzrTF6Ri+zf9byUDng\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"tPGsf2lNyo/YwJKk//Xn6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"3vOibLjBb4VNYZOlRffs8g\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"4znuuTThxX8nevY99oHk5w\", \"target\": \"Arwkdm13CeJyyFNcAAd37A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"target\": \"gHJfO8svh+gm3L4Lwbss+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"MauRd73SPuaI/SsIA8Wh9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"JP3yhcbiuU7ifkiJqEgw6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"target\": \"yA42YJjumsokSSLXucqU6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"SU/6PQhlsHPBRc4pxcQR6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"9el4Yb1FIodeYe4QeztY8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ri+0Jy7gEDnrphImzdan6A\", \"target\": \"u2at6zf9OYlpg8Ts5KiK/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h6LTY3LaaE6dWUsrCOYj/w\", \"target\": \"rToxk4r0uYkTlZK66ha06A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RrwVqK/gCHzzTMUpXDhB6Q\", \"target\": \"TjSWBmQ46SH6wSdnCe5g8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AvVCWm591ZvQ6DEW2qb+6Q\", \"target\": \"PL1tDqyryL2f0TlTwStn7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RuZEZek+dIdNb16T8TQk6g\", \"target\": \"uutpyYx9BmxXdQaPX/yA+Q\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"DjoWz5wRHMv7J5CcM1FN8g\", \"target\": \"WMgcdy+BnPYK8Xma4/5A6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J9lncln67Ektsz70Jz1s+Q\", \"target\": \"O/m49NG+OSq7jZLZYq9E6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+vQfJbdbrfUr7z53avxu8A\", \"target\": \"KlNDoIf7EQkwaCaUTuTr6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PnXhu4rcpkk+qyLW1koE6w\", \"target\": \"rZdJjoqtPTUMWxcXz3eV7A\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"f1nU9QKf5radbUNVzHHM/g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"target\": \"H0zZceW5WCpd+LBiEJSR/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Yaj5oRg5gSr4WRlWPo17g\", \"target\": \"Q67OfOXxwmAszDzGwwMu7A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q67OfOXxwmAszDzGwwMu7A\", \"target\": \"cinjXKTI9MAJtco6S1n+9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XM0o8pv01Pfg5sFKZWng7A\", \"target\": \"idWTK0b8n3wVMKQEAfsV7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"c6l/6JPY8da2RBVQz7qV/g\", \"target\": \"xJ4etXa+11viKMelSA2I7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G0HrHwXCAPzndCm/PFCQ7Q\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Yaj5oRg5gSr4WRlWPo17g\", \"target\": \"cinjXKTI9MAJtco6S1n+9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"q7vfrx1Y2yIt4jU/MTVU8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MJMUTT4JMMSyMzSkOKjr+A\", \"target\": \"W08SC5+MMRtUmoI8eb8p8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kbys4oCqW7mu52nFXjihWA\", \"target\": \"xRIZCO6SRfXLOE0+vaXu8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"SW7VFc8aTUoC/Mh9jAjh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"84cQ3j2fcrmCy4xje6xR8g\", \"target\": \"SqG/l6IbODdXxSygyTzS8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rtz5xYqf3eobdXs3wUh79Q\", \"target\": \"rxcVniLDqVaT6evzgA+m8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U04BOACjO7txW+arJZbh/Q\", \"target\": \"VPe/WBhgMRDejNmchQGp8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pOLt7ElwS+F5q/0I72e28g\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"target\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"target\": \"sItUzgzzeSRXDdp40okl7g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"W/xMOfCQTNSfmwDOYwfP+A\", \"target\": \"xkCQC4UuNjDrwruLbTgC9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"qjmps9fgconKwBloySfxBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"J+ybODI7/elM6CANxmPBYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"5xwY0szZnsiqQTwCAlnatQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MUKgszdFzAs+hYndndby/Q\", \"target\": \"htQlzVTv1oTgctxDSfBI9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DykH5PpzRDCrHn459hWegA\", \"target\": \"lVZDXqF6yl10XUMzZzLN9A\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"lVZDXqF6yl10XUMzZzLN9A\", \"target\": \"owASgHoCXg8ZWEml7Td3ng\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"lVZDXqF6yl10XUMzZzLN9A\", \"target\": \"p0boa2/V9lIl4dB2qQdk9w\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"34S4/qPUMbfIiVg4qPcv9Q\", \"target\": \"m2zFkWR4ShPkpk94te9r/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"00+hT3AJnNlMB1LEokJt+A\", \"target\": \"vDRBQBe5FIOF6UackNq59g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8E4XB9kLowELIYjeWrbT9g\", \"target\": \"TeLYnQ4sMDKjTiO/ulKS/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"M65c5Nr2OwUx4RrgWBt69w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZYIgMFU3qCf6nt4PPviA+w\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"kr3m2Rujat20L97MZk719w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"kr3m2Rujat20L97MZk719w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cLHU/6vH3d8z8+Z/CLor/Q\", \"target\": \"hVK8NzQ7oT41nmHBitdj+A\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"zIMloag8qUWv9b91U8kx/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8dAZq6dnSSBoaukyGPkp+g\", \"target\": \"x9gxsxVegryFTUoduSA1SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aA9DZNqpSuugH0fbqslt+g\", \"target\": \"o5yIaKnpLciGpB4YpDSrog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NMYv+LLIhjsJ1pMbww3z/w\", \"target\": \"VUQ6UQmjN3zdCP6QZmfM+w\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"LvyOqWz4vSyOBqiyi115/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"en3A02Nh2kO7dedg0Atp/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/XdeD6LQuOcKj3zG8GDqVA\", \"target\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"J7dxhY+mTwsgrvRun4vIQw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zz49PYLjgQ+HgQ+JdRW/Q\", \"target\": \"g8omXv57dirNyxDKqHKY/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"target\": \"v8VP8XKjxrPYZLyLtott4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}]}];\n",
       "            // Data selection and normalization\n",
       "            state.nodeSizeDataSource = \"size\";\n",
       "            state.useNodeSizeNormalization = false;\n",
       "            state.nodeSizeNormalizationMin = 5.0;\n",
       "            state.nodeSizeNormalizationMax = 75.0;\n",
       "            state.nodeLabelTextDataSource = \"label\";\n",
       "            state.edgeSizeDataSource = \"size\";\n",
       "            state.useEdgeSizeNormalization = false;\n",
       "            state.edgeSizeNormalizationMin = 0.2;\n",
       "            state.edgeSizeNormalizationMax = 5.0;\n",
       "            state.edgeLabelTextDataSource = \"label\";\n",
       "            // Containers\n",
       "            state.graphContainerHeight = 450;\n",
       "            state.detailsContainerHeight = 100;\n",
       "            state.showDetails = false,\n",
       "            state.showDetailsToggleButton = true,\n",
       "            state.showMenu = false,\n",
       "            state.showMenuToggleButton = true,\n",
       "            // Nodes\n",
       "            state.showNodes = true;\n",
       "            state.nodeSizeFactor = 1.0;\n",
       "            state.nodeDragFix = false;\n",
       "            state.nodeHoverNeighborhood = true;\n",
       "            state.nodeHoverTooltip = true;\n",
       "            state.showNodeImages = true;\n",
       "            state.nodeImageSizeFactor = 1.0;\n",
       "            state.showNodeLabels = true;\n",
       "            state.showNodeLabelBorders = true;\n",
       "            state.nodeLabelSizeFactor = 1.9;\n",
       "            state.nodeLabelRotation = 0.0;\n",
       "            state.nodeLabelFont = \"Arial\";\n",
       "            // Edges\n",
       "            state.showEdges = true;\n",
       "            state.edgeSizeFactor = 1.0;\n",
       "            state.edgeCurvature = 0.4;\n",
       "            state.edgeHoverTooltip = true,\n",
       "            state.showEdgeLabels = true;\n",
       "            state.showEdgeLabelBorders = true;\n",
       "            state.edgeLabelSizeFactor = 1.0;\n",
       "            state.edgeLabelRotation = 0.0;\n",
       "            state.edgeLabelFont = \"Arial\";\n",
       "            // Layout algorithm\n",
       "            state.layoutAlgorithmActive = true;\n",
       "            state.useManyBodyForce = true;\n",
       "            state.manyBodyForceStrength = -70.0;\n",
       "            state.manyBodyForceTheta = 0.9;\n",
       "            state.useManyBodyForceMinDistance = false;\n",
       "            state.manyBodyForceMinDistance = 10.0;\n",
       "            state.useManyBodyForceMaxDistance = false;\n",
       "            state.manyBodyForceMaxDistance = 1000.0;\n",
       "            state.useLinksForce = true;\n",
       "            state.linksForceDistance = 50.0;\n",
       "            state.linksForceStrength = 0.5;\n",
       "            state.useXPositioningForce = false;\n",
       "            state.xPositioningForceStrength = 0.2;\n",
       "            state.useYPositioningForce = false;\n",
       "            state.yPositioningForceStrength = 0.2;\n",
       "            state.useZPositioningForce = false;\n",
       "            state.zPositioningForceStrength = 0.2;\n",
       "            state.useCenteringForce = true;\n",
       "            // Other\n",
       "            state.initZoomFactor = 0.75;\n",
       "            state.largeGraphThreshold = 200;\n",
       "          },\n",
       "\n",
       "          // 2) Derive state.parsedData from state.givenData\n",
       "          rawDataParser:{\n",
       "            getBool(obj, prop, def){\n",
       "              try{\n",
       "                const value = obj[prop];\n",
       "                if(value == \"true\" || value == \"True\"){\n",
       "                  value = true;\n",
       "                } else if(value == \"false\" || value == \"False\"){\n",
       "                  value = false;\n",
       "                }\n",
       "                if(value !== true && value !== false){\n",
       "                  throw \"Invalid value. Not a bool.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "              return def\n",
       "            },\n",
       "\n",
       "            getString(obj, prop, def) {\n",
       "              try{\n",
       "                const value = String(obj[prop]);\n",
       "                if(value === \"undefined\"){\n",
       "                  throw \"Invalid value. Not a proper string.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "              return def;\n",
       "            },\n",
       "\n",
       "            getArrayLengthOrZero(array){\n",
       "              try{\n",
       "                const value = parseInt(array.length);\n",
       "                if(!((value + 1) > 0)){\n",
       "                  throw \"Invalid value. Not a proper length.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return 0;\n",
       "              }\n",
       "            },\n",
       "\n",
       "            getObjectLengthOrZero(obj){\n",
       "              try{\n",
       "                const value = Object.keys(obj).length;\n",
       "                if(!((value + 1) > 0)){\n",
       "                  throw \"Invalid value. Not a proper length.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return 0;\n",
       "              }\n",
       "            },\n",
       "\n",
       "            createUniqueEdgeId(sourceId, targetId, knownEdgeIds){\n",
       "              let newEdgeIdBase = \"(\" + sourceId + \", \" + targetId + \")\",\n",
       "                newEdgeId = newEdgeIdBase,\n",
       "                multiEdgeCounter = 1;\n",
       "              for(let i=1; knownEdgeIds.has(newEdgeId); i++){\n",
       "                newEdgeId = newEdgeIdBase + \"_\" + String(i);\n",
       "                multiEdgeCounter += 1;\n",
       "              }\n",
       "              knownEdgeIds.add(newEdgeId);\n",
       "              return {\"id\": newEdgeId, \"count\": multiEdgeCounter}\n",
       "            },\n",
       "          },\n",
       "\n",
       "          rawMetadataParser:{\n",
       "            getString(obj, prop, def){\n",
       "              try{\n",
       "                const value = String(obj.metadata[prop]);\n",
       "                if(value === \"undefined\"){\n",
       "                  throw \"Invalid value. Not a proper string.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getColor(obj, prop, def){\n",
       "              function isBodyidColor(strColor) {\n",
       "                const sty = new Option().style;\n",
       "                sty.color = strColor;\n",
       "                return sty.color !== \"\";\n",
       "              }\n",
       "              try{\n",
       "                const value = obj.metadata[prop];\n",
       "                if(!isBodyidColor(value)){\n",
       "                  throw \"Invalid value. Not a color.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getFiniteNumber(obj, prop, def){\n",
       "              try{\n",
       "                const value = parseFloat(obj.metadata[prop]);\n",
       "                if(!isFinite(value) || value === null){\n",
       "                  throw \"Invalid value. Not a finite number.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getFiniteNumberOrNull(obj, prop, def){\n",
       "              try{\n",
       "                const value = parseFloat(obj.metadata[prop]);\n",
       "                if(!isFinite(value)){  // Note: isFinite(null) gives true\n",
       "                  throw \"Invalid value. Not a finite number or null.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getFinitePositiveNumber(obj, prop, def){\n",
       "              try{\n",
       "                const value = parseFloat(obj.metadata[prop]);\n",
       "                if(!isFinite(value) || value === null || value < 0.0){\n",
       "                  throw \"Invalid value. Not a finite positive number.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            collectOtherMetadata(sourceObject, targetObject, definedMetadata){\n",
       "              if(typeof(sourceObject) !== \"undefined\" && typeof(sourceObject.metadata) !== \"undefined\"){\n",
       "                const properties = Object.keys(sourceObject.metadata);\n",
       "                for(let i=0; i<properties.length; i++){\n",
       "                  const property = properties[i];\n",
       "                  if(!definedMetadata.has(property)){\n",
       "                    targetObject[property] = sourceObject.metadata[property];\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            },\n",
       "          },\n",
       "\n",
       "          propertyClassifier:{\n",
       "            numeric: null,\n",
       "            nonNumeric: null,\n",
       "            init(){\n",
       "              this.numeric = new Set(),\n",
       "              this.nonNumeric = new Set();\n",
       "            },\n",
       "            isNumeric(d){\n",
       "              return d === null || typeof(d) === \"undefined\" || String(parseFloat(d)) === String(d);\n",
       "            },\n",
       "            inspect(object, property){\n",
       "              const value = object[property];\n",
       "              if(!this.nonNumeric.has(property)){\n",
       "                if(this.isNumeric(value)){\n",
       "                  this.numeric.add(property);\n",
       "                } else{\n",
       "                  this.nonNumeric.add(property);\n",
       "                  this.numeric.delete(property);\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "          },\n",
       "\n",
       "          replaceStringVariables(givenString, givenItem, variables){\n",
       "            let newString = givenString;\n",
       "            for(let i=0; i<variables.length; i++){\n",
       "              let variable = variables[i],\n",
       "                variableText = \"$\" + variable;\n",
       "              if(variable === \"x\"){\n",
       "                variable = \"fx\";\n",
       "              } else if (variable === \"y\"){\n",
       "                variable = \"fy\";\n",
       "              } else if (variable === \"z\"){\n",
       "                variable = \"fz\";\n",
       "              }\n",
       "              let insertedText = String(givenItem[variable]);\n",
       "              if(insertedText === \"undefined\"){\n",
       "                insertedText = \"\";\n",
       "              }\n",
       "              newString = newString.replace(variableText, insertedText);\n",
       "            }\n",
       "            return newString;\n",
       "          },\n",
       "\n",
       "          parseGeneral(givenData, parsedData){\n",
       "            parsedData.general = {\n",
       "              // General\n",
       "              directed: state.manager.rawDataParser.getBool(givenData, \"directed\", true),\n",
       "              label: state.manager.rawDataParser.getString(givenData, \"label\", \"\"),\n",
       "              background_color: state.manager.rawMetadataParser.getColor(givenData, \"background_color\", \"white\"),\n",
       "              arrow_color: state.manager.rawMetadataParser.getColor(givenData, \"arrow_color\", \"black\"),\n",
       "              arrow_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"arrow_size\", 10.0),\n",
       "              // Nodes\n",
       "              node_color: state.manager.rawMetadataParser.getColor(givenData, \"node_color\", \"black\"),\n",
       "              node_opacity: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_opacity\", 1.0),\n",
       "              node_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_size\", 10.0),\n",
       "              node_shape: state.manager.rawMetadataParser.getString(givenData, \"node_shape\", \"circle\"),\n",
       "              node_border_color: state.manager.rawMetadataParser.getColor(givenData, \"node_border_color\", \"black\"),\n",
       "              node_border_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_border_size\", 0.0),\n",
       "              node_label_color: state.manager.rawMetadataParser.getColor(givenData, \"node_label_color\", \"black\"),\n",
       "              node_label_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_label_size\", 12.0),\n",
       "              node_hover: state.manager.rawMetadataParser.getString(givenData, \"node_hover\", \"\"),\n",
       "              node_click: state.manager.rawMetadataParser.getString(givenData, \"node_click\", \"\"),\n",
       "              node_image: state.manager.rawMetadataParser.getString(givenData, \"node_image\", \"\"),\n",
       "              node_x: state.manager.rawMetadataParser.getFiniteNumberOrNull(givenData, \"node_x\", null),\n",
       "              node_y: state.manager.rawMetadataParser.getFiniteNumberOrNull(givenData, \"node_y\", null),\n",
       "              node_z: state.manager.rawMetadataParser.getFiniteNumberOrNull(givenData, \"node_z\", null),\n",
       "              contains_node_hover: false,\n",
       "              contains_node_click: false,\n",
       "              contains_node_image: false,\n",
       "              // Edges\n",
       "              edge_color: state.manager.rawMetadataParser.getColor(givenData, \"edge_color\", \"black\"),\n",
       "              edge_opacity: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"edge_opacity\", 1.0),\n",
       "              edge_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"edge_size\", 1.0),\n",
       "              edge_label_color: state.manager.rawMetadataParser.getColor(givenData, \"edge_label_color\", \"black\"),\n",
       "              edge_label_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"edge_label_size\", 8.0),\n",
       "              edge_hover: state.manager.rawMetadataParser.getString(givenData, \"edge_hover\", \"\"),\n",
       "              edge_click: state.manager.rawMetadataParser.getString(givenData, \"edge_click\", \"\"),\n",
       "              contains_edge_hover: false,\n",
       "              contains_edge_click: false,\n",
       "            };\n",
       "            if(!parsedData.general.directed){\n",
       "              parsedData.general.arrow_size = 0.0;\n",
       "            }\n",
       "          },\n",
       "\n",
       "          parseNodes(givenData, parsedData){\n",
       "            const numNodes = state.manager.rawDataParser.getObjectLengthOrZero(givenData.nodes),\n",
       "              nodeIdToObjectMap = new Map(),\n",
       "              nodeDefinedMetadata = new Set(\n",
       "                [\"color\", \"opacity\", \"size\", \"shape\", \"border_color\", \"border_size\",\n",
       "                 \"label_color\", \"label_size\", \"hover\", \"click\", \"image\", \"x\", \"y\"]),\n",
       "              nodeReplacementVariables = [\n",
       "                \"id\", \"label\",\n",
       "                \"color\", \"opacity\", \"size\", \"shape\", \"border_color\", \"border_size\",\n",
       "                \"label_color\", \"label_size\", \"image\", \"x\", \"y\"];\n",
       "            state.manager.propertyClassifier.init();\n",
       "            try {\n",
       "              Object.entries(givenData.nodes);\n",
       "            }\n",
       "            catch(e){\n",
       "               givenData.nodes = {};\n",
       "            }\n",
       "            for (const [givenNodeId, givenNode] of Object.entries(givenData.nodes)) {\n",
       "              const parsedNode = {};\n",
       "              // data: id, label\n",
       "              parsedNode.id = String(givenNodeId);\n",
       "              parsedNode.label = state.manager.rawDataParser.getString(givenNode, \"label\", \"\");\n",
       "              // defined metadata\n",
       "              parsedNode.color = state.manager.rawMetadataParser.getColor(givenNode, \"color\", parsedData.general.node_color);\n",
       "              parsedNode.opacity = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"opacity\", parsedData.general.node_opacity);\n",
       "              parsedNode.size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"size\", parsedData.general.node_size);\n",
       "              parsedNode.shape = state.manager.rawMetadataParser.getString(givenNode, \"shape\", parsedData.general.node_shape);\n",
       "              parsedNode.border_color = state.manager.rawMetadataParser.getColor(givenNode, \"border_color\", parsedData.general.node_border_color);\n",
       "              parsedNode.border_size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"border_size\", parsedData.general.node_border_size);\n",
       "              parsedNode.label_color = state.manager.rawMetadataParser.getColor(givenNode, \"label_color\", parsedData.general.node_label_color);\n",
       "              parsedNode.label_size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"label_size\", parsedData.general.node_label_size);\n",
       "              const hover = state.manager.rawMetadataParser.getString(givenNode, \"hover\", parsedData.general.node_hover);\n",
       "              const image = state.manager.rawMetadataParser.getString(givenNode, \"image\", parsedData.general.node_image);\n",
       "              if(image !== \"\"){\n",
       "                parsedNode.image = image;\n",
       "                parsedData.general.contains_node_image = true;\n",
       "              }\n",
       "              if(hover !== \"\"){\n",
       "                parsedNode.hover = hover;\n",
       "                parsedData.general.contains_node_hover = true;\n",
       "              }\n",
       "              const click = state.manager.rawMetadataParser.getString(givenNode, \"click\", parsedData.general.node_click);\n",
       "              if(click !== \"\"){\n",
       "                parsedNode.click = click;\n",
       "                parsedData.general.contains_node_click = true;\n",
       "              }\n",
       "              const x = state.manager.rawMetadataParser.getFiniteNumberOrNull(givenNode, \"x\", parsedData.general.node_x);\n",
       "              const y = state.manager.rawMetadataParser.getFiniteNumberOrNull(givenNode, \"y\", parsedData.general.node_y);\n",
       "              const z = state.manager.rawMetadataParser.getFiniteNumberOrNull(givenNode, \"z\", parsedData.general.node_z);\n",
       "              if(x !== null){\n",
       "                parsedNode.fx = x;\n",
       "              }\n",
       "              if(y !== null){\n",
       "                parsedNode.fy = y;\n",
       "              }\n",
       "              if(z !== null){\n",
       "                parsedNode.fz = z;\n",
       "              }\n",
       "              // other metadata\n",
       "              const otherMetadata = state.manager.rawMetadataParser.collectOtherMetadata(givenNode, parsedNode, nodeDefinedMetadata);\n",
       "              // feature classification\n",
       "              const parsedNodeProperties = Object.keys(parsedNode);\n",
       "              for(let i=0; i<parsedNodeProperties.length; i++){\n",
       "                const property = parsedNodeProperties[i],\n",
       "                  value = parsedNode[property];\n",
       "                state.manager.propertyClassifier.inspect(parsedNode, property);\n",
       "              }\n",
       "              // variable replacements\n",
       "              if(parsedNode.hover){\n",
       "                parsedNode.hover = state.manager.replaceStringVariables(parsedNode.hover, parsedNode, nodeReplacementVariables);\n",
       "              }\n",
       "              if(parsedNode.click){\n",
       "                parsedNode.click = state.manager.replaceStringVariables(parsedNode.click, parsedNode, nodeReplacementVariables.concat([\"hover\"]));\n",
       "              }\n",
       "              // store the parsed node\n",
       "              parsedData.nodes.push(parsedNode);\n",
       "              // data structure for inserting node object references into edge data\n",
       "              nodeIdToObjectMap.set(parsedNode.id, parsedNode);\n",
       "            }\n",
       "            // Ensure numeric properties (except fx and fy) are stored as numbers and remember their extrema\n",
       "            const numericProperties = Array.from(state.manager.propertyClassifier.numeric).filter(name => name !== \"fx\" && name !== \"fy\"),\n",
       "              nonNumericProperties = Array.from(state.manager.propertyClassifier.nonNumeric),\n",
       "              minima = {},\n",
       "              maxima = {};\n",
       "            for(let i=0; i<numNodes; i++){\n",
       "              const parsedNode = parsedData.nodes[i];\n",
       "              for(let p=0; p<numericProperties.length; p++){\n",
       "                const property = numericProperties[p],\n",
       "                  numericValue = parseFloat(parsedNode[property]);\n",
       "                parsedNode[property] = numericValue;\n",
       "                if(isFinite(numericValue)){\n",
       "                  if(typeof(minima[property]) === \"undefined\" || numericValue < minima[property]){\n",
       "                    minima[property] = numericValue;\n",
       "                  }\n",
       "                  if(typeof(maxima[property]) === \"undefined\" || numericValue > maxima[property]){\n",
       "                    maxima[property] = numericValue;\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "            // Store feature classification and extrema\n",
       "            parsedData.general.node_properties = {\n",
       "              \"node_size_data_sources\": numericProperties,\n",
       "              \"node_label_text_data_sources\": nonNumericProperties.concat(numericProperties),\n",
       "              \"minima\": minima,\n",
       "              \"maxima\": maxima,\n",
       "            }\n",
       "            // Report empty graph\n",
       "            if(!(numNodes > 0)){\n",
       "              console.log(\"Caution: Graph with 0 nodes. The provided data might be in the wrong format.\");\n",
       "            }\n",
       "            return nodeIdToObjectMap;\n",
       "          },\n",
       "\n",
       "          parseEdges(givenData, parsedData, nodeIdToObjectMap){\n",
       "            let numEdges = state.manager.rawDataParser.getArrayLengthOrZero(givenData.edges);\n",
       "            const knownEdgeIds = new Set(),\n",
       "              ignoredEdges = [],\n",
       "              edgeDefinedMetadata = new Set(\n",
       "                [\"color\", \"opacity\", \"size\", \"label_color\", \"label_size\", \"hover\", \"click\"]),\n",
       "              edgeReplacementVariables = [\n",
       "                \"id\", \"label\",\n",
       "                \"color\", \"opacity\", \"size\", \"label_color\", \"label_size\"];\n",
       "            state.manager.propertyClassifier.init();\n",
       "            for(let i=0; i<numEdges; i++){\n",
       "              const givenEdge = givenData.edges[i],\n",
       "                parsedEdge = {},\n",
       "                sourceId = String(givenEdge.source),\n",
       "                targetId = String(givenEdge.target);\n",
       "              // data: source, target, id, multi_edge_counter, label\n",
       "              try{\n",
       "                const sourceObj = nodeIdToObjectMap.get(sourceId);\n",
       "                const targetObj = nodeIdToObjectMap.get(targetId);\n",
       "                if(typeof(sourceObj) === \"undefined\" || typeof(targetObj) === \"undefined\"){\n",
       "                  throw \"Invalid node reference.\";\n",
       "                }\n",
       "                parsedEdge.source = sourceObj;\n",
       "                parsedEdge.target = targetObj;\n",
       "              } catch(e){\n",
       "                const ignoredEdge = {\n",
       "                  index: i,\n",
       "                  source: sourceId,\n",
       "                  target: targetId,\n",
       "                }\n",
       "                ignoredEdges.push(ignoredEdge);\n",
       "                continue;\n",
       "              }\n",
       "              const result = state.manager.rawDataParser.createUniqueEdgeId(sourceId, targetId, knownEdgeIds);\n",
       "              parsedEdge.id = result.id;\n",
       "              parsedEdge.multi_edge_counter = result.count;\n",
       "              parsedEdge.label = state.manager.rawDataParser.getString(givenEdge, \"label\", \"\");\n",
       "              // defined metadata\n",
       "              parsedEdge.color = state.manager.rawMetadataParser.getColor(givenEdge, \"color\", parsedData.general.edge_color);\n",
       "              parsedEdge.opacity = state.manager.rawMetadataParser.getFinitePositiveNumber(givenEdge, \"opacity\", parsedData.general.edge_opacity);\n",
       "              parsedEdge.size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenEdge, \"size\", parsedData.general.edge_size);\n",
       "              parsedEdge.label_color = state.manager.rawMetadataParser.getColor(givenEdge, \"label_color\", parsedData.general.edge_label_color);\n",
       "              parsedEdge.label_size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenEdge, \"label_size\", parsedData.general.edge_label_size);\n",
       "              const hover = state.manager.rawMetadataParser.getString(givenEdge, \"hover\", parsedData.general.edge_hover);\n",
       "              if(hover !== \"\"){\n",
       "                parsedEdge.hover = hover;\n",
       "                parsedData.general.contains_edge_hover = true;\n",
       "              }\n",
       "              const click = state.manager.rawMetadataParser.getString(givenEdge, \"click\", parsedData.general.edge_click);\n",
       "              if(click !== \"\"){\n",
       "                parsedEdge.click = click;\n",
       "                parsedData.general.contains_edge_click = true;\n",
       "              }\n",
       "              // other metadata\n",
       "              const otherMetadata = state.manager.rawMetadataParser.collectOtherMetadata(givenEdge, parsedEdge, edgeDefinedMetadata);\n",
       "              // feature classification\n",
       "              const parsedEdgeProperties = Object.keys(parsedEdge);\n",
       "              for(let i=0; i<parsedEdgeProperties.length; i++){\n",
       "                const property = parsedEdgeProperties[i],\n",
       "                  value = parsedEdge[property];\n",
       "                state.manager.propertyClassifier.inspect(parsedEdge, property);\n",
       "              }\n",
       "              // variable replacements\n",
       "              if(parsedEdge.hover){\n",
       "                parsedEdge.hover = state.manager.replaceStringVariables(parsedEdge.hover, parsedEdge, edgeReplacementVariables);\n",
       "              }\n",
       "              if(parsedEdge.click){\n",
       "                parsedEdge.click = state.manager.replaceStringVariables(parsedEdge.click, parsedEdge, edgeReplacementVariables.concat([\"hover\"]));\n",
       "              }\n",
       "              // store it\n",
       "              parsedData.edges.push(parsedEdge);\n",
       "            }\n",
       "            // Ensure numeric properties are stored as numbers and remember their extrema\n",
       "            const numericProperties = Array.from(state.manager.propertyClassifier.numeric),\n",
       "              nonNumericProperties = Array.from(state.manager.propertyClassifier.nonNumeric),\n",
       "              minima = {},\n",
       "              maxima = {};\n",
       "            numEdges = state.manager.rawDataParser.getArrayLengthOrZero(parsedData.edges)\n",
       "            for(let i=0; i<numEdges; i++){\n",
       "              const parsedEdge = parsedData.edges[i];\n",
       "              for(let p=0; p<numericProperties.length; p++){\n",
       "                const property = numericProperties[p],\n",
       "                  numericValue = parseFloat(parsedEdge[property]);\n",
       "                parsedEdge[property] = numericValue;\n",
       "                if(isFinite(numericValue)){\n",
       "                  if(typeof(minima[property]) === \"undefined\" || numericValue < minima[property]){\n",
       "                    minima[property] = numericValue;\n",
       "                  }\n",
       "                  if(typeof(maxima[property]) === \"undefined\" || numericValue > maxima[property]){\n",
       "                    maxima[property] = numericValue;\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "            // Store feature classification and extrema\n",
       "            parsedData.general.edge_properties = {\n",
       "              \"edge_size_data_sources\": numericProperties.filter(item => item !== \"multi_edge_counter\"),\n",
       "              \"edge_label_text_data_sources\": nonNumericProperties.concat(numericProperties).filter(\n",
       "                item => item !== \"source\" && item !== \"target\" && item !== \"multi_edge_counter\"),\n",
       "              \"minima\": minima,\n",
       "              \"maxima\": maxima,\n",
       "            }\n",
       "            // Report invalid edges\n",
       "            if(ignoredEdges.length > 0){\n",
       "              let message = undefined;\n",
       "              if(ignoredEdges.length == 1){\n",
       "                message = \"Caution: \" + ignoredEdges.length + \" edge was ignored because it \" +\n",
       "                  \"refers to a node that is not part of the node list:\\n\";\n",
       "              } else{\n",
       "                message = \"Caution: \" + ignoredEdges.length + \" edges were ignored because they \" +\n",
       "                  \"refer to a node that is not part of the node list:\\n\";\n",
       "              }\n",
       "              for(let i=0; i<ignoredEdges.length; i++){\n",
       "                const ignoredEdge = ignoredEdges[i];\n",
       "                message += '- Edge with index ' + ignoredEdge.index;\n",
       "                message += ', source \"' + ignoredEdge.source;\n",
       "                message += '\", target \"' + ignoredEdge.target + '\"\\n';\n",
       "                if(i==9){\n",
       "                  message += '...';\n",
       "                  break;\n",
       "                }\n",
       "              }\n",
       "              console.log(message);\n",
       "            }\n",
       "          },\n",
       "\n",
       "          parseChosenData(chosenGraphNumber){\n",
       "            let givenData = state.rawData[chosenGraphNumber],\n",
       "              parsedData = {\n",
       "                general: {},\n",
       "                nodes: [],\n",
       "                edges: [],\n",
       "                adjacency: null,\n",
       "                incidence: null,\n",
       "              };\n",
       "            if(!givenData || givenData === null){\n",
       "              givenData = [];\n",
       "            }\n",
       "            // a) General\n",
       "            state.manager.parseGeneral(givenData, parsedData);\n",
       "            // b) Nodes\n",
       "            const nodeIdToObjectMap = state.manager.parseNodes(givenData, parsedData);\n",
       "            // c) Edges\n",
       "            state.manager.parseEdges(givenData, parsedData, nodeIdToObjectMap);\n",
       "            // Update state\n",
       "            state.parsedData = parsedData;\n",
       "            state.currentGraphParts = {};\n",
       "            // Update UI: show or hide containers\n",
       "            ui.elements.graphContainer.style.display = ui.convert.boolToDisplayStyle(true);\n",
       "            ui.elements.detailsContainer.style.display = ui.convert.boolToDisplayStyle(state.showDetails);\n",
       "            ui.elements.nodeImageMetaControl.style.display = ui.convert.boolToDisplayStyle(parsedData.general.contains_node_image);\n",
       "          },\n",
       "\n",
       "          // 3) Derive state.shownData from state.parsedData\n",
       "          createNodeToAdjacentNodesMap(){\n",
       "            const dataStructure = {\n",
       "              map: new Map(),\n",
       "              add(sourceNode, targetNode){\n",
       "                let adjacentNodes = this.map.get(sourceNode);\n",
       "                if(adjacentNodes){\n",
       "                  adjacentNodes.add(targetNode);\n",
       "                } else{\n",
       "                  adjacentNodes = new Set([targetNode]);\n",
       "                  this.map.set(sourceNode, adjacentNodes);\n",
       "                }\n",
       "              },\n",
       "            }\n",
       "            return dataStructure;\n",
       "          },\n",
       "\n",
       "          createNodeToIncidentEdgesMap(){\n",
       "            const dataStructure = {\n",
       "              map: new Map(),\n",
       "              add(node, edge){\n",
       "                let incidentEdges = this.map.get(node);\n",
       "                if(incidentEdges){\n",
       "                  incidentEdges.add(edge);\n",
       "                } else{\n",
       "                  incidentEdges = new Set([edge]);\n",
       "                  this.map.set(node, incidentEdges);\n",
       "                }\n",
       "              },\n",
       "            }\n",
       "            return dataStructure;\n",
       "          },\n",
       "\n",
       "          prepareShownData(){\n",
       "            const numNodes = state.parsedData.nodes.length,\n",
       "              numEdges = state.parsedData.edges.length;\n",
       "            state.shownData = {\n",
       "              \"general\": null,\n",
       "              \"nodes\": new Array(numNodes),\n",
       "              \"edges\": new Array(numEdges),\n",
       "            }\n",
       "            const nodeIdToObjectMap = new Map(),\n",
       "              nodeSizeNormalizer = state.manager.createNodeSizeNormalizer();\n",
       "            // a) General\n",
       "            state.shownData.general = {\n",
       "              \"background_color\": state.parsedData.general.background_color,\n",
       "              \"arrow_size\": state.parsedData.general.arrow_size,\n",
       "              \"arrow_color\": state.parsedData.general.arrow_color,\n",
       "              \"directed\": state.parsedData.general.directed,\n",
       "              \"node_image_fetching_failed\": false,\n",
       "            };\n",
       "            // b) Nodes\n",
       "            for(let i=0; i<numNodes; i++){\n",
       "              state.shownData.nodes[i] = {};\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.id = parsedNode.id;\n",
       "              shownNode.label = state.manager.calcSingleNodeLabelText(parsedNode);\n",
       "              shownNode.color = parsedNode.color;\n",
       "              shownNode.opacity = parsedNode.opacity;\n",
       "              shownNode.size = state.manager.calcSingleNodeSize(parsedNode, nodeSizeNormalizer);\n",
       "              shownNode.shape = parsedNode.shape;\n",
       "              shownNode.border_color = parsedNode.border_color;\n",
       "              shownNode.border_size = parsedNode.border_size;\n",
       "              shownNode.label_color = parsedNode.label_color;\n",
       "              shownNode.label_size = state.manager.calcSingleNodeLabelSize(parsedNode);\n",
       "              if(typeof(parsedNode.image) !== \"undefined\"){\n",
       "                shownNode.image = parsedNode.image;\n",
       "              }\n",
       "              if(typeof(parsedNode.hover) !== \"undefined\"){\n",
       "                shownNode.hover = parsedNode.hover;\n",
       "              }\n",
       "              if(typeof(parsedNode.click) !== \"undefined\"){\n",
       "                shownNode.click = parsedNode.click;\n",
       "              }\n",
       "              if(typeof(parsedNode.fx) !== \"undefined\"){\n",
       "                shownNode.fx = parsedNode.fx;\n",
       "              }\n",
       "              if(typeof(parsedNode.fy) !== \"undefined\"){\n",
       "                shownNode.fy = parsedNode.fy;\n",
       "              }\n",
       "              if(typeof(parsedNode.fz) !== \"undefined\"){\n",
       "                shownNode.fz = parsedNode.fz;\n",
       "              }\n",
       "              nodeIdToObjectMap.set(shownNode.id, shownNode);\n",
       "              // Derived properties for performance improvement in updateNodePositions\n",
       "              state.manager.calcSingleNodeSizeDerivatives(shownNode);\n",
       "              state.manager.calcSingleNodeLabelSizeDerivatives(shownNode);\n",
       "              state.manager.calcSingleNodeBorderSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // c) Edges\n",
       "            const edgeSizeNormalizer = state.manager.createEdgeSizeNormalizer(),\n",
       "              nodeToAdjacentNodesMap = state.manager.createNodeToAdjacentNodesMap(),\n",
       "              nodeToIncidentEdgesMap = state.manager.createNodeToIncidentEdgesMap();\n",
       "            for(let i=0; i<numEdges; i++){\n",
       "              state.shownData.edges[i] = {};\n",
       "              const parsedEdge = state.parsedData.edges[i],\n",
       "                shownEdge = state.shownData.edges[i];\n",
       "              shownEdge.source = nodeIdToObjectMap.get(parsedEdge.source.id);\n",
       "              shownEdge.target = nodeIdToObjectMap.get(parsedEdge.target.id);\n",
       "              shownEdge.id = parsedEdge.id;\n",
       "              shownEdge.label = state.manager.calcSingleEdgeLabelText(parsedEdge);\n",
       "              shownEdge.color = parsedEdge.color;\n",
       "              shownEdge.opacity = parsedEdge.opacity;\n",
       "              shownEdge.size = state.manager.calcSingleEdgeSize(parsedEdge, edgeSizeNormalizer);\n",
       "              shownEdge.label_color = parsedEdge.label_color;\n",
       "              shownEdge.label_size = state.manager.calcSingleEdgeLabelSize(parsedEdge);\n",
       "              shownEdge.multi_edge_counter = parsedEdge.multi_edge_counter;\n",
       "              if(typeof(parsedEdge.hover) !== \"undefined\"){\n",
       "                shownEdge.hover = parsedEdge.hover;\n",
       "              }\n",
       "              if(typeof(parsedEdge.click) !== \"undefined\"){\n",
       "                shownEdge.click = parsedEdge.click;\n",
       "              }\n",
       "              // Derived properties for performance improvement in updateEdgePositions\n",
       "              shownEdge.multi_edge_curvature_factor = state.manager.calcSingleEdgeCurvatureFactor(parsedEdge);\n",
       "              // Data structure for highlighting adjacent nodes and incident edges to this node\n",
       "              nodeToAdjacentNodesMap.add(shownEdge.source, shownEdge.target);\n",
       "              nodeToAdjacentNodesMap.add(shownEdge.target, shownEdge.source);\n",
       "              nodeToIncidentEdgesMap.add(shownEdge.source, shownEdge);\n",
       "              nodeToIncidentEdgesMap.add(shownEdge.target, shownEdge);\n",
       "            }\n",
       "            state.shownData.adjacency = nodeToAdjacentNodesMap;\n",
       "            state.shownData.incidence = nodeToIncidentEdgesMap;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeSize(parsedNode, nodeSizeNormalizer){\n",
       "            let nodeSize = nodeSizeNormalizer(parsedNode[state.nodeSizeDataSource]);\n",
       "            if(!isFinite(nodeSize)){\n",
       "              nodeSize = state.parsedData.general.node_size;\n",
       "            }\n",
       "            return nodeSize * state.nodeSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelText(parsedNode){\n",
       "            return String(parsedNode[state.nodeLabelTextDataSource]);\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelSize(parsedNode){\n",
       "            return parsedNode.label_size * state.nodeLabelSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelPlacement(node){\n",
       "            let baseSize = node.size_half;\n",
       "            if(state.showNodeImages && typeof(node.image) !== \"undefined\"){\n",
       "              baseSize = (node.size_half > node.image_size_half) ? node.size_half : node.image_size_half;\n",
       "            }\n",
       "            return baseSize + node.label_size * 0.77 + 2.0;\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeSize(parsedEdge, edgeSizeNormalizer){\n",
       "            let edgeSize = edgeSizeNormalizer(parsedEdge[state.edgeSizeDataSource]);\n",
       "            if(!isFinite(edgeSize)){\n",
       "              edgeSize = state.parsedData.general.edge_size;\n",
       "            }\n",
       "            return edgeSize * state.edgeSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeCurvatureFactor(parsedEdge){\n",
       "            const appearanceAdaptionFactor = 0.6;\n",
       "            return state.edgeCurvature * parsedEdge.multi_edge_counter * appearanceAdaptionFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeLabelText(parsedEdge){\n",
       "            return String(parsedEdge[state.edgeLabelTextDataSource]);\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeLabelSize(parsedEdge){\n",
       "            return parsedEdge.label_size * state.edgeLabelSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeSizeDerivatives(shownNode){\n",
       "            shownNode.size_half = shownNode.size / 2.0;\n",
       "            const appearanceAdaptionFactor = 1.2;\n",
       "            shownNode.image_size = shownNode.size * state.nodeImageSizeFactor * appearanceAdaptionFactor;\n",
       "            shownNode.image_size_half = shownNode.image_size / 2.0;\n",
       "            shownNode.relative_label_placement = state.manager.calcSingleNodeLabelPlacement(shownNode);\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelSizeDerivatives(shownNode){\n",
       "            shownNode.relative_label_placement = state.manager.calcSingleNodeLabelPlacement(shownNode);\n",
       "          },\n",
       "\n",
       "          calcSingleNodeBorderSizeDerivatives(shownNode){\n",
       "            shownNode.border_size_half = shownNode.border_size / 2.0;\n",
       "          },\n",
       "\n",
       "          createNodeSizeNormalizer(){\n",
       "            let normalizer;\n",
       "            if(state.useNodeSizeNormalization){\n",
       "              const dataMin = state.parsedData.general.node_properties.minima[state.nodeSizeDataSource],\n",
       "                dataMax = state.parsedData.general.node_properties.maxima[state.nodeSizeDataSource],\n",
       "                targetMin = state.nodeSizeNormalizationMin,\n",
       "                targetMax = state.nodeSizeNormalizationMax,\n",
       "                dataDiff = dataMax - dataMin,\n",
       "                targetDiff = targetMax - targetMin;\n",
       "              let factor = targetDiff / dataDiff;\n",
       "              if(!isFinite(factor) || factor === null){\n",
       "                factor = 0.0;\n",
       "              }\n",
       "              normalizer = function(val){\n",
       "                return (val - dataMin) * factor + targetMin;\n",
       "              }\n",
       "            } else{\n",
       "              normalizer = function(val){\n",
       "                return val;\n",
       "              }\n",
       "            }\n",
       "            return normalizer;\n",
       "          },\n",
       "\n",
       "          createEdgeSizeNormalizer(){\n",
       "            let normalizer;\n",
       "            if(state.useEdgeSizeNormalization){\n",
       "              const dataMin = state.parsedData.general.edge_properties.minima[state.edgeSizeDataSource],\n",
       "                dataMax = state.parsedData.general.edge_properties.maxima[state.edgeSizeDataSource],\n",
       "                targetMin = state.edgeSizeNormalizationMin,\n",
       "                targetMax = state.edgeSizeNormalizationMax,\n",
       "                dataDiff = dataMax - dataMin,\n",
       "                targetDiff = targetMax - targetMin;\n",
       "              let factor = targetDiff / dataDiff;\n",
       "              if(!isFinite(factor)){\n",
       "                factor = 0.0;\n",
       "              }\n",
       "              normalizer = function(val){\n",
       "                return (val - dataMin) * factor + targetMin;\n",
       "              }\n",
       "            } else{\n",
       "              normalizer = function(val){\n",
       "                return val;\n",
       "              }\n",
       "            }\n",
       "            return normalizer;\n",
       "          },\n",
       "\n",
       "          updateNodeSizes(){\n",
       "            // Data\n",
       "            const nodeSizeNormalizer = state.manager.createNodeSizeNormalizer();\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.size = state.manager.calcSingleNodeSize(parsedNode, nodeSizeNormalizer);\n",
       "              state.manager.calcSingleNodeSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeSizes();\n",
       "          },\n",
       "\n",
       "          updateNodeImageSizes(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              state.manager.calcSingleNodeSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeImages();\n",
       "          },\n",
       "\n",
       "          updateNodeLabelTexts(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.label = state.manager.calcSingleNodeLabelText(parsedNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          },\n",
       "\n",
       "          updateNodeLabelSizes(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.label_size = state.manager.calcSingleNodeLabelSize(parsedNode);\n",
       "              state.manager.calcSingleNodeLabelSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          },\n",
       "\n",
       "          updateEdgeSizes(){\n",
       "            // Data\n",
       "            const edgeSizeNormalizer = state.manager.createEdgeSizeNormalizer();\n",
       "            for(let i=0; i<state.parsedData.edges.length; i++){\n",
       "              const parsedEdge = state.parsedData.edges[i],\n",
       "                shownEdge = state.shownData.edges[i];\n",
       "              shownEdge.size = state.manager.calcSingleEdgeSize(parsedEdge, edgeSizeNormalizer);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateEdgeSizes();\n",
       "          },\n",
       "\n",
       "          updateEdgeCurvatures(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.edges.length; i++){\n",
       "              const parsedEdge = state.parsedData.edges[i],\n",
       "                shownEdge = state.shownData.edges[i];\n",
       "              shownEdge.multi_edge_curvature_factor = state.manager.calcSingleEdgeCurvatureFactor(parsedEdge);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateEdgeCurvatures();\n",
       "          },\n",
       "        }\n",
       "      }\n",
       "\n",
       "      const ui = {\n",
       "        symbols:{\n",
       "          // Choice of symbols is influenced by their appearance in different browsers\n",
       "          // Alternatives: \"▼\", \"▽\", \"▾\" / \"▲\", \"△\", \"▴\" / \"▶\", \"▷\", \"▸\" / \"◀\", \"◁\", \"◂\"\n",
       "          // ▶ is rendered strangely on some mobile phone browsers, ▸ remains normal\n",
       "          detailsShown: \"▾\",\n",
       "          detailsHidden: \"▴\",\n",
       "          menuShown: \"▸\",\n",
       "          menuHidden: \"◂\",\n",
       "          menuItemActive: \"▸\",\n",
       "          menuItemInactive: \"▾\",\n",
       "        },\n",
       "\n",
       "        elements:{\n",
       "          // Containers\n",
       "          mainContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-main-div\"),\n",
       "          tooltipContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-tooltip-div\"),\n",
       "          leftContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-left-div\"),\n",
       "          rightContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-right-div\"),\n",
       "          graphContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-graph-div\"),\n",
       "          detailsContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-details-div\"),\n",
       "          detailsHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-details-head\"),\n",
       "          detailsBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-details-body\"),\n",
       "          // Data sources\n",
       "          dataHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-data-head\"),\n",
       "          dataBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-data-body\"),\n",
       "          graphSelectionContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-graph-select-div\"),\n",
       "          graphSelection: document.getElementById(\"iK7xgtGfFHVbMnp3n-graph-select\"),\n",
       "          nodeSizeDataSourceSelect: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-data-source-select\"),\n",
       "          nodeSizeNormalizationCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-normalization-checkbox\"),\n",
       "          nodeSizeNormalizationContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-norm-div\"),\n",
       "          nodeSizeNormalizationMinText: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-normalization-min-text\"),\n",
       "          nodeSizeNormalizationMinSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-normalization-min-slider\"),\n",
       "          nodeSizeNormalizationMaxText: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-normalization-max-text\"),\n",
       "          nodeSizeNormalizationMaxSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-normalization-max-slider\"),\n",
       "          edgeSizeDataSourceSelect: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-data-source-select\"),\n",
       "          edgeSizeNormalizationCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-normalization-checkbox\"),\n",
       "          edgeSizeNormalizationContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-norm-div\"),\n",
       "          edgeSizeNormalizationMinText: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-normalization-min-text\"),\n",
       "          edgeSizeNormalizationMinSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-normalization-min-slider\"),\n",
       "          edgeSizeNormalizationMaxText: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-normalization-max-text\"),\n",
       "          edgeSizeNormalizationMaxSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-normalization-max-slider\"),\n",
       "          // General\n",
       "          generalHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-general-head\"),\n",
       "          generalBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-general-body\"),\n",
       "          resetButton: document.getElementById(\"iK7xgtGfFHVbMnp3n-reset\"),\n",
       "          fullscreenButton: document.getElementById(\"iK7xgtGfFHVbMnp3n-fullscreen-button\"),\n",
       "          svgExportButton: document.getElementById(\"iK7xgtGfFHVbMnp3n-svg\"),\n",
       "          pngExportButton: document.getElementById(\"iK7xgtGfFHVbMnp3n-png\"),\n",
       "          jpgExportButton: document.getElementById(\"iK7xgtGfFHVbMnp3n-jpg\"),\n",
       "          // Nodes\n",
       "          nodeHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-head\"),\n",
       "          nodeBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-body\"),\n",
       "          nodeCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-checkbox\"),\n",
       "          nodeSizeFactorText: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-factor-text\"),\n",
       "          nodeSizeFactorSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-size-factor-slider\"),\n",
       "          nodeDragFixCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-drag-fix-checkbox\"),\n",
       "          nodeHoverTooltipCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-hover-tooltip-checkbox\"),\n",
       "          nodeReleaseButton: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-release-button\"),\n",
       "          // Node images\n",
       "          nodeImageHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-image-head\"),\n",
       "          nodeImageBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-image-body\"),\n",
       "          nodeImageCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-image-checkbox\"),\n",
       "          nodeImageMetaControl: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-image-meta-control\"),\n",
       "          nodeImageSizeFactorText: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-image-size-factor-text\"),\n",
       "          nodeImageSizeFactorSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-image-size-factor-slider\"),\n",
       "          // Node labels\n",
       "          nodeLabelHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-head\"),\n",
       "          nodeLabelBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-body\"),\n",
       "          nodeLabelCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-checkbox\"),\n",
       "          nodeLabelBorderCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-border-checkbox\"),\n",
       "          nodeLabelTextDataSourceSelect: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-data-source-select\"),\n",
       "          nodeLabelSizeFactorText: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-size-factor-text\"),\n",
       "          nodeLabelSizeFactorSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-node-label-size-factor-slider\"),\n",
       "          // Edges\n",
       "          edgeHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-head\"),\n",
       "          edgeBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-body\"),\n",
       "          edgeCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-checkbox\"),\n",
       "          edgeSizeFactorText: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-factor-text\"),\n",
       "          edgeSizeFactorSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-size-factor-slider\"),\n",
       "          edgeCurvatureText: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-curvature-text\"),\n",
       "          edgeCurvatureSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-curvature-slider\"),\n",
       "          edgeHoverTooltipCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-edge-hover-tooltip-checkbox\"),\n",
       "          // Layout algorithm\n",
       "          layoutAlgorithmHead: document.getElementById(\"iK7xgtGfFHVbMnp3n-layout-algorithm-head\"),\n",
       "          layoutAlgorithmBody: document.getElementById(\"iK7xgtGfFHVbMnp3n-layout-algorithm-body\"),\n",
       "          simulationCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-simulation-active-checkbox\"),\n",
       "          manyBodyForceCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-checkbox\"),\n",
       "          manyBodyForceContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-div\"),\n",
       "          manyBodyForceStrengthText: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-strength-text\"),\n",
       "          manyBodyForceStrengthSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-strength-slider\"),\n",
       "          manyBodyForceThetaText: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-theta-text\"),\n",
       "          manyBodyForceThetaSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-theta-slider\"),\n",
       "          manyBodyForceMinDistCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-checkbox\"),\n",
       "          manyBodyForceMinDistContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-div\"),\n",
       "          manyBodyForceMinDistText: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-text\"),\n",
       "          manyBodyForceMinDistSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-min-distance-slider\"),\n",
       "          manyBodyForceMaxDistCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-checkbox\"),\n",
       "          manyBodyForceMaxDistContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-div\"),\n",
       "          manyBodyForceMaxDistText: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-text\"),\n",
       "          manyBodyForceMaxDistSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-many-body-force-max-distance-slider\"),\n",
       "          linksForceCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-links-force-checkbox\"),\n",
       "          linksForceContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-links-force-div\"),\n",
       "          linksForceDistanceText: document.getElementById(\"iK7xgtGfFHVbMnp3n-links-force-distance-text\"),\n",
       "          linksForceDistanceSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-links-force-distance-slider\"),\n",
       "          linksForceStrengthText: document.getElementById(\"iK7xgtGfFHVbMnp3n-links-force-strength-text\"),\n",
       "          linksForceStrengthSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-links-force-strength-slider\"),\n",
       "          xPositioningForceCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-x-positioning-force-checkbox\"),\n",
       "          xPositioningForceContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-x-positioning-force-div\"),\n",
       "          xPositioningForceStrengthText: document.getElementById(\"iK7xgtGfFHVbMnp3n-x-positioning-force-strength-text\"),\n",
       "          xPositioningForceStrengthSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-x-positioning-force-strength-slider\"),\n",
       "          yPositioningForceCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-y-positioning-force-checkbox\"),\n",
       "          yPositioningForceContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-y-positioning-force-div\"),\n",
       "          yPositioningForceStrengthText: document.getElementById(\"iK7xgtGfFHVbMnp3n-y-positioning-force-strength-text\"),\n",
       "          yPositioningForceStrengthSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-y-positioning-force-strength-slider\"),\n",
       "          zPositioningForceCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-z-positioning-force-checkbox\"),\n",
       "          zPositioningForceContainer: document.getElementById(\"iK7xgtGfFHVbMnp3n-z-positioning-force-div\"),\n",
       "          zPositioningForceStrengthText: document.getElementById(\"iK7xgtGfFHVbMnp3n-z-positioning-force-strength-text\"),\n",
       "          zPositioningForceStrengthSlider: document.getElementById(\"iK7xgtGfFHVbMnp3n-z-positioning-force-strength-slider\"),\n",
       "          centeringForceCheckbox: document.getElementById(\"iK7xgtGfFHVbMnp3n-centering-force-checkbox\"),\n",
       "        },\n",
       "\n",
       "        composites:{\n",
       "          responsiveContainer:{\n",
       "            init(){\n",
       "              // Delete all contained items (relevant only for reset, not first creation)\n",
       "              ui.deleteChildElements(ui.elements.graphContainer);\n",
       "              ui.deleteChildElements(ui.elements.detailsBody);\n",
       "              // Menu\n",
       "              if(state.showMenu){\n",
       "                ui.composites.menu.show();\n",
       "              } else{\n",
       "                ui.composites.menu.hide();\n",
       "              }\n",
       "              // Details\n",
       "              if(state.showDetails){\n",
       "                ui.composites.details.show(true);\n",
       "              } else{\n",
       "                ui.composites.details.hide(true);\n",
       "              }\n",
       "              // Divs\n",
       "              ui.composites.responsiveContainer.setInnerHeights();\n",
       "              ui.composites.responsiveContainer.setOuterHeights();\n",
       "              ui.composites.responsiveContainer.getInnerWidths();\n",
       "            },\n",
       "\n",
       "            getInnerWidths(){\n",
       "              state.graphContainerWidth = parseInt(ui.elements.graphContainer.clientWidth);\n",
       "              state.detailsContainerWidth = parseInt(ui.elements.detailsContainer.clientWidth);\n",
       "            },\n",
       "\n",
       "            getInnerHeights(){\n",
       "              state.graphContainerHeight = parseInt(ui.elements.graphContainer.clientHeight);\n",
       "              if(state.showDetails){\n",
       "                state.detailsContainerHeight = parseInt(ui.elements.detailsContainer.clientHeight);\n",
       "              }\n",
       "            },\n",
       "\n",
       "            setInnerHeights(){\n",
       "              ui.elements.graphContainer.style.height = state.graphContainerHeight + \"px\";\n",
       "              ui.elements.detailsContainer.style.height = state.detailsContainerHeight + \"px\";\n",
       "            },\n",
       "\n",
       "            setOuterHeights(){\n",
       "              ui.elements.mainContainer.style.height = ui.elements.leftContainer.offsetHeight + \"px\";\n",
       "            },\n",
       "\n",
       "            getSizes(){\n",
       "              ui.composites.responsiveContainer.getInnerWidths();\n",
       "              ui.composites.responsiveContainer.getInnerHeights();\n",
       "            },\n",
       "\n",
       "            setSizes(){\n",
       "              ui.composites.responsiveContainer.setInnerHeights();\n",
       "              ui.composites.responsiveContainer.setOuterHeights();\n",
       "            },\n",
       "\n",
       "            adaptToResize(){\n",
       "              ui.composites.responsiveContainer.getSizes();\n",
       "              ui.composites.responsiveContainer.setSizes();\n",
       "            },\n",
       "\n",
       "            adaptToFullscreen(){\n",
       "              ui.composites.responsiveContainer.getSizes();\n",
       "              if(document.fullscreenElement){\n",
       "                // On entering fullscreen, remember the current container heights\n",
       "                state.beforeFullscreenGraphContainerHeight = state.graphContainerHeight;\n",
       "                state.beforeFullscreenDetailsContainerHeight = state.detailsContainerHeight;\n",
       "                // and then adapt them to maximum height possible in full screen mode\n",
       "                function calculateFullscreenMaxGraphHeight(){\n",
       "                  let outerHeight = null;\n",
       "                  try{\n",
       "                    const mainDivComputedStyle = window.getComputedStyle(ui.elements.mainContainer),\n",
       "                      graphDivComputedStyle = window.getComputedStyle(ui.elements.graphContainer),\n",
       "                      paddingTop = parseFloat(mainDivComputedStyle.paddingTop),\n",
       "                      borderTop = parseFloat(graphDivComputedStyle.borderTopWidth),\n",
       "                      borderBottom = parseFloat(graphDivComputedStyle.borderBottomWidth),\n",
       "                      paddingBottom = parseFloat(mainDivComputedStyle.paddingBottom);\n",
       "                    outerHeight = paddingTop + borderTop + borderBottom + paddingBottom;\n",
       "                    if(!isFinite(outerHeight) || outerHeight === null){\n",
       "                      throw \"Invalid number\";\n",
       "                    }\n",
       "                  } catch(e){\n",
       "                    // Hard coded fallback, depends on CSS of containers (1px borders, 6px padding)\n",
       "                    outerHeight = 1 + 3 + 3 + 1;\n",
       "                  }\n",
       "                  let graphHeight = screen.height - outerHeight;\n",
       "                  if(state.showDetails){\n",
       "                    graphHeight -= ui.composites.details.calculateHeightDifference();\n",
       "                  }\n",
       "                  return graphHeight;\n",
       "                }\n",
       "                state.graphContainerHeight = calculateFullscreenMaxGraphHeight();\n",
       "              } else{\n",
       "                // On leaving fullscreen, set container heights back to remembered values\n",
       "                state.graphContainerHeight = state.beforeFullscreenGraphContainerHeight;\n",
       "                state.detailsContainerHeight = state.beforeFullscreenDetailsContainerHeight;\n",
       "              }\n",
       "              ui.composites.responsiveContainer.setSizes();\n",
       "            },\n",
       "          },\n",
       "\n",
       "          menu:{\n",
       "            show(){\n",
       "              ui.elements.leftContainer.style.width = \"80%\";\n",
       "              ui.elements.rightContainer.style.width = \"20%\";\n",
       "              ui.elements.rightContainer.style.display = \"block\";\n",
       "            },\n",
       "\n",
       "            hide(){\n",
       "              ui.elements.leftContainer.style.width = \"100%\";\n",
       "              ui.elements.rightContainer.style.width = \"0%\";\n",
       "              ui.elements.rightContainer.style.display = \"none\";\n",
       "            },\n",
       "\n",
       "            toggle(){\n",
       "              // Update menu button\n",
       "              const div = ui.elements.menuToggleDiv;\n",
       "              state.showMenu = !state.showMenu;\n",
       "              if(state.showMenu){\n",
       "                div.innerText = ui.symbols.menuShown;\n",
       "                ui.composites.menu.show();\n",
       "              } else {\n",
       "                div.innerHTML = ui.symbols.menuHidden;\n",
       "                ui.composites.menu.hide();\n",
       "              }\n",
       "\n",
       "              // Update rest of UI\n",
       "              ui.composites.responsiveContainer.getInnerWidths();\n",
       "              ui.composites.responsiveContainer.getInnerHeights();\n",
       "              ui.composites.responsiveContainer.setOuterHeights();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            },\n",
       "\n",
       "            setItem(keyElement, valElement, toActive){\n",
       "              const currentText = keyElement.innerHTML;\n",
       "              let sliceStart = 0;\n",
       "              if(currentText.startsWith(ui.symbols.menuItemActive)){\n",
       "                sliceStart = ui.symbols.menuItemActive.length;\n",
       "              } else if (currentText.startsWith(ui.symbols.menuItemInactive)){\n",
       "                sliceStart = ui.symbols.menuItemInactive.length;\n",
       "              }\n",
       "              if(toActive){\n",
       "                keyElement.innerHTML = ui.symbols.menuItemActive + currentText.slice(sliceStart);\n",
       "                keyElement.style.backgroundColor = \"#f5f5f5\";\n",
       "                keyElement.style.color = \"black\";\n",
       "                keyElement.style.borderColor = \"#999\";\n",
       "                keyElement.style.boxShadow = \"0px 0px 3px rgba(0, 0, 0, 0.35)\";\n",
       "                valElement.style.display = \"block\";\n",
       "              } else {\n",
       "                keyElement.innerHTML = ui.symbols.menuItemInactive + currentText.slice(sliceStart);\n",
       "                keyElement.style.backgroundColor = \"white\";\n",
       "                keyElement.style.color = \"#222\";\n",
       "                keyElement.style.borderColor = \"#ccc\";\n",
       "                keyElement.style.boxShadow = \"0px 0px 3px rgba(0, 0, 0, 0.2)\";\n",
       "                valElement.style.display = \"none\";\n",
       "              }\n",
       "            },\n",
       "\n",
       "            toggleItem(keyElement, valElement){\n",
       "              const toActive = !(valElement.style.display !== \"none\");\n",
       "              ui.composites.menu.setItem(keyElement, valElement, toActive);\n",
       "            },\n",
       "          },\n",
       "\n",
       "          details:{\n",
       "            calculateHeightDifference(){\n",
       "              let outerHeight = null;\n",
       "              try{\n",
       "                const graphContainerComputedStyle = window.getComputedStyle(ui.elements.graphContainer),\n",
       "                  detailsContainerComputedStyle = window.getComputedStyle(ui.elements.detailsContainer),\n",
       "                  border1 = parseFloat(graphContainerComputedStyle.borderBottomWidth),\n",
       "                  margin = parseFloat(detailsContainerComputedStyle.marginTop),\n",
       "                  border2 = parseFloat(detailsContainerComputedStyle.borderTopWidth);\n",
       "                outerHeight = border1 + margin + border2;\n",
       "                if(!isFinite(outerHeight) || outerHeight === null){\n",
       "                  throw \"Invalid number\";\n",
       "                }\n",
       "              } catch(e){\n",
       "                // Hard coded fallback, depends on CSS of containers (1px borders, 5px margin)\n",
       "                outerHeight = 7.0;\n",
       "              }\n",
       "              return state.detailsContainerHeight + outerHeight\n",
       "            },\n",
       "\n",
       "            show(init=false){\n",
       "              // Visibility\n",
       "              ui.elements.detailsContainer.style.display = \"block\";\n",
       "              if(!init){\n",
       "                // Height\n",
       "                const heightDiff = ui.composites.details.calculateHeightDifference();\n",
       "                state.graphContainerHeight -= heightDiff;\n",
       "                if(state.graphContainerHeight < 70){\n",
       "                  state.graphContainerHeight = 70;\n",
       "                }\n",
       "                // Update rest of UI\n",
       "                ui.composites.responsiveContainer.setSizes();\n",
       "                ui.composites.graph.updateGraphDrawingArea();\n",
       "              }\n",
       "            },\n",
       "\n",
       "            hide(init=false){\n",
       "              // Visibility\n",
       "              ui.elements.detailsContainer.style.display = \"none\";\n",
       "              if(!init){\n",
       "                // Height\n",
       "                const heightDiff = ui.composites.details.calculateHeightDifference();\n",
       "                state.graphContainerHeight += heightDiff;\n",
       "                // Update rest of UI\n",
       "                ui.composites.responsiveContainer.setSizes();\n",
       "                ui.composites.graph.updateGraphDrawingArea();\n",
       "              }\n",
       "            },\n",
       "\n",
       "            toggle(){\n",
       "              // Update details button\n",
       "              const toggleDiv = ui.elements.detailsToggleDiv;\n",
       "              state.showDetails = !state.showDetails;\n",
       "              if(state.showDetails){\n",
       "                toggleDiv.innerText = ui.symbols.detailsShown;\n",
       "                ui.composites.details.show();\n",
       "              } else {\n",
       "                toggleDiv.innerHTML = ui.symbols.detailsHidden;\n",
       "                ui.composites.details.hide();\n",
       "              }\n",
       "            },\n",
       "          },\n",
       "\n",
       "          download:{\n",
       "            png(filename){\n",
       "              ui.composites.download._rasterImage(filename, \"png\");\n",
       "            },\n",
       "\n",
       "            jpg(filename){\n",
       "              ui.composites.download._rasterImage(filename, \"jpeg\");\n",
       "            },\n",
       "\n",
       "            _rasterImage(filename, format, resolutionFactor=4.0){\n",
       "              const renderer = state.webglGraph.renderer(),\n",
       "                scene = state.webglGraph.scene(),\n",
       "                camera = state.webglGraph.camera(),\n",
       "                mimeType = \"image/\" + format,\n",
       "                size = new THREE.Vector2(0, 0);\n",
       "\n",
       "              renderer.getSize(size);\n",
       "              const width = size.x,\n",
       "                height = size.y;\n",
       "\n",
       "              function upsize(){\n",
       "                renderer.setSize(width * resolutionFactor, height * resolutionFactor);\n",
       "                renderer.render(scene, camera);\n",
       "              }\n",
       "              function downsize(){\n",
       "                renderer.setSize(width, height);\n",
       "                renderer.render(scene, camera);\n",
       "              }\n",
       "              // Increase resolution\n",
       "              upsize();\n",
       "              // Create image and decrease solution to original value\n",
       "              function finishedBlobCallback(blob){\n",
       "                ui.composites.download._blobToFileDownload(blob, filename);\n",
       "                downsize();\n",
       "              }\n",
       "              renderer.domElement.toBlob(finishedBlobCallback, mimeType, 1.0);\n",
       "            },\n",
       "\n",
       "            _blobToFileDownload(blob, filename){\n",
       "              const url = URL.createObjectURL(blob),\n",
       "                a = document.createElement(\"a\");\n",
       "              function handleClick(){\n",
       "                setTimeout(function(){\n",
       "                  // Long waiting time before removal for slow devices like mobile phones\n",
       "                  URL.revokeObjectURL(url);\n",
       "                  this.removeEventListener(\"click\", handleClick);\n",
       "                }, 20000);\n",
       "              };\n",
       "              document.body.appendChild(a);\n",
       "              a.href = url;\n",
       "              a.download = filename;\n",
       "              a.addEventListener(\"click\", handleClick, false);\n",
       "              a.click();\n",
       "              document.body.removeChild(a);\n",
       "            },\n",
       "          },\n",
       "\n",
       "          selection(element, optionList, valueList=undefined) {\n",
       "            while(element.hasChildNodes()){\n",
       "              element.removeChild(element.firstChild);\n",
       "            }\n",
       "            for(let i=0; i<optionList.length; i++){\n",
       "              let text = optionList[i];\n",
       "              let value = text;\n",
       "              if(valueList){\n",
       "                value = valueList[i];\n",
       "              }\n",
       "              let opt = document.createElement(\"option\");\n",
       "              opt.appendChild(document.createTextNode(text));\n",
       "              opt.value = value;\n",
       "              element.appendChild(opt);\n",
       "            }\n",
       "          },\n",
       "\n",
       "          tooltip:{\n",
       "            show(xShift=null, yShift=null){\n",
       "              if(isFinite(xShift) && xShift !== null){\n",
       "                ui.elements.tooltipContainer.style.left =  parseInt(xShift) + \"px\";\n",
       "              }\n",
       "              if(isFinite(yShift) && yShift !== null){\n",
       "                ui.elements.tooltipContainer.style.top = parseInt(yShift) + \"px\";\n",
       "              }\n",
       "              ui.elements.tooltipContainer.style.transition = \"visibility 0s, opacity 0.1s\";\n",
       "              ui.elements.tooltipContainer.style.visibility = \"visible\";\n",
       "              ui.elements.tooltipContainer.style.opacity = 1.0;\n",
       "            },\n",
       "\n",
       "            hide(){\n",
       "              ui.elements.tooltipContainer.style.transition = \"visibility 0.3s, opacity 0.3s ease-in\";\n",
       "              ui.elements.tooltipContainer.style.visibility = \"hidden\";\n",
       "              ui.elements.tooltipContainer.style.opacity = 0.0;\n",
       "            },\n",
       "          },\n",
       "\n",
       "          progressBar:{\n",
       "            create(){\n",
       "              // Main container\n",
       "              this.mainContainer = document.createElement(\"div\");\n",
       "              this.mainContainer.id = \"iK7xgtGfFHVbMnp3n-progress-container\";\n",
       "              this.mainContainer.style.backgroundColor = state.shownData.general.background_color;\n",
       "              ui.elements.graphContainer.style.backgroundColor = state.shownData.general.background_color;\n",
       "              // Text container\n",
       "              const numNodes = state.parsedData.nodes.length;\n",
       "              this.textContainer = document.createElement(\"div\");\n",
       "              this.textContainer.innerText = \"Large graph with \" + numNodes + \" nodes. Calculating an initial layout before visualizing it.\";\n",
       "              this.textContainer.style.textAlign = \"center\";\n",
       "              // Bar container\n",
       "              this.outerBarContainer = document.createElement(\"div\");\n",
       "              this.outerBarContainer.style.border = \"1px solid black\";\n",
       "              this.outerBarContainer.style.borderRadius = \"4px\";\n",
       "              this.outerBarContainer.style.marginTop = \"1ex\";\n",
       "              this.outerBarContainer.style.padding = \"1px\";\n",
       "              this.innerBarContainer = document.createElement(\"div\");\n",
       "              this.innerBarContainer.style.backgroundColor = \"black\";\n",
       "              this.innerBarContainer.style.width = \"0%\";\n",
       "              this.innerBarContainer.style.height = \"8px\";\n",
       "              this.innerBarContainer.style.borderRadius = \"3px\";\n",
       "              // Add them to DOM\n",
       "              this.outerBarContainer.appendChild(this.innerBarContainer);\n",
       "              this.mainContainer.appendChild(this.textContainer);\n",
       "              // this.mainContainer.appendChild(this.outerBarContainer);  // Hide bar (not updated)\n",
       "              ui.elements.graphContainer.appendChild(this.mainContainer);\n",
       "            },\n",
       "\n",
       "            update(percentage){\n",
       "              this.innerBarContainer.style.width = percentage + \"%\";\n",
       "            },\n",
       "\n",
       "            remove(){\n",
       "              ui.elements.graphContainer.removeChild(this.mainContainer);\n",
       "            }\n",
       "          },\n",
       "\n",
       "          graph:{\n",
       "            createGraph(){\n",
       "              // Remove existing elements\n",
       "              ui.deleteChildElements(ui.elements.graphContainer);\n",
       "\n",
       "              // Create new elements\n",
       "              // - Graph\n",
       "              state.webglGraph = ForceGraph3D()(ui.elements.graphContainer)\n",
       "                .showNavInfo(false)\n",
       "                .backgroundColor(state.shownData.general.background_color)\n",
       "                .width(state.graphContainerWidth)\n",
       "                .height(state.graphContainerHeight);\n",
       "              // Attempt to prevent some memory leaks\n",
       "              const renderer = state.webglGraph.renderer();\n",
       "              state.threeObjects.trackRenderer(\"currentGraph\", renderer);\n",
       "              const renderTarget = renderer.getRenderTarget();\n",
       "              state.threeObjects.trackRenderTarget(\"currentRenderTarget\", renderTarget);\n",
       "              // - Menu toggle button\n",
       "              if(state.showMenuToggleButton){\n",
       "                const menuDiv = document.createElement(\"div\");\n",
       "                if(state.showMenu){\n",
       "                  menuDiv.innerText = ui.symbols.menuShown;\n",
       "                } else {\n",
       "                  menuDiv.innerText = ui.symbols.menuHidden;\n",
       "                }\n",
       "                menuDiv.id = \"iK7xgtGfFHVbMnp3n-menu-toggle-button\";\n",
       "                menuDiv.onclick = ui.composites.menu.toggle;\n",
       "                ui.elements.graphContainer.appendChild(menuDiv);\n",
       "                ui.elements.menuToggleDiv = menuDiv;\n",
       "              }\n",
       "              // - Details toggle button\n",
       "              if(state.showDetailsToggleButton){\n",
       "                const detailsDiv = document.createElement(\"div\");\n",
       "                if(state.showDetails){\n",
       "                  detailsDiv.innerText = ui.symbols.detailsShown;\n",
       "                } else {\n",
       "                  detailsDiv.innerText = ui.symbols.detailsHidden;\n",
       "                }\n",
       "                detailsDiv.id = \"iK7xgtGfFHVbMnp3n-details-toggle-button\";\n",
       "                detailsDiv.onclick = ui.composites.details.toggle;\n",
       "                ui.elements.graphContainer.appendChild(detailsDiv);\n",
       "                ui.elements.detailsToggleDiv = detailsDiv;\n",
       "              }\n",
       "              // Wait a bit to finish UI rendering, then start potentially slow layout computation\n",
       "              setTimeout(function(){\n",
       "                // - Layout algorithm\n",
       "                ui.composites.graph.setLayout();\n",
       "                // - Data\n",
       "                const data = {\n",
       "                  nodes: state.shownData.nodes,\n",
       "                  links: state.shownData.edges,\n",
       "                };\n",
       "                state.webglGraph\n",
       "                  .graphData(data);\n",
       "                // - Nodes\n",
       "                state.webglGraph\n",
       "                  .nodeThreeObject(ui.composites.graph.createSingleNodeObject)\n",
       "                  .nodeVisibility(state.showNodes);\n",
       "                // - Edges\n",
       "                // Uses linkMaterial because linkOpacity can only be a single number, not function\n",
       "                state.webglGraph\n",
       "                  .linkVisibility(state.showEdges)\n",
       "                  .linkWidth(edge => edge.size)\n",
       "                  .linkCurvature(ui.composites.graph._calcEdgeCurvature)\n",
       "                  .linkMaterial(ui.composites.graph.createSingleEdgeMaterial);\n",
       "                if(state.shownData.general.directed){\n",
       "                  state.webglGraph\n",
       "                    .linkDirectionalArrowColor(edge => state.shownData.general.arrow_color)\n",
       "                    .linkDirectionalArrowLength(edge => state.shownData.general.arrow_size)\n",
       "                    .linkDirectionalArrowRelPos(ui.composites.graph._calcArrowPosition);\n",
       "                }\n",
       "                // - Graph behavior\n",
       "                ui.composites.graph.setBehavior();\n",
       "              }, 250);\n",
       "            },\n",
       "\n",
       "            _calcArrowPosition(edge){\n",
       "              if(edge.source === edge.target){\n",
       "                // Case 1: Self loop\n",
       "                return 0.5;\n",
       "              } else{\n",
       "                // Case 2: Normal edge\n",
       "                const dx = edge.target.x - edge.source.x,\n",
       "                  dy = edge.target.y - edge.source.y,\n",
       "                  dz = edge.target.z - edge.source.z,\n",
       "                  len = Math.sqrt(dx**2 + dy**2 + dz**2);\n",
       "                return 0.99 - edge.target.size_half / len;\n",
       "              }\n",
       "            },\n",
       "\n",
       "            setLayout(){\n",
       "              // Store all forces provided by the library (for reuse when turning them off)\n",
       "              state.predefinedForces = {\n",
       "                \"charge\": state.webglGraph.d3Force(\"charge\"),\n",
       "                \"link\": state.webglGraph.d3Force(\"link\"),\n",
       "                \"center\": state.webglGraph.d3Force(\"center\"),\n",
       "              }\n",
       "              ui.composites.graph.simulationManager.setAllForces();\n",
       "              state.webglGraph\n",
       "                .d3VelocityDecay(0.3);  // default 0.4, lower value means less friction\n",
       "\n",
       "              // - Progress bar: only if large graph, stops simulation to get initial static image\n",
       "              const numNodes = state.parsedData.nodes.length;\n",
       "              if(numNodes > state.largeGraphThreshold){\n",
       "                // Layout start\n",
       "                ui.composites.progressBar.create();\n",
       "                let numIterations = 40;\n",
       "                if(numNodes >= 25000){\n",
       "                  numIterations = 9;\n",
       "                } else if(numNodes >= 10000){\n",
       "                  numIterations = 13;\n",
       "                } else if(numNodes >= 5000){\n",
       "                  numIterations = 18;\n",
       "                } else if(numNodes >= 2000){\n",
       "                  numIterations = 25;\n",
       "                } else if(numNodes >= 1000){\n",
       "                  numIterations = 35;\n",
       "                }\n",
       "                // Layout update\n",
       "                state.webglGraph\n",
       "                  .warmupTicks(numIterations);\n",
       "                // Layout finished\n",
       "                state.webglGraph\n",
       "                  .onEngineTick(function(){\n",
       "                    // Freeze graph after warmup to get a static rendering\n",
       "                    state.webglGraph.cooldownTicks(0);\n",
       "                    // Remove progress message\n",
       "                    ui.composites.progressBar.remove();\n",
       "                  })\n",
       "                  .onEngineStop(function(){\n",
       "                    // Remove tick functions\n",
       "                    state.webglGraph.onEngineTick(function(){});\n",
       "                    state.webglGraph.onEngineStop(function(){});\n",
       "                    // Unfreeze graph for future user interaction\n",
       "                    state.webglGraph.cooldownTicks(Infinity);\n",
       "                  })\n",
       "              }\n",
       "            },\n",
       "\n",
       "            setBehavior(){\n",
       "              // - Node click behavior\n",
       "              function createNodeText(node){\n",
       "                let htmlText = \"<div>Node: \" + String(node.id) + \"</div>\";\n",
       "                if(typeof(node.click) !== \"undefined\" && node.click !== \"\"){\n",
       "                  htmlText += '<div id=\"iK7xgtGfFHVbMnp3n-details-user-provided\">' + node.click + '</div>';\n",
       "                }\n",
       "                return htmlText;\n",
       "              }\n",
       "              state.webglGraph\n",
       "                .onNodeClick(function(node){\n",
       "                  try {\n",
       "                    ui.elements.detailsBody.innerHTML = createNodeText(node);\n",
       "                  } catch(e) {\n",
       "                  };\n",
       "                });\n",
       "              // - Node drag behavior\n",
       "              state.webglGraph\n",
       "                .onNodeDragEnd(function(node){\n",
       "                  if(state.nodeDragFix){\n",
       "                    node.fx = node.x;\n",
       "                    node.fy = node.y;\n",
       "                    node.fz = node.z;\n",
       "                  } else{\n",
       "                    node.fx = null;\n",
       "                    node.fy = null;\n",
       "                    node.fz = null;\n",
       "                  }\n",
       "                });\n",
       "              // - Edge click behavior\n",
       "              function createEdgeText(edge){\n",
       "                let htmlText = \"<div>Edge: \" + String(edge.id) + \"</div>\";\n",
       "                if(typeof(edge.click) !== \"undefined\" && edge.click !== \"\"){\n",
       "                  htmlText += '<div id=\"iK7xgtGfFHVbMnp3n-details-user-provided\">' + edge.click + '</div>';\n",
       "                }\n",
       "                return htmlText;\n",
       "              }\n",
       "              state.webglGraph\n",
       "                .onLinkClick(function(edge){\n",
       "                  try {\n",
       "                    ui.elements.detailsBody.innerHTML = createEdgeText(edge);\n",
       "                  } catch(e){\n",
       "                  };\n",
       "                });\n",
       "              // - Hover behavior\n",
       "              document.addEventListener(\"mousemove\", function(event){\n",
       "                // Hack to get mouse position in hover event handler\n",
       "                // https://stackoverflow.com/questions/2601097/how-to-get-the-mouse-position-without-events-without-moving-the-mouse\n",
       "                state.cursorX = event.clientX;\n",
       "                state.cursorY = event.clientY;\n",
       "              });\n",
       "              function calculateRelativePosition(){\n",
       "                const cont = ui.elements.mainContainer,\n",
       "                  contAbsX = cont.offsetLeft,\n",
       "                  contAbsY = cont.offsetTop,\n",
       "                  contBoundingRect = cont.getBoundingClientRect(),\n",
       "                  contClientX = contBoundingRect.left,\n",
       "                  contClientY = contBoundingRect.top,\n",
       "                  contWidth = contBoundingRect.width;\n",
       "                let deltaX = state.cursorX - contClientX,\n",
       "                  deltaY = state.cursorY - contClientY,\n",
       "                  deltaXMax = contWidth * 0.85;\n",
       "                if(deltaX > deltaXMax){\n",
       "                  deltaX = deltaXMax;\n",
       "                }\n",
       "                const xShift = contAbsX + deltaX + 7,\n",
       "                  yShift = contAbsY + deltaY + 14;\n",
       "                return {\"xShift\": xShift, \"yShift\": yShift};\n",
       "              }\n",
       "              // - Node hover behavior\n",
       "              state.webglGraph\n",
       "                .onNodeHover(function (node){\n",
       "                  if(node !== null){\n",
       "                    if(typeof(node.hover) !== \"undefined\"){\n",
       "                      if(state.nodeHoverTooltip){\n",
       "                        const relPos = calculateRelativePosition();\n",
       "                        ui.elements.tooltipContainer.innerHTML = node.hover;\n",
       "                        ui.composites.tooltip.show(relPos.xShift, relPos.yShift);\n",
       "                      }\n",
       "                    }\n",
       "                  } else{\n",
       "                    ui.composites.tooltip.hide();\n",
       "                  }\n",
       "                });\n",
       "              // - Edge hover behavior\n",
       "              state.webglGraph\n",
       "                .onLinkHover(function (edge){\n",
       "                  if(edge !== null){\n",
       "                    if(typeof(edge.hover) !== \"undefined\"){\n",
       "                      if(state.edgeHoverTooltip){\n",
       "                        const relPos = calculateRelativePosition();\n",
       "                        ui.elements.tooltipContainer.innerHTML = edge.hover;\n",
       "                        ui.composites.tooltip.show(relPos.xShift, relPos.yShift);\n",
       "                      }\n",
       "                    }\n",
       "                  } else{\n",
       "                    ui.composites.tooltip.hide();\n",
       "                  }\n",
       "                });\n",
       "            },\n",
       "\n",
       "            updateGraphDrawingArea(){\n",
       "              state.webglGraph\n",
       "                .width(state.graphContainerWidth)\n",
       "                .height(state.graphContainerHeight)\n",
       "            },\n",
       "\n",
       "            // Nodes\n",
       "            createSingleNodeObject(node){\n",
       "              let obj = null;\n",
       "              // Object creator functions\n",
       "              function createGeometicObject(id, shape, size, sizeHalf, color, opacity){\n",
       "                const material = new THREE.MeshLambertMaterial({\n",
       "                  color: color,\n",
       "                  opacity: opacity,\n",
       "                  transparent: true,\n",
       "                  depthWrite: true,\n",
       "                });\n",
       "                state.threeObjects.trackMaterial(id, material);\n",
       "                let geometry = null;\n",
       "                if (shape == \"rectangle\") {\n",
       "                  geometry = new THREE.BoxGeometry(size, size, size);  // width, height, depth\n",
       "                } else if (shape == \"hexagon\") {\n",
       "                  geometry = new THREE.IcosahedronGeometry(sizeHalf);  // radius\n",
       "                } else {\n",
       "                  geometry = new THREE.SphereGeometry(sizeHalf, 16, 12);  // radius, widthSegments, heightSegments\n",
       "                }\n",
       "                state.threeObjects.trackGeometry(id, geometry);\n",
       "                obj = new THREE.Mesh(geometry, material);\n",
       "                return obj;\n",
       "              }\n",
       "              function createImageObject(id, image, size){\n",
       "                const material = new THREE.MeshBasicMaterial({\n",
       "                  transparent: true,\n",
       "                  depthWrite: false,\n",
       "                  opacity: 0.0,\n",
       "                });\n",
       "                const geometry = new THREE.SphereGeometry(size);\n",
       "                obj = new THREE.Mesh(geometry, material);\n",
       "                state.threeObjects.trackGeometry(id, geometry);\n",
       "                state.threeObjects.trackMaterial(id, material);\n",
       "                function onTextureLoad(texture){\n",
       "                  const width = texture.image.width,\n",
       "                    height = texture.image.height,\n",
       "                    factor1 = width / size,\n",
       "                    factor2 = height / size,\n",
       "                    largerFactor = (factor1 > factor2) ? factor1 : factor2;\n",
       "                  const imageMaterial = new THREE.SpriteMaterial({map: imageTexture});\n",
       "                  state.threeObjects.trackMaterial(id+\"image\", imageMaterial);\n",
       "                  const imageSprite = new THREE.Sprite(imageMaterial);\n",
       "                  imageSprite.scale.set(width / largerFactor, height / largerFactor, 1);\n",
       "                  obj.add(imageSprite);\n",
       "                }\n",
       "                const imageTexture = new THREE.TextureLoader().load(image, onTextureLoad);\n",
       "                state.threeObjects.trackTexture(id, imageTexture);\n",
       "                imageTexture.minFilter = THREE.LinearFilter;\n",
       "                return obj;\n",
       "              }\n",
       "              function createTextSpriteObject(id, text, fontSize, fontColor, fontBorderColor, fontName){\n",
       "                // Parameter processing\n",
       "                fontSize = fontSize * 10;\n",
       "                const fontStyle = fontSize + \"px \" + fontName;\n",
       "                // Canvas preparation: appropriate size for given text and text style\n",
       "                const canvas = document.createElement(\"canvas\"),\n",
       "                  context = canvas.getContext(\"2d\");\n",
       "                context.font = fontStyle;\n",
       "                const exactWidth = context.measureText(text).width,\n",
       "                  approxHeight = context.measureText(\"M\").width * 2.0;\n",
       "                canvas.width = exactWidth;\n",
       "                canvas.height = approxHeight;\n",
       "                context.font = fontStyle;\n",
       "                // Text to canvas\n",
       "                if(state.showNodeLabelBorders){\n",
       "                  context.lineWidth = 6;\n",
       "                  context.strokeStyle = fontBorderColor;\n",
       "                  context.strokeText(text, 0, fontSize);\n",
       "                }\n",
       "                context.fillStyle = fontColor;\n",
       "                context.fillText(text, 0, fontSize);\n",
       "                // Canvas to sprite\n",
       "                const texture = new THREE.Texture(canvas);\n",
       "                state.threeObjects.trackTexture(id+\"text\", texture);\n",
       "                texture.minFilter = THREE.LinearFilter;\n",
       "                texture.needsUpdate = true;\n",
       "                const spriteMaterial = new THREE.SpriteMaterial({map: texture, depthWrite: false}),\n",
       "                  sprite = new THREE.Sprite(spriteMaterial),\n",
       "                  sizeCorrectionFactor = 0.1;\n",
       "                state.threeObjects.trackMaterial(id+\"text\", spriteMaterial);\n",
       "                sprite.scale.set(exactWidth * sizeCorrectionFactor, approxHeight * sizeCorrectionFactor, 1);\n",
       "                return sprite;\n",
       "              }\n",
       "              // Parent object: Image or geometric object\n",
       "              if(state.showNodeImages && typeof(node.image) !== \"undefined\"){\n",
       "                obj = createImageObject(node.id, node.image, node.image_size);\n",
       "              } else{\n",
       "                obj = createGeometicObject(node.id, node.shape, node.size, node.size_half, node.color, node.opacity);\n",
       "              }\n",
       "              // Child object: Text sprite (optional)\n",
       "              if(state.showNodeLabels && node.label !== \"\"){\n",
       "                const sprite = createTextSpriteObject(\n",
       "                  node.id, node.label, node.label_size, node.label_color,\n",
       "                  state.shownData.general.background_color, state.nodeLabelFont);\n",
       "                let dx = 0,\n",
       "                  dy = -node.relative_label_placement,\n",
       "                  dz = 0;\n",
       "                sprite.position.set(dx, dy, dz);\n",
       "                obj.add(sprite);\n",
       "              }\n",
       "              return obj;\n",
       "            },\n",
       "\n",
       "            updateNodeVisibilities(){\n",
       "              state.webglGraph\n",
       "                .nodeVisibility(state.showNodes);\n",
       "            },\n",
       "\n",
       "            updateNodeSizes(){\n",
       "              state.webglGraph\n",
       "                .nodeThreeObject(ui.composites.graph.createSingleNodeObject);\n",
       "            },\n",
       "\n",
       "            // Node images\n",
       "            updateNodeImages(){\n",
       "              state.webglGraph\n",
       "                .nodeThreeObject(ui.composites.graph.createSingleNodeObject)\n",
       "            },\n",
       "\n",
       "            // Node labels\n",
       "            updateNodeLabels(){\n",
       "              state.webglGraph\n",
       "                .nodeThreeObject(ui.composites.graph.createSingleNodeObject)\n",
       "            },\n",
       "\n",
       "            // Edges\n",
       "            createSingleEdgeMaterial(edge){\n",
       "              const material = new THREE.MeshLambertMaterial({\n",
       "                color: edge.color,\n",
       "                opacity: edge.opacity,\n",
       "                transparent: true,\n",
       "                depthWrite: true,\n",
       "              });\n",
       "              return material;\n",
       "            },\n",
       "\n",
       "            updateEdgeVisibilities(){\n",
       "              state.webglGraph\n",
       "                .linkVisibility(state.showEdges)\n",
       "            },\n",
       "\n",
       "            updateEdgeSizes(){\n",
       "              state.webglGraph\n",
       "                .linkWidth(edge => edge.size);\n",
       "            },\n",
       "\n",
       "            _calcEdgeCurvature(edge){\n",
       "              if(edge.source === edge.target){\n",
       "                return ui.composites.graph._calcSelfLoopCurvature(edge);\n",
       "              } else{\n",
       "                return ui.composites.graph._calcNormalEdgeCurvature(edge);\n",
       "              }\n",
       "            },\n",
       "\n",
       "            _calcNormalEdgeCurvature(edge){\n",
       "              return edge.multi_edge_curvature_factor;\n",
       "            },\n",
       "\n",
       "            _calcSelfLoopCurvature(edge){\n",
       "              return edge.source.size / 50.0 + edge.multi_edge_counter / 4.0 + Math.abs(edge.multi_edge_curvature_factor);\n",
       "            },\n",
       "\n",
       "            updateEdgeCurvatures(){\n",
       "              state.webglGraph\n",
       "                .linkCurvature(ui.composites.graph._calcEdgeCurvature)\n",
       "                .linkVisibility(state.showEdges);  // causes a redraw, relevant if graph has stabilized\n",
       "            },\n",
       "\n",
       "            // Layout algorithm\n",
       "            simulationManager:{\n",
       "              move(){\n",
       "                if(state.layoutAlgorithmActive){\n",
       "                  state.webglGraph.d3ReheatSimulation();\n",
       "                }\n",
       "              },\n",
       "              restart(){\n",
       "                state.webglGraph.cooldownTicks(Infinity);\n",
       "                this.setAllForces();\n",
       "                this.move();\n",
       "              },\n",
       "              stop(){\n",
       "                state.webglGraph.cooldownTicks(0);\n",
       "                this.removeAllForces();\n",
       "              },\n",
       "              releaseFixedNodes(){\n",
       "                const nodes = state.shownData.nodes;\n",
       "                for(let i=0; i<nodes.length; i++){\n",
       "                  const node = nodes[i];\n",
       "                  node.fx = null;\n",
       "                  node.fy = null;\n",
       "                  node.fz = null;\n",
       "                }\n",
       "              },\n",
       "              setAllForces(){\n",
       "                this.setCenteringForce();\n",
       "                this.setLinksForce();\n",
       "                this.setManyBodyForce();\n",
       "                this.setXPositioningForce();\n",
       "                this.setYPositioningForce();\n",
       "                this.setZPositioningForce();\n",
       "              },\n",
       "              removeAllForces(){\n",
       "                state.webglGraph.d3Force(\"center\", null);\n",
       "                state.webglGraph.d3Force(\"link\", null);\n",
       "                state.webglGraph.d3Force(\"charge\", null);\n",
       "                state.webglGraph.d3Force(\"x-positioning\", null);\n",
       "                state.webglGraph.d3Force(\"y-positioning\", null);\n",
       "                state.webglGraph.d3Force(\"z-positioning\", null);\n",
       "              },\n",
       "              setCenteringForce(){\n",
       "                let centeringForce = null;\n",
       "                if(state.useCenteringForce && state.layoutAlgorithmActive){\n",
       "                  centeringForce = state.predefinedForces.center\n",
       "                    .x(0.0)\n",
       "                    .y(0.0);\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"center\", centeringForce);\n",
       "              },\n",
       "              setLinksForce(){\n",
       "                let linksForce = null;\n",
       "                if(state.useLinksForce && state.layoutAlgorithmActive){\n",
       "                  const nodes = state.shownData.nodes,\n",
       "                    edges = state.shownData.edges;\n",
       "                  if(!state.shownData.edgeCounts){\n",
       "                    const count = {};\n",
       "                    for(let i=0; i<edges.length; i++){\n",
       "                      const edge = edges[i];\n",
       "                      count[edge.source.id] = (count[edge.source.id] || 0) + 1;\n",
       "                      count[edge.target.id] = (count[edge.target.id] || 0) + 1;\n",
       "                    }\n",
       "                    state.shownData.edgeCounts = count;\n",
       "                  }\n",
       "                  const appearanceAdaptionFactor = 2.0;\n",
       "                  linksForce = state.predefinedForces.link\n",
       "                    .distance(state.linksForceDistance * appearanceAdaptionFactor)\n",
       "                    .strength(function(d){\n",
       "                      // Adapted from https://github.com/d3/d3-force/blob/master/src/link.js\n",
       "                      const fixedConnectivity = Math.min(\n",
       "                        state.shownData.edgeCounts[d.source.id],\n",
       "                        state.shownData.edgeCounts[d.target.id]\n",
       "                      );\n",
       "                      const adjustableStrength = 2.0 * state.linksForceStrength;\n",
       "                      return adjustableStrength / fixedConnectivity;\n",
       "                    });\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"link\", linksForce);\n",
       "              },\n",
       "              setManyBodyForce(){\n",
       "                let manyBodyForce = null;\n",
       "                if(state.useManyBodyForce && state.layoutAlgorithmActive){\n",
       "                  manyBodyForce = state.predefinedForces.charge\n",
       "                    .strength(state.manyBodyForceStrength)\n",
       "                    .theta(state.manyBodyForceTheta);\n",
       "                  if(state.useManyBodyForceMinDistance){\n",
       "                    manyBodyForce.distanceMin(state.manyBodyForceMinDistance);\n",
       "                  } else{\n",
       "                    manyBodyForce.distanceMin(0.0);\n",
       "                  }\n",
       "                  if(state.useManyBodyForceMaxDistance){\n",
       "                    manyBodyForce.distanceMax(state.manyBodyForceMaxDistance);\n",
       "                  } else{\n",
       "                    manyBodyForce.distanceMax(Infinity);\n",
       "                  }\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"charge\", manyBodyForce);\n",
       "              },\n",
       "              setXPositioningForce(){\n",
       "                let xPositioningForce = null;\n",
       "                if(state.useXPositioningForce && state.layoutAlgorithmActive){\n",
       "                  function userDefinedForce(alpha) {\n",
       "                    const nodes = state.shownData.nodes;\n",
       "                    for(let i=0; i<nodes.length; i++) {\n",
       "                      const node = nodes[i];\n",
       "                      node.vx += (0.0 - node.x) * alpha * state.xPositioningForceStrength;\n",
       "                    }\n",
       "                  }\n",
       "                  xPositioningForce = userDefinedForce;\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"x-positioning\", xPositioningForce);\n",
       "              },\n",
       "              setYPositioningForce(){\n",
       "                let yPositioningForce = null;\n",
       "                if(state.useYPositioningForce && state.layoutAlgorithmActive){\n",
       "                  function userDefinedForce(alpha) {\n",
       "                    const nodes = state.shownData.nodes;\n",
       "                    for(let i=0; i<nodes.length; i++) {\n",
       "                      const node = nodes[i];\n",
       "                      node.vy += (0.0 - node.y) * alpha * state.yPositioningForceStrength;\n",
       "                    }\n",
       "                  }\n",
       "                  yPositioningForce = userDefinedForce;\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"y-positioning\", yPositioningForce);\n",
       "              },\n",
       "              setZPositioningForce(){\n",
       "                let zPositioningForce = null;\n",
       "                if(state.useZPositioningForce && state.layoutAlgorithmActive){\n",
       "                  function userDefinedForce(alpha) {\n",
       "                    const nodes = state.shownData.nodes;\n",
       "                    for(let i=0; i<nodes.length; i++) {\n",
       "                      const node = nodes[i];\n",
       "                      node.vz += (0.0 - node.z) * alpha * state.zPositioningForceStrength;\n",
       "                    }\n",
       "                  }\n",
       "                  zPositioningForce = userDefinedForce;\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"z-positioning\", zPositioningForce);\n",
       "              },\n",
       "            },\n",
       "          },\n",
       "        },\n",
       "\n",
       "        init(){\n",
       "          // Containers\n",
       "          ui.composites.responsiveContainer.init();\n",
       "          // Graph selection (only visible if multiple graphs in data)\n",
       "          if(state.rawData.length > 1){\n",
       "            ui.elements.graphSelectionContainer.style.display = ui.convert.boolToDisplayStyle(true);\n",
       "            const optionList = [],\n",
       "              valueList = [];\n",
       "            let label;\n",
       "            for(let i=0; i<state.rawData.length; i++){\n",
       "              const graph = state.rawData[i];\n",
       "              try{\n",
       "                label = String(graph.label);\n",
       "                if(label === \"undefined\" || label === \"\"){\n",
       "                  throw \"Invalid label\";\n",
       "                }\n",
       "              } catch(e){\n",
       "                label = \"Unnamed graph\";\n",
       "              }\n",
       "              const name = String(i+1) + \": \" + label;\n",
       "              optionList.push(name);\n",
       "              valueList.push(String(i));\n",
       "            }\n",
       "            ui.composites.selection(ui.elements.graphSelection, optionList, valueList);\n",
       "          }\n",
       "          // General (menu item)\n",
       "          ui.composites.menu.setItem(ui.elements.generalHead, ui.elements.generalBody, true);\n",
       "          // Data selection (menu item)\n",
       "          ui.composites.menu.setItem(ui.elements.dataHead, ui.elements.dataBody, false);\n",
       "          // - Node size\n",
       "          ui.elements.nodeSizeNormalizationCheckbox.checked = state.useNodeSizeNormalization;\n",
       "          ui.elements.nodeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useNodeSizeNormalization);\n",
       "          ui.elements.nodeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMin);\n",
       "          ui.elements.nodeSizeNormalizationMinSlider.value = state.nodeSizeNormalizationMin;\n",
       "          ui.elements.nodeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMax);\n",
       "          ui.elements.nodeSizeNormalizationMaxSlider.value = state.nodeSizeNormalizationMax;\n",
       "          // - Edge size\n",
       "          ui.elements.edgeSizeNormalizationCheckbox.checked = state.useEdgeSizeNormalization;\n",
       "          ui.elements.edgeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useEdgeSizeNormalization);\n",
       "          ui.elements.edgeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMin);\n",
       "          ui.elements.edgeSizeNormalizationMinSlider.value = state.edgeSizeNormalizationMin;\n",
       "          ui.elements.edgeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMax);\n",
       "          ui.elements.edgeSizeNormalizationMaxSlider.value = state.edgeSizeNormalizationMax;\n",
       "          // Nodes\n",
       "          ui.composites.menu.setItem(ui.elements.nodeHead, ui.elements.nodeBody, false);\n",
       "          ui.elements.nodeCheckbox.checked = state.showNodes;\n",
       "          ui.elements.nodeSizeFactorText.innerHTML = ui.convert.numberToText(state.nodeSizeFactor);\n",
       "          ui.elements.nodeSizeFactorSlider.value = state.nodeSizeFactor;\n",
       "          ui.elements.nodeDragFixCheckbox.checked = state.nodeDragFix;\n",
       "          ui.elements.nodeHoverTooltipCheckbox.checked = state.nodeHoverTooltip;\n",
       "          // Node images\n",
       "          ui.composites.menu.setItem(ui.elements.nodeImageHead, ui.elements.nodeImageBody, false);\n",
       "          ui.elements.nodeImageMetaControl.style.display = false;\n",
       "          ui.elements.nodeImageCheckbox.checked = state.showNodeImages;\n",
       "          ui.elements.nodeImageSizeFactorText.innerHTML = ui.convert.numberToText(state.nodeImageSizeFactor);\n",
       "          ui.elements.nodeImageSizeFactorSlider.value = state.nodeImageSizeFactor;\n",
       "          // Node labels\n",
       "          ui.composites.menu.setItem(ui.elements.nodeLabelHead, ui.elements.nodeLabelBody, false);\n",
       "          ui.elements.nodeLabelCheckbox.checked = state.showNodeLabels;\n",
       "          ui.elements.nodeLabelBorderCheckbox.checked = state.showNodeLabelBorders;\n",
       "          ui.elements.nodeLabelSizeFactorText.innerHTML = ui.convert.numberToText(state.nodeLabelSizeFactor);\n",
       "          ui.elements.nodeLabelSizeFactorSlider.value = state.nodeLabelSizeFactor;\n",
       "          // Edges\n",
       "          ui.composites.menu.setItem(ui.elements.edgeHead, ui.elements.edgeBody, false);\n",
       "          ui.elements.edgeCheckbox.checked = state.showEdges;\n",
       "          ui.elements.edgeSizeFactorText.innerHTML = ui.convert.numberToText(state.edgeSizeFactor);\n",
       "          ui.elements.edgeSizeFactorSlider.value = state.edgeSizeFactor;\n",
       "          ui.elements.edgeCurvatureText.innerHTML = ui.convert.numberToText(state.edgeCurvature);\n",
       "          ui.elements.edgeCurvatureSlider.value = state.edgeCurvature;\n",
       "          ui.elements.edgeHoverTooltipCheckbox.checked = state.edgeHoverTooltip;\n",
       "          // Layout algorithm\n",
       "          ui.composites.menu.setItem(ui.elements.layoutAlgorithmHead, ui.elements.layoutAlgorithmBody, false);\n",
       "          ui.elements.simulationCheckbox.checked = state.layoutAlgorithmActive;\n",
       "          ui.elements.manyBodyForceCheckbox.checked = state.useManyBodyForce;\n",
       "          ui.elements.manyBodyForceContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForce);\n",
       "          ui.elements.manyBodyForceStrengthText.innerHTML = ui.convert.numberToText(state.manyBodyForceStrength);\n",
       "          ui.elements.manyBodyForceStrengthSlider.value = state.manyBodyForceStrength;\n",
       "          ui.elements.manyBodyForceThetaText.innerHTML = ui.convert.numberToText(state.manyBodyForceTheta);\n",
       "          ui.elements.manyBodyForceThetaSlider.value = state.manyBodyForceTheta;\n",
       "          ui.elements.manyBodyForceMinDistCheckbox.checked = state.useManyBodyForceMinDistance;\n",
       "          ui.elements.manyBodyForceMinDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMinDistance);\n",
       "          ui.elements.manyBodyForceMinDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMinDistance);\n",
       "          ui.elements.manyBodyForceMinDistSlider.value = state.manyBodyForceMinDistance;\n",
       "          ui.elements.manyBodyForceMaxDistCheckbox.checked = state.useManyBodyForceMaxDistance;\n",
       "          ui.elements.manyBodyForceMaxDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMaxDistance);\n",
       "          ui.elements.manyBodyForceMaxDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMaxDistance);\n",
       "          ui.elements.manyBodyForceMaxDistSlider.value = state.manyBodyForceMaxDistance;\n",
       "          ui.elements.linksForceCheckbox.checked = state.useLinksForce;\n",
       "          ui.elements.linksForceContainer.style.opacity = ui.convert.boolToOpacity(state.useLinksForce);\n",
       "          ui.elements.linksForceDistanceText.innerHTML = ui.convert.numberToText(state.linksForceDistance);\n",
       "          ui.elements.linksForceDistanceSlider.value = state.linksForceDistance;\n",
       "          ui.elements.linksForceStrengthText.innerHTML = ui.convert.numberToText(state.linksForceStrength);\n",
       "          ui.elements.linksForceStrengthSlider.value = state.linksForceStrength;\n",
       "          ui.elements.xPositioningForceCheckbox.checked = state.useXPositioningForce;\n",
       "          ui.elements.xPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useXPositioningForce);\n",
       "          ui.elements.xPositioningForceStrengthText.innerHTML = ui.convert.numberToText(state.xPositioningForceStrength);\n",
       "          ui.elements.xPositioningForceStrengthSlider.value = state.xPositioningForceStrength;\n",
       "          ui.elements.yPositioningForceCheckbox.checked = state.useYPositioningForce;\n",
       "          ui.elements.yPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useYPositioningForce);\n",
       "          ui.elements.yPositioningForceStrengthText.innerHTML = ui.convert.numberToText(state.yPositioningForceStrength);\n",
       "          ui.elements.yPositioningForceStrengthSlider.value = state.yPositioningForceStrength;\n",
       "          ui.elements.zPositioningForceCheckbox.checked = state.useZPositioningForce;\n",
       "          ui.elements.zPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useZPositioningForce);\n",
       "          ui.elements.zPositioningForceStrengthText.innerHTML = ui.convert.numberToText(state.zPositioningForceStrength);\n",
       "          ui.elements.zPositioningForceStrengthSlider.value = state.zPositioningForceStrength;\n",
       "          ui.elements.centeringForceCheckbox.checked = state.useCenteringForce;\n",
       "\n",
       "          ui.initSelectionValues();\n",
       "        },\n",
       "\n",
       "        initSelectionValues(){\n",
       "          function setSelectionOptionsAndValue(element, options, value){\n",
       "            if(!options.includes(value)){\n",
       "              value = options[0];\n",
       "            }\n",
       "            ui.composites.selection(element, options);\n",
       "            element.value = value;\n",
       "          }\n",
       "          // Node label text data source\n",
       "          setSelectionOptionsAndValue(\n",
       "            ui.elements.nodeLabelTextDataSourceSelect,\n",
       "            state.parsedData.general.node_properties.node_label_text_data_sources,\n",
       "            state.nodeLabelTextDataSource,\n",
       "          );\n",
       "          // Node size data source\n",
       "          setSelectionOptionsAndValue(\n",
       "            ui.elements.nodeSizeDataSourceSelect,\n",
       "            state.parsedData.general.node_properties.node_size_data_sources,\n",
       "            state.nodeSizeDataSource,\n",
       "          );\n",
       "          // Edge size data source\n",
       "          setSelectionOptionsAndValue(\n",
       "            ui.elements.edgeSizeDataSourceSelect,\n",
       "            state.parsedData.general.edge_properties.edge_size_data_sources,\n",
       "            state.edgeSizeDataSource,\n",
       "          );\n",
       "        },\n",
       "\n",
       "        deleteChildElements(element){\n",
       "          while(element.firstChild){\n",
       "            element.removeChild(element.firstChild);\n",
       "          }\n",
       "        },\n",
       "\n",
       "        convert:{\n",
       "          numberToText(number, numDigits=2) {\n",
       "            return String(Number(number).toFixed(numDigits));\n",
       "          },\n",
       "\n",
       "          boolToDisplayStyle(isVisible){\n",
       "            if(isVisible){\n",
       "              return \"block\";\n",
       "            }\n",
       "            return \"none\";\n",
       "          },\n",
       "\n",
       "          boolToOpacity(isActive){\n",
       "            if(isActive){\n",
       "              return 1.0;\n",
       "            }\n",
       "            return 0.25;\n",
       "          },\n",
       "        },\n",
       "\n",
       "        setBehavior(){\n",
       "          // Window resize (includes ctrl+wheel zoom, landscape/portrait orientation on phones)\n",
       "          window.onresize = function(){\n",
       "            ui.composites.responsiveContainer.adaptToResize();\n",
       "            ui.composites.graph.updateGraphDrawingArea();\n",
       "          }\n",
       "          // Container resize\n",
       "          ui.elements.graphContainer.onmouseup = function(){\n",
       "            const currentHeight = parseInt(ui.elements.graphContainer.clientHeight);\n",
       "            if(currentHeight != state.graphContainerHeight){\n",
       "              ui.composites.responsiveContainer.adaptToResize();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.detailsContainer.onmouseup = function(){\n",
       "            const currentHeight = parseInt(ui.elements.detailsContainer.clientHeight);\n",
       "            if(currentHeight != state.detailsContainerHeight){\n",
       "              ui.composites.responsiveContainer.adaptToResize();\n",
       "            }\n",
       "          };\n",
       "          // Tooltip\n",
       "          ui.elements.tooltipContainer.onmouseover = function(){\n",
       "            ui.composites.tooltip.show();\n",
       "          }\n",
       "          ui.elements.tooltipContainer.onmouseout = function(){\n",
       "            ui.composites.tooltip.hide();\n",
       "          }\n",
       "          // General menu\n",
       "          ui.elements.generalHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.generalHead, ui.elements.generalBody);\n",
       "          };\n",
       "          ui.elements.resetButton.onclick = function(){\n",
       "            app.restart();\n",
       "          };\n",
       "          ui.elements.fullscreenButton.onclick = function(){\n",
       "            if(document.fullscreenElement){\n",
       "              document.exitFullscreen();\n",
       "            } else{\n",
       "              ui.elements.mainContainer.requestFullscreen()\n",
       "                .catch(function(err){\n",
       "                  alert(\"Error attempting to enable full-screen mode: \" + err.message);\n",
       "                });\n",
       "            }\n",
       "          };\n",
       "          ui.elements.mainContainer.onfullscreenchange = function(){\n",
       "            if(document.fullscreenElement){\n",
       "              ui.elements.fullscreenButton.innerText = \"Exit full screen\";\n",
       "            } else{\n",
       "              ui.elements.fullscreenButton.innerText = \"Enter full screen\";\n",
       "            }\n",
       "            // Wait for browser to switch to fullscreen and resize divs, then adapt to new sizes\n",
       "            setTimeout(function(){\n",
       "              ui.composites.responsiveContainer.adaptToFullscreen();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            }, 250);\n",
       "          };\n",
       "          ui.elements.pngExportButton.onclick = function(){\n",
       "            ui.composites.download.png(\"graph.png\");\n",
       "          };\n",
       "          ui.elements.jpgExportButton.onclick = function(){\n",
       "            ui.composites.download.jpg(\"graph.jpg\");\n",
       "          };\n",
       "          // Data menu\n",
       "          ui.elements.dataHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.dataHead, ui.elements.dataBody);\n",
       "          };\n",
       "          // - Graph selection\n",
       "          ui.elements.graphSelection.onchange = function(){\n",
       "            const chosenGraphIndex = parseInt(this.value);\n",
       "            state.manager.parseChosenData(chosenGraphIndex);\n",
       "            state.manager.prepareShownData();\n",
       "            ui.initSelectionValues();\n",
       "            ui.composites.graph.createGraph();\n",
       "          };\n",
       "          // - Node label text\n",
       "          ui.elements.nodeLabelTextDataSourceSelect.onchange = function(){\n",
       "            state.nodeLabelTextDataSource = this.value;\n",
       "            state.manager.updateNodeLabelTexts();\n",
       "          };\n",
       "          // - Node size\n",
       "          ui.elements.nodeSizeDataSourceSelect.onchange = function(){\n",
       "            state.nodeSizeDataSource = this.value;\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationCheckbox.onchange = function(){\n",
       "            state.useNodeSizeNormalization = this.checked;\n",
       "            ui.elements.nodeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useNodeSizeNormalization);\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMinSlider.oninput = function(){\n",
       "            ui.elements.nodeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMinSlider.onchange = function(){\n",
       "            state.nodeSizeNormalizationMin = parseFloat(this.value);\n",
       "            if(state.nodeSizeNormalizationMin > state.nodeSizeNormalizationMax){\n",
       "              state.nodeSizeNormalizationMax = state.nodeSizeNormalizationMin;\n",
       "              ui.elements.nodeSizeNormalizationMaxSlider.value = state.nodeSizeNormalizationMax;\n",
       "              ui.elements.nodeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMax);\n",
       "            }\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMaxSlider.oninput = function(){\n",
       "            ui.elements.nodeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMaxSlider.onchange = function(){\n",
       "            state.nodeSizeNormalizationMax = parseFloat(this.value);\n",
       "            if(state.nodeSizeNormalizationMax < state.nodeSizeNormalizationMin){\n",
       "              state.nodeSizeNormalizationMin = state.nodeSizeNormalizationMax;\n",
       "              ui.elements.nodeSizeNormalizationMinSlider.value = state.nodeSizeNormalizationMin;\n",
       "              ui.elements.nodeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMin);\n",
       "            }\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          // - Edge size\n",
       "          ui.elements.edgeSizeDataSourceSelect.onchange = function(){\n",
       "            state.edgeSizeDataSource = this.value;\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationCheckbox.onchange = function(){\n",
       "            state.useEdgeSizeNormalization = this.checked;\n",
       "            ui.elements.edgeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useEdgeSizeNormalization);\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMinSlider.oninput = function(){\n",
       "            ui.elements.edgeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMinSlider.onchange = function(){\n",
       "            state.edgeSizeNormalizationMin = parseFloat(this.value);\n",
       "            if(state.edgeSizeNormalizationMin > state.edgeSizeNormalizationMax){\n",
       "              state.edgeSizeNormalizationMax = state.edgeSizeNormalizationMin;\n",
       "              ui.elements.edgeSizeNormalizationMaxSlider.value = state.edgeSizeNormalizationMax;\n",
       "              ui.elements.edgeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMax);\n",
       "            }\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMaxSlider.oninput = function(){\n",
       "            ui.elements.edgeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMaxSlider.onchange = function(){\n",
       "            state.edgeSizeNormalizationMax = parseFloat(this.value);\n",
       "            if(state.edgeSizeNormalizationMax < state.edgeSizeNormalizationMin){\n",
       "              state.edgeSizeNormalizationMin = state.edgeSizeNormalizationMax;\n",
       "              ui.elements.edgeSizeNormalizationMinSlider.value = state.edgeSizeNormalizationMin;\n",
       "              ui.elements.edgeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMin);\n",
       "            }\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          // Nodes menu\n",
       "          ui.elements.nodeHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.nodeHead, ui.elements.nodeBody);\n",
       "          };\n",
       "          ui.elements.nodeCheckbox.onchange = function(){\n",
       "            state.showNodes = this.checked;\n",
       "            ui.composites.graph.updateNodeVisibilities();\n",
       "          };\n",
       "          ui.elements.nodeSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.nodeSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeSizeFactorSlider.onchange = function(){\n",
       "            state.nodeSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeDragFixCheckbox.onchange = function(){\n",
       "            state.nodeDragFix = this.checked;\n",
       "          };\n",
       "          ui.elements.nodeHoverTooltipCheckbox.onchange = function(){\n",
       "            state.nodeHoverTooltip = this.checked;\n",
       "          };\n",
       "          ui.elements.nodeReleaseButton.onclick = function(){\n",
       "            ui.composites.graph.simulationManager.releaseFixedNodes();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          // Node images menu\n",
       "          ui.elements.nodeImageHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.nodeImageHead, ui.elements.nodeImageBody);\n",
       "          };\n",
       "          ui.elements.nodeImageCheckbox.onchange = function(){\n",
       "            state.showNodeImages = this.checked;\n",
       "            ui.composites.graph.updateNodeImages();\n",
       "          };\n",
       "          ui.elements.nodeImageSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.nodeImageSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeImageSizeFactorSlider.onchange = function(){\n",
       "            state.nodeImageSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateNodeImageSizes();\n",
       "          };\n",
       "          // Node labels menu\n",
       "          ui.elements.nodeLabelHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.nodeLabelHead, ui.elements.nodeLabelBody);\n",
       "          };\n",
       "          ui.elements.nodeLabelCheckbox.onchange = function(){\n",
       "            state.showNodeLabels = this.checked;\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          };\n",
       "          ui.elements.nodeLabelBorderCheckbox.onchange = function(){\n",
       "            state.showNodeLabelBorders = this.checked;\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          };\n",
       "          ui.elements.nodeLabelSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.nodeLabelSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeLabelSizeFactorSlider.onchange = function(){\n",
       "            state.nodeLabelSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateNodeLabelSizes();\n",
       "          };\n",
       "          // Edges menu\n",
       "          ui.elements.edgeHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.edgeHead, ui.elements.edgeBody);\n",
       "          };\n",
       "          ui.elements.edgeCheckbox.onchange = function(){\n",
       "            state.showEdges = this.checked;\n",
       "            ui.composites.graph.updateEdgeVisibilities();\n",
       "          };\n",
       "          ui.elements.edgeSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.edgeSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeSizeFactorSlider.onchange = function(){\n",
       "            state.edgeSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeCurvatureSlider.oninput = function(){\n",
       "            ui.elements.edgeCurvatureText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeCurvatureSlider.onchange = function(){\n",
       "            state.edgeCurvature = parseFloat(this.value);\n",
       "            state.manager.updateEdgeCurvatures();\n",
       "          };\n",
       "          ui.elements.edgeHoverTooltipCheckbox.onchange = function(){\n",
       "            state.edgeHoverTooltip = this.checked;\n",
       "          };\n",
       "          // Layout algorithm menu\n",
       "          ui.elements.layoutAlgorithmHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.layoutAlgorithmHead, ui.elements.layoutAlgorithmBody);\n",
       "          };\n",
       "          ui.elements.simulationCheckbox.onchange = function(){\n",
       "            state.layoutAlgorithmActive = !state.layoutAlgorithmActive;\n",
       "            if(state.layoutAlgorithmActive){\n",
       "              ui.composites.graph.simulationManager.restart();\n",
       "            } else {\n",
       "              ui.composites.graph.simulationManager.stop();\n",
       "            }\n",
       "          }\n",
       "          ui.elements.manyBodyForceCheckbox.onchange = function(){\n",
       "            state.useManyBodyForce = this.checked;\n",
       "            ui.elements.manyBodyForceContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForce);\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.manyBodyForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceStrengthSlider.onchange = function(){\n",
       "            state.manyBodyForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.manyBodyForceThetaSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceThetaText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceThetaSlider.onchange = function(){\n",
       "            state.manyBodyForceTheta = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.manyBodyForceMinDistCheckbox.onchange = function(){\n",
       "            state.useManyBodyForceMinDistance = this.checked;\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            ui.elements.manyBodyForceMinDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMinDistance);\n",
       "          }\n",
       "          ui.elements.manyBodyForceMinDistSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceMinDistText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceMinDistSlider.onchange = function(){\n",
       "            state.manyBodyForceMinDistance = parseFloat(this.value);\n",
       "            if(state.manyBodyForceMinDistance > state.manyBodyForceMaxDistance){\n",
       "              state.manyBodyForceMaxDistance = state.manyBodyForceMinDistance;\n",
       "              ui.elements.manyBodyForceMaxDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMaxDistance);\n",
       "              ui.elements.manyBodyForceMaxDistSlider.value = state.manyBodyForceMaxDistance;\n",
       "            }\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.manyBodyForceMaxDistCheckbox.onchange = function(){\n",
       "            state.useManyBodyForceMaxDistance = this.checked;\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            ui.elements.manyBodyForceMaxDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMaxDistance);\n",
       "          }\n",
       "          ui.elements.manyBodyForceMaxDistSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceMaxDistText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceMaxDistSlider.onchange = function(){\n",
       "            state.manyBodyForceMaxDistance = parseFloat(this.value);\n",
       "            if(state.manyBodyForceMaxDistance < state.manyBodyForceMinDistance){\n",
       "              state.manyBodyForceMinDistance = state.manyBodyForceMaxDistance;\n",
       "              ui.elements.manyBodyForceMinDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMinDistance);\n",
       "              ui.elements.manyBodyForceMinDistSlider.value = state.manyBodyForceMinDistance;\n",
       "            }\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.linksForceCheckbox.onchange = function(){\n",
       "            state.useLinksForce = this.checked;\n",
       "            ui.elements.linksForceContainer.style.opacity = ui.convert.boolToOpacity(state.useLinksForce);\n",
       "            ui.composites.graph.simulationManager.setLinksForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.linksForceDistanceSlider.oninput = function(){\n",
       "            ui.elements.linksForceDistanceText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.linksForceDistanceSlider.onchange = function(){\n",
       "            state.linksForceDistance = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setLinksForce();\n",
       "            if(state.useLinksForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.linksForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.linksForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.linksForceStrengthSlider.onchange = function(){\n",
       "            state.linksForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setLinksForce();\n",
       "            if(state.useLinksForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.xPositioningForceCheckbox.onchange = function(){\n",
       "            state.useXPositioningForce = this.checked;\n",
       "            ui.elements.xPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useXPositioningForce);\n",
       "            ui.composites.graph.simulationManager.setXPositioningForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.xPositioningForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.xPositioningForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.xPositioningForceStrengthSlider.onchange = function(){\n",
       "            state.xPositioningForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setXPositioningForce();\n",
       "            if(state.useXPositioningForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.yPositioningForceCheckbox.onchange = function(){\n",
       "            state.useYPositioningForce = this.checked;\n",
       "            ui.elements.yPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useYPositioningForce);\n",
       "            ui.composites.graph.simulationManager.setYPositioningForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.yPositioningForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.yPositioningForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.yPositioningForceStrengthSlider.onchange = function(){\n",
       "            state.yPositioningForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setYPositioningForce();\n",
       "            if(state.useYPositioningForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.zPositioningForceCheckbox.onchange = function(){\n",
       "            state.useZPositioningForce = this.checked;\n",
       "            ui.elements.zPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useZPositioningForce);\n",
       "            ui.composites.graph.simulationManager.setZPositioningForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.zPositioningForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.zPositioningForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.zPositioningForceStrengthSlider.onchange = function(){\n",
       "            state.yPositioningForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setZPositioningForce();\n",
       "            if(state.useZPositioningForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.centeringForceCheckbox.onchange = function(){\n",
       "            state.useCenteringForce = this.checked;\n",
       "            ui.composites.graph.simulationManager.setCenteringForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "        },\n",
       "      }\n",
       "\n",
       "      const app = {\n",
       "        start(){\n",
       "          state.manager.fetchRawDataFromTemplating();\n",
       "          state.manager.parseChosenData(0);\n",
       "          state.manager.prepareShownData();\n",
       "          ui.init();\n",
       "          // Wait a bit to finish UI rendering, then start potentially slow layout computation\n",
       "          setTimeout(function(){\n",
       "            ui.composites.graph.createGraph();\n",
       "            ui.setBehavior();\n",
       "          }, 800);\n",
       "          // Reduce risk of getting stuck with a wrong drawing area size\n",
       "          function checkIfSizeUpdateRequired(){\n",
       "            if(ui.elements.graphContainer.clientWidth != state.graphContainerWidth){\n",
       "              ui.composites.responsiveContainer.adaptToResize();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            }\n",
       "          }\n",
       "          [1, 2, 5, 8, 12, 15, 20, 25, 30, 35, 40, 45, 50, 60, 90].forEach(function(delay){\n",
       "            setTimeout(checkIfSizeUpdateRequired, delay*1000);\n",
       "          })\n",
       "        },\n",
       "\n",
       "        restart(){\n",
       "          ui.composites.graph.simulationManager.stop();\n",
       "          app.start();\n",
       "        },\n",
       "      }\n",
       "\n",
       "      // Start website dynamics\n",
       "      window.addEventListener(\"unload\", function(){\n",
       "        state.threeObjects.disposeAll();\n",
       "      });\n",
       "      app.start();\n",
       "    });\n",
       "  </script>\n",
       "\n"
      ],
      "text/plain": [
       "<gravis._internal.plotting.data_structures.Figure at 0x142bbc310>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "community_graph.visualize(\n",
    "    three=True,\n",
    "    node_label_size_factor=1.9,\n",
    "    use_links_force=True,\n",
    "    node_hover_neighborhood=True,\n",
    "    style={\n",
    "    \"node\": {\n",
    "        \"color\": lambda x : community_colors[x['community_id']],\n",
    "        \"hover\": lambda x : f\"{x['customer_id']}\"\n",
    "    },\n",
    "    \"edge\": {\n",
    "        \"opacity\": 0.8,\n",
    "        \"color\": \"#ccc\",\n",
    "        \"hover\": lambda x : x['weight']\n",
    "    }\n",
    "})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Let's focus on a particular community. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "117"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def get_community_id_of_customer( customer_id ):\n",
    "    mycommunity = None\n",
    "    for i in data.values():\n",
    "        for p in i.values():\n",
    "            try:\n",
    "                if p['customer_id'] == customer_id:\n",
    "                    mycommunity = p['community_id']\n",
    "            except:\n",
    "                pass\n",
    "    return mycommunity\n",
    "\n",
    "community_id_of_interest = get_community_id_of_customer(84087)\n",
    "community_id_of_interest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "  <style>\n",
       "    /* Main divisions */\n",
       "    #iZc2xt0lSijSyZl8x-main-div {\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "      padding: 3px;\n",
       "      background-color: white;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-left-div {\n",
       "      float: left;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-right-div {\n",
       "      float: left;\n",
       "      height: 100%;\n",
       "      display: none;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-right-inner-div {\n",
       "      padding-left: 5px;\n",
       "      padding-right: 2px;\n",
       "      overflow-x: hidden;\n",
       "      overflow-y: auto;\n",
       "      height: 100%;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "\n",
       "    /* Graph and details (contained in left-inner-div) */\n",
       "    #iZc2xt0lSijSyZl8x-graph-div {\n",
       "      overflow: hidden;\n",
       "      resize: vertical;\n",
       "      position: relative;\n",
       "      border: 1px solid #ccc;\n",
       "      border-radius: 4px;\n",
       "      box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);\n",
       "      display: none;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-details-div {\n",
       "      overflow: auto;\n",
       "      resize: vertical;\n",
       "      margin-top: 5px;\n",
       "      border: 1px solid #ccc;\n",
       "      border-radius: 4px;\n",
       "      box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);\n",
       "      display: none;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-details-head {\n",
       "      user-select: none;\n",
       "      padding-left: 4px !important;\n",
       "      padding-top: 4px !important;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: gray;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-details-body {\n",
       "      padding: 10px;\n",
       "      padding-top: 6px;\n",
       "      font-size: 10px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "\n",
       "    /* Control menu (contained in right-inner-div) */\n",
       "    .iZc2xt0lSijSyZl8x-menu-item-head {\n",
       "      font-size: 11px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      cursor: pointer;\n",
       "      padding-left: 5px;\n",
       "      padding-right: 0px;\n",
       "      padding-top: 5px;\n",
       "      padding-bottom: 5px;\n",
       "      margin-bottom: 5px;\n",
       "      border-radius: 4px;\n",
       "      border: 1px solid #ccc;\n",
       "      box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2);\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-menu-item-body {\n",
       "      margin-left: 5px;\n",
       "      margin-bottom: 10px;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-menu-subitem-head {\n",
       "      font-size: 9px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      font-weight: 600;\n",
       "      color: #006429;\n",
       "      cursor: default;\n",
       "      margin-bottom: 2px;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-menu-subitem-body {\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      margin-left: 7px;\n",
       "      margin-bottom: 5px;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-labeled-input {\n",
       "      all: initial;\n",
       "      display: flex;\n",
       "      align-items: center;\n",
       "      margin-top: 1px;\n",
       "      margin-bottom: 1px;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-label {\n",
       "      all: initial;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      font-style: italic;\n",
       "      cursor: pointer;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-slider {\n",
       "      width: 100%;\n",
       "      margin-bottom: 2px;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-slider::-moz-focus-outer {\n",
       "      border: 0;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-slider-text-left {\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      font-style: italic;\n",
       "      color: black;\n",
       "      float: left;\n",
       "      margin-top: 2px;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-slider-text-right {\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      float: right;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-checkbox {\n",
       "      margin-left: 0px !important;\n",
       "      margin-right: 4px !important;\n",
       "      margin-top: 2px !important;\n",
       "      margin-bottom: 2px !important;\n",
       "      padding: 0px !important;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-select {\n",
       "      cursor: pointer;\n",
       "      outline: none;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      background-color: #f5f5f5;\n",
       "      width: 100%;\n",
       "      padding-top: 4px !important;\n",
       "      padding-bottom: 4px !important;\n",
       "      padding-left: 5px;\n",
       "      padding-right: 10px;\n",
       "      margin-right: 5px;\n",
       "      margin-top: 2px;\n",
       "      margin-bottom: 2px;\n",
       "      border-radius: 4px;\n",
       "      border: 1.2px solid #bbb;\n",
       "      box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.04);\n",
       "\n",
       "      -moz-appearance: none;\n",
       "      -webkit-appearance: none;\n",
       "      appearance: none;\n",
       "      background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOTIuNCIgaGVpZ2h0PSIyOTIuNCI+PHBhdGggZmlsbD0iIzAwMDAwMCIgZD0iTSAtNS4yMDY0NjJlLTYsNjQuNTcyNjU2IDI5Mi4zOTk5OSw2NC41NzI2NTQgMTQ2LjE5OTk3LDIzMy42Mjg0NyAtNS4yMDY0NjJlLTYsNjQuNTcyNjU2Ii8+PC9zdmc+Cg==');\n",
       "      background-repeat: no-repeat;\n",
       "      background-position: right 4px top 50%;\n",
       "      background-size: 6px;\n",
       "    }\n",
       "    @-moz-document url-prefix() {\n",
       "      /* Dirty hack to remove dotted border on focus */\n",
       "      .iZc2xt0lSijSyZl8x-select {\n",
       "        color: transparent !important;\n",
       "        text-shadow: 0 0 0 black !important;\n",
       "      }\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-select:after {\n",
       "      cursor: pointer;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-button {\n",
       "      cursor: pointer;\n",
       "      outline: none;\n",
       "      font-size: 8px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      color: black;\n",
       "      background-color: #f2f2f2;\n",
       "      padding-top: 4px !important;\n",
       "      padding-bottom: 4px !important;\n",
       "      padding-left: 10px;\n",
       "      padding-right: 10px;\n",
       "      margin-top: 2px;\n",
       "      margin-bottom: 2px;\n",
       "      border-radius: 4px;\n",
       "      border: 1.2px solid #bbb;\n",
       "      box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.04);\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-button:hover {\n",
       "      border: 1.2px solid #999;\n",
       "      background-color: #f2f2f2;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-button:active {\n",
       "      background-color: #ddd;\n",
       "    }\n",
       "    .iZc2xt0lSijSyZl8x-button::-moz-focus-inner {\n",
       "      border: 0;\n",
       "    }\n",
       "    /* Hidden menu items */\n",
       "    #iZc2xt0lSijSyZl8x-graph-select-div {\n",
       "      display: none;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-node-size-norm-div {\n",
       "      display: none;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-edge-size-norm-div {\n",
       "      display: none;\n",
       "    }\n",
       "\n",
       "    /* Graph */\n",
       "    #iZc2xt0lSijSyZl8x-tooltip-div {\n",
       "      font-size: 10px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      z-index: 42001;\n",
       "      opacity: 0;\n",
       "      visibility: hidden;\n",
       "      position: absolute !important;\n",
       "      max-width: 40%;\n",
       "      padding: 5px;\n",
       "      white-space: pre-wrap;\n",
       "      word-break: break-word;\n",
       "      color: black;\n",
       "      background-color: white;\n",
       "      border-radius: 4px;\n",
       "      border: 1px solid #ccc;\n",
       "      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-menu-toggle-button, #iZc2xt0lSijSyZl8x-details-toggle-button, #iZc2xt0lSijSyZl8x-progress-container {\n",
       "      font-size: 14px;\n",
       "      font-family: \"Lucida Console\", Monaco, monospace;\n",
       "      z-index: 42000;\n",
       "      cursor: pointer;\n",
       "      position: absolute;\n",
       "      background-color: white;\n",
       "      border-radius: 4px;\n",
       "      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-menu-toggle-button {\n",
       "      top: 0;\n",
       "      right: 0;\n",
       "      padding-left: 6px;\n",
       "      padding-right: 6px;\n",
       "      padding-top: 12px;\n",
       "      padding-bottom: 12px;\n",
       "      border-top: 0px;\n",
       "      border-right: 0px;\n",
       "      border-bottom: 1px solid #ccc;\n",
       "      border-left: 1px solid #ccc;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-details-toggle-button {\n",
       "      bottom: 0;\n",
       "      left: 0;\n",
       "      padding-left: 19px;\n",
       "      padding-right: 19px;\n",
       "      padding-top: 0.5px;\n",
       "      padding-bottom: 2px;\n",
       "      border-top: 1px solid #ccc;\n",
       "      border-right: 1px solid #ccc;\n",
       "      border-bottom: 0px;\n",
       "      border-left: 0px;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-progress-container {\n",
       "      font-size: 10px;\n",
       "      text-align: center;\n",
       "      top: 46%;\n",
       "      left: 15%;\n",
       "      width: 70%;\n",
       "      padding: 8px;\n",
       "      border: none;\n",
       "      box-shadow: none;\n",
       "    }\n",
       "\n",
       "    /* Details */\n",
       "    #iZc2xt0lSijSyZl8x-details-user-provided {\n",
       "      margin-top: 3px;\n",
       "      padding-top: 3.5px;\n",
       "      border-top: 0.5px dashed black;\n",
       "      line-height: normal;\n",
       "      box-sizing: content-box;\n",
       "      white-space: pre-wrap;\n",
       "      word-break: break-word;\n",
       "    }\n",
       "    #iZc2xt0lSijSyZl8x-details-user-provided ul {\n",
       "      list-style-position: inside;\n",
       "      padding-left: 6px;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "  <div id=\"iZc2xt0lSijSyZl8x-main-div\">\n",
       "    <div id=\"iZc2xt0lSijSyZl8x-tooltip-div\"></div>\n",
       "\n",
       "    <div id=\"iZc2xt0lSijSyZl8x-left-div\">\n",
       "      <div id=\"iZc2xt0lSijSyZl8x-left-inner-div\">\n",
       "        <div id=\"iZc2xt0lSijSyZl8x-graph-div\"></div>\n",
       "        <div id=\"iZc2xt0lSijSyZl8x-details-div\">\n",
       "          <div id=\"iZc2xt0lSijSyZl8x-details-head\">\n",
       "            Details for selected element\n",
       "          </div>\n",
       "          <div id=\"iZc2xt0lSijSyZl8x-details-body\">\n",
       "          </div>\n",
       "        </div>\n",
       "      </div>\n",
       "    </div>\n",
       "\n",
       "    <div id=\"iZc2xt0lSijSyZl8x-right-div\">\n",
       "      <div id=\"iZc2xt0lSijSyZl8x-right-inner-div\">\n",
       "        <!-- Menu: General -->\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-general-head\">\n",
       "          General\n",
       "        </div>\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-general-body\">\n",
       "          <!-- Sub-menu: State -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              App state\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <button class=\"iZc2xt0lSijSyZl8x-button\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-reset\"\n",
       "                      type=\"button\">Reset</button>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Display mode (fullscreen or not) -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Display mode\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <button class=\"iZc2xt0lSijSyZl8x-button\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-fullscreen-button\"\n",
       "                      type=\"button\">Enter full screen</button>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Export -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Export\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <button class=\"iZc2xt0lSijSyZl8x-button\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-png\"\n",
       "                      type=\"button\">PNG</button>\n",
       "              <button class=\"iZc2xt0lSijSyZl8x-button\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-jpg\"\n",
       "                      type=\"button\">JPG</button>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Data -->\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-data-head\">\n",
       "          Data selection\n",
       "        </div>\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-data-body\">\n",
       "          <!-- Sub-menu: Graph (only shown if multiple graphs in data) -->\n",
       "          <div id=\"iZc2xt0lSijSyZl8x-graph-select-div\">\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Graph\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <select class=\"iZc2xt0lSijSyZl8x-select\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-graph-select\"></select>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Node label text -->\n",
       "          <div id=\"iZc2xt0lSijSyZl8x-node-label-data-source-div\">\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Node label text\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <select class=\"iZc2xt0lSijSyZl8x-select\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-label-data-source-select\"></select>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Node size -->\n",
       "          <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "            Node size\n",
       "          </div>\n",
       "          <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "            <div>\n",
       "              <select class=\"iZc2xt0lSijSyZl8x-select\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-size-data-source-select\"></select>\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "              <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                     id=\"iZc2xt0lSijSyZl8x-node-size-normalization-checkbox\"\n",
       "                     type=\"checkbox\">\n",
       "              <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                     for=\"iZc2xt0lSijSyZl8x-node-size-normalization-checkbox\">Normalize</label>\n",
       "            </div>\n",
       "            <div id=\"iZc2xt0lSijSyZl8x-node-size-norm-div\">\n",
       "              <div>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Minimum</span>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-size-normalization-min-text\"></span>\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-size-normalization-min-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"300.0\" step=\"0.01\">\n",
       "              </div>\n",
       "              <div>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Maximum</span>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-size-normalization-max-text\"></span>\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-size-normalization-max-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"300.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Edge size -->\n",
       "          <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "            Edge size\n",
       "          </div>\n",
       "          <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "            <div>\n",
       "              <select class=\"iZc2xt0lSijSyZl8x-select\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-edge-size-data-source-select\"></select>\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "              <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                     id=\"iZc2xt0lSijSyZl8x-edge-size-normalization-checkbox\"\n",
       "                     type=\"checkbox\">\n",
       "              <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                     for=\"iZc2xt0lSijSyZl8x-edge-size-normalization-checkbox\">Normalize</label>\n",
       "            </div>\n",
       "            <div id=\"iZc2xt0lSijSyZl8x-edge-size-norm-div\">\n",
       "              <div>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Minimum</span>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-edge-size-normalization-min-text\"></span>\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-edge-size-normalization-min-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"50.0\" step=\"0.01\">\n",
       "              </div>\n",
       "              <div>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Maximum</span>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-edge-size-normalization-max-text\"></span>\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-edge-size-normalization-max-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"50.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Nodes -->\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-node-head\">\n",
       "          Nodes\n",
       "        </div>\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-node-body\">\n",
       "          <!-- Sub-menu: Visibility -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Visibility\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-node-checkbox\">Show nodes</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Size -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Size\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Scaling factor</span>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-size-factor-text\"></span>\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-size-factor-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Position -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Position\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <button class=\"iZc2xt0lSijSyZl8x-button\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-release-button\"\n",
       "                      type=\"button\">Release fixed nodes</button>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Drag behavior -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Drag behavior\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-drag-fix-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-node-drag-fix-checkbox\">Fix node position</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Hover behavior -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Hover behavior\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-hover-tooltip-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-node-hover-tooltip-checkbox\">Show tooltips (if provided)</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Node images -->\n",
       "        <div id=\"iZc2xt0lSijSyZl8x-node-image-meta-control\">\n",
       "          <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "               id=\"iZc2xt0lSijSyZl8x-node-image-head\">\n",
       "            Node images\n",
       "          </div>\n",
       "          <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "               id=\"iZc2xt0lSijSyZl8x-node-image-body\">\n",
       "            <!-- Sub-menu: Visibility -->\n",
       "            <div>\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "                Visibility\n",
       "              </div>\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "                <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-node-image-checkbox\"\n",
       "                         type=\"checkbox\">\n",
       "                  <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                         for=\"iZc2xt0lSijSyZl8x-node-image-checkbox\">Show node images</label>\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "            <!-- Sub-menu: Size -->\n",
       "            <div>\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "                Size\n",
       "              </div>\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Scaling factor</span>\n",
       "                <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                      id=\"iZc2xt0lSijSyZl8x-node-image-size-factor-text\"></span>\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-image-size-factor-slider\"\n",
       "                       type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Node labels -->\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-node-label-head\">\n",
       "          Node labels\n",
       "        </div>\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-node-label-body\">\n",
       "          <!-- Sub-menu: Visibility -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Visibility\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-label-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-node-label-checkbox\">Show node labels</label>\n",
       "              </div>\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-node-label-border-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-node-label-border-checkbox\">Show borders</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Size -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Size\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Scaling factor</span>\n",
       "              <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                    id=\"iZc2xt0lSijSyZl8x-node-label-size-factor-text\"></span>\n",
       "              <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                     id=\"iZc2xt0lSijSyZl8x-node-label-size-factor-slider\"\n",
       "                     type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Edges -->\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-edge-head\">\n",
       "          Edges\n",
       "        </div>\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-edge-body\">\n",
       "          <!-- Sub-menu: Visibility -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Visibility\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-edge-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-edge-checkbox\">Show edges</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Size -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Size\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Scaling factor</span>\n",
       "              <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                    id=\"iZc2xt0lSijSyZl8x-edge-size-factor-text\"></span>\n",
       "              <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                     id=\"iZc2xt0lSijSyZl8x-edge-size-factor-slider\"\n",
       "                     type=\"range\" min=\"0.01\" max=\"5.0\" step=\"0.01\">\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Form -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Form\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Curvature</span>\n",
       "              <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                    id=\"iZc2xt0lSijSyZl8x-edge-curvature-text\"></span>\n",
       "              <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                     id=\"iZc2xt0lSijSyZl8x-edge-curvature-slider\"\n",
       "                     type=\"range\" min=\"-1.2\" max=\"1.2\" step=\"0.02\">\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Hover behavior -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Hover behavior\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-edge-hover-tooltip-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-edge-hover-tooltip-checkbox\">Show tooltips (if provided)</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "        <!-- Menu: Layout algorithm -->\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-head\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-layout-algorithm-head\">\n",
       "          Layout algorithm\n",
       "        </div>\n",
       "        <div class=\"iZc2xt0lSijSyZl8x-menu-item-body\"\n",
       "             id=\"iZc2xt0lSijSyZl8x-layout-algorithm-body\">\n",
       "\n",
       "          <!-- Sub-menu: Simulation -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Simulation\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-simulation-active-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-simulation-active-checkbox\">Active</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Many-body force -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Many-body force\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-many-body-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-many-body-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iZc2xt0lSijSyZl8x-many-body-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-many-body-force-strength-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-many-body-force-strength-slider\"\n",
       "                         type=\"range\" min=\"-2000.0\" max=\"200.0\" step=\"0.01\"\n",
       "                         style=\"direction:rtl;\">\n",
       "                </div>\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Theta</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-many-body-force-theta-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-many-body-force-theta-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"2.0\" step=\"0.001\">\n",
       "                </div>\n",
       "                <div style=\"margin-top: 6px;\">\n",
       "                  <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                    <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-checkbox\"\n",
       "                         type=\"checkbox\">\n",
       "                    <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                           for=\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-checkbox\">Use minimum distance</label>\n",
       "                  </div>\n",
       "                  <div id=\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-div\">\n",
       "                    <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Min</span>\n",
       "                    <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                          id=\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-text\"></span>\n",
       "                    <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                           id=\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-slider\"\n",
       "                           type=\"range\" min=\"0.01\" max=\"10000.0\" step=\"0.01\">\n",
       "                  </div>\n",
       "                </div>\n",
       "                <div style=\"margin-top: 6px;\">\n",
       "                  <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                    <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-checkbox\"\n",
       "                         type=\"checkbox\">\n",
       "                    <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                           for=\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-checkbox\">Use maximum distance</label>\n",
       "                  </div>\n",
       "                  <div id=\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-div\">\n",
       "                    <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Max</span>\n",
       "                    <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                          id=\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-text\"></span>\n",
       "                    <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                           id=\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-slider\"\n",
       "                           type=\"range\" min=\"0.01\" max=\"10000.0\" step=\"0.01\">\n",
       "                  </div>\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Links force -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Links force\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-links-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-links-force-checkbox\">On</label>\n",
       "                </label>\n",
       "              </div>\n",
       "              <div id=\"iZc2xt0lSijSyZl8x-links-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Distance</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-links-force-distance-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-links-force-distance-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1000.0\" step=\"0.01\">\n",
       "                </div>\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-links-force-strength-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-links-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: x-positioning force -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              x-positioning force\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-x-positioning-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-x-positioning-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iZc2xt0lSijSyZl8x-x-positioning-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-x-positioning-force-strength-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-x-positioning-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: y-positioning force -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              y-positioning force\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-y-positioning-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-y-positioning-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iZc2xt0lSijSyZl8x-y-positioning-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-y-positioning-force-strength-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-y-positioning-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: z-positioning force -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              z-positioning force\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-z-positioning-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-z-positioning-force-checkbox\">On</label>\n",
       "              </div>\n",
       "              <div id=\"iZc2xt0lSijSyZl8x-z-positioning-force-div\">\n",
       "                <div>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-left\">Strength</span>\n",
       "                  <span class=\"iZc2xt0lSijSyZl8x-slider-text-right\"\n",
       "                        id=\"iZc2xt0lSijSyZl8x-z-positioning-force-strength-text\"></span>\n",
       "                  <input class=\"iZc2xt0lSijSyZl8x-slider\"\n",
       "                         id=\"iZc2xt0lSijSyZl8x-z-positioning-force-strength-slider\"\n",
       "                         type=\"range\" min=\"0.01\" max=\"1.0\" step=\"0.001\">\n",
       "                </div>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "          <!-- Sub-menu: Centering force -->\n",
       "          <div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-head\">\n",
       "              Centering force\n",
       "            </div>\n",
       "            <div class=\"iZc2xt0lSijSyZl8x-menu-subitem-body\">\n",
       "              <div class=\"iZc2xt0lSijSyZl8x-labeled-input\">\n",
       "                <input class=\"iZc2xt0lSijSyZl8x-checkbox\"\n",
       "                       id=\"iZc2xt0lSijSyZl8x-centering-force-checkbox\"\n",
       "                       type=\"checkbox\">\n",
       "                <label class=\"iZc2xt0lSijSyZl8x-label\"\n",
       "                       for=\"iZc2xt0lSijSyZl8x-centering-force-checkbox\">On</label>\n",
       "              </div>\n",
       "            </div>\n",
       "          </div>\n",
       "        </div>\n",
       "      </div>\n",
       "    </div>\n",
       "  </div>\n",
       "\n",
       "  <script charset=\"utf-8\" type=\"text/javascript\">\n",
       "    if(typeof(require) === \"undefined\"){\n",
       "      // Project sites:    https://requirejs.org\n",
       "//                   https://github.com/requirejs/requirejs\n",
       "// Code source:      https://requirejs.org/docs/release/2.3.6/minified/require.js - accessed on 19.11.2020\n",
       "// Original license: MIT\n",
       "// Code changes:     None\n",
       "\n",
       "/** vim: et:ts=4:sw=4:sts=4\n",
       " * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.\n",
       " * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE\n",
       " */\n",
       "var requirejs,require,define;!function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version=\"2.3.6\",commentRegExp=/\\/\\*[\\s\\S]*?\\*\\/|([^:\"'=]|^)\\/\\/.*$/gm,cjsRequireRegExp=/[^.]\\s*require\\s*\\(\\s*[\"']([^'\"\\s]+)[\"']\\s*\\)/g,jsSuffixRegExp=/\\.js$/,currDirRegExp=/^\\.\\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!(\"undefined\"==typeof window||\"undefined\"==typeof navigator||!window.document),isWebWorker=!isBrowser&&\"undefined\"!=typeof importScripts,readyRegExp=isBrowser&&\"PLAYSTATION 3\"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName=\"_\",isOpera=\"undefined\"!=typeof opera&&\"[object Opera]\"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||\"\"}function isFunction(e){return\"[object Function]\"===ostring.call(e)}function isArray(e){return\"[object Array]\"===ostring.call(e)}function each(e,t){var i;if(e)for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}function eachReverse(e,t){var i;if(e)for(i=e.length-1;-1<i&&(!e[i]||!t(e[i],i,e));i-=1);}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(i,e,r,n){return e&&eachProp(e,function(e,t){!r&&hasProp(i,t)||(!n||\"object\"!=typeof e||!e||isArray(e)||isFunction(e)||e instanceof RegExp?i[t]=e:(i[t]||(i[t]={}),mixin(i[t],e,r,n)))}),i}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName(\"script\")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split(\".\"),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+\"\\nhttps://requirejs.org/docs/errors.html#\"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||\"string\"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),(n=getOwn(contexts,a))||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\\/|:|\\?|\\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each([\"toUrl\",\"undef\",\"defined\",\"specified\"],function(t){req[t]=function(){var e=contexts[defContextName];return e.require[t].apply(e,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName(\"head\")[0],baseElement=document.getElementsByTagName(\"base\")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"html:script\"):document.createElement(\"script\");return r.type=e.scriptType||\"text/javascript\",r.charset=\"utf-8\",r.async=!0,r},req.load=function(t,i,r){var e,n=t&&t.config||{};if(isBrowser)return(e=req.createNode(n,i,r)).setAttribute(\"data-requirecontext\",t.contextName),e.setAttribute(\"data-requiremodule\",i),!e.attachEvent||e.attachEvent.toString&&e.attachEvent.toString().indexOf(\"[native code\")<0||isOpera?(e.addEventListener(\"load\",t.onScriptLoad,!1),e.addEventListener(\"error\",t.onScriptError,!1)):(useInteractive=!0,e.attachEvent(\"onreadystatechange\",t.onScriptLoad)),e.src=r,n.onNodeCreated&&n.onNodeCreated(e,n,i,r),currentlyAddingScript=e,baseElement?head.insertBefore(e,baseElement):head.appendChild(e),currentlyAddingScript=null,e;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),t.completeLoad(i)}catch(e){t.onError(makeError(\"importscripts\",\"importScripts failed for \"+i+\" at \"+r,e,[i]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute(\"data-main\"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf(\"!\")||(mainScript=(src=mainScript.split(\"/\")).pop(),subPath=src.length?src.join(\"/\")+\"/\":\"./\",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,\"\"),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,i,t){var r,n;\"string\"!=typeof e&&(t=i,i=e,e=null),isArray(i)||(t=i,i=null),!i&&isFunction(t)&&(i=[],t.length&&(t.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,t){i.push(t)}),i=(1===t.length?[\"require\"]:[\"require\",\"exports\",\"module\"]).concat(i))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute(\"data-requiremodule\")),n=contexts[r.getAttribute(\"data-requirecontext\")]),n?(n.defQueue.push([e,i,t]),n.defQueueMap[e]=!0):globalDefQueue.push([e,i,t])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}function newContext(u){var i,e,l,c,d,g={waitSeconds:7,baseUrl:\"./\",paths:{},bundles:{},pkgs:{},shim:{},config:{}},p={},f={},r={},h=[],m={},n={},v={},x=1,b=1;function q(e,t,i){var r,n,o,a,s,u,c,d,p,f,l=t&&t.split(\"/\"),h=g.map,m=h&&h[\"*\"];if(e&&(u=(e=e.split(\"/\")).length-1,g.nodeIdCompat&&jsSuffixRegExp.test(e[u])&&(e[u]=e[u].replace(jsSuffixRegExp,\"\")),\".\"===e[0].charAt(0)&&l&&(e=l.slice(0,l.length-1).concat(e)),function(e){var t,i;for(t=0;t<e.length;t++)if(\".\"===(i=e[t]))e.splice(t,1),t-=1;else if(\"..\"===i){if(0===t||1===t&&\"..\"===e[2]||\"..\"===e[t-1])continue;0<t&&(e.splice(t-1,2),t-=2)}}(e),e=e.join(\"/\")),i&&h&&(l||m)){e:for(o=(n=e.split(\"/\")).length;0<o;o-=1){if(s=n.slice(0,o).join(\"/\"),l)for(a=l.length;0<a;a-=1)if((r=getOwn(h,l.slice(0,a).join(\"/\")))&&(r=getOwn(r,s))){c=r,d=o;break e}!p&&m&&getOwn(m,s)&&(p=getOwn(m,s),f=o)}!c&&p&&(c=p,d=f),c&&(n.splice(0,d,c),e=n.join(\"/\"))}return getOwn(g.pkgs,e)||e}function E(t){isBrowser&&each(scripts(),function(e){if(e.getAttribute(\"data-requiremodule\")===t&&e.getAttribute(\"data-requirecontext\")===l.contextName)return e.parentNode.removeChild(e),!0})}function w(e){var t=getOwn(g.paths,e);if(t&&isArray(t)&&1<t.length)return t.shift(),l.require.undef(e),l.makeRequire(null,{skipMap:!0})([e]),!0}function y(e){var t,i=e?e.indexOf(\"!\"):-1;return-1<i&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function S(e,t,i,r){var n,o,a,s,u=null,c=t?t.name:null,d=e,p=!0,f=\"\";return e||(p=!1,e=\"_@r\"+(x+=1)),u=(s=y(e))[0],e=s[1],u&&(u=q(u,c,r),o=getOwn(m,u)),e&&(u?f=i?e:o&&o.normalize?o.normalize(e,function(e){return q(e,c,r)}):-1===e.indexOf(\"!\")?q(e,c,r):e:(u=(s=y(f=q(e,c,r)))[0],f=s[1],i=!0,n=l.nameToUrl(f))),{prefix:u,name:f,parentMap:t,unnormalized:!!(a=!u||o||i?\"\":\"_unnormalized\"+(b+=1)),url:n,originalName:d,isDefine:p,id:(u?u+\"!\"+f:f)+a}}function k(e){var t=e.id,i=getOwn(p,t);return i||(i=p[t]=new l.Module(e)),i}function M(e,t,i){var r=e.id,n=getOwn(p,r);!hasProp(m,r)||n&&!n.defineEmitComplete?(n=k(e)).error&&\"error\"===t?i(n.error):n.on(t,i):\"defined\"===t&&i(m[r])}function O(i,e){var t=i.requireModules,r=!1;e?e(i):(each(t,function(e){var t=getOwn(p,e);t&&(t.error=i,t.events.error&&(r=!0,t.emit(\"error\",i)))}),r||req.onError(i))}function j(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];\"string\"==typeof t&&(l.defQueueMap[t]=!0),h.push(e)}),globalDefQueue=[])}function P(e){delete p[e],delete f[e]}function R(){var e,r,t=1e3*g.waitSeconds,n=t&&l.startTime+t<(new Date).getTime(),o=[],a=[],s=!1,u=!0;if(!i){if(i=!0,eachProp(f,function(e){var t=e.map,i=t.id;if(e.enabled&&(t.isDefine||a.push(e),!e.error))if(!e.inited&&n)w(i)?s=r=!0:(o.push(i),E(i));else if(!e.inited&&e.fetched&&t.isDefine&&(s=!0,!t.prefix))return u=!1}),n&&o.length)return(e=makeError(\"timeout\",\"Load timeout for modules: \"+o,null,o)).contextName=l.contextName,O(e);u&&each(a,function(e){!function n(o,a,s){var e=o.map.id;o.error?o.emit(\"error\",o.error):(a[e]=!0,each(o.depMaps,function(e,t){var i=e.id,r=getOwn(p,i);!r||o.depMatched[t]||s[i]||(getOwn(a,i)?(o.defineDep(t,m[i]),o.check()):n(r,a,s))}),s[e]=!0)}(e,{},{})}),n&&!r||!s||!isBrowser&&!isWebWorker||d||(d=setTimeout(function(){d=0,R()},50)),i=!1}}function a(e){hasProp(m,e[0])||k(S(e[0],null,!0)).init(e[1],e[2])}function o(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function s(e){var t=e.currentTarget||e.srcElement;return o(t,l.onScriptLoad,\"load\",\"onreadystatechange\"),o(t,l.onScriptError,\"error\"),{node:t,id:t&&t.getAttribute(\"data-requiremodule\")}}function T(){var e;for(j();h.length;){if(null===(e=h.shift())[0])return O(makeError(\"mismatch\",\"Mismatched anonymous define() module: \"+e[e.length-1]));a(e)}l.defQueueMap={}}return c={require:function(e){return e.require?e.require:e.require=l.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?m[e.map.id]=e.exports:e.exports=m[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(g.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},(e=function(e){this.events=getOwn(r,e.id)||{},this.map=e,this.shim=getOwn(g.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0}).prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on(\"error\",i):this.events.error&&(i=bind(this,function(e){this.emit(\"error\",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,l.startTime=(new Date).getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();l.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;n[e]||(n[e]=!0,l.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var t,e,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit(\"error\",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=l.execCb(i,o,r,n)}catch(e){t=e}else n=l.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&((e=this.module)?n=e.exports:this.usingExports&&(n=this.exports)),t)return t.requireMap=this.map,t.requireModules=this.map.isDefine?[this.map.id]:null,t.requireType=this.map.isDefine?\"define\":\"require\",O(this.error=t)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(m[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(l,this.map,a)}P(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit(\"defined\",this.exports),this.defineEmitComplete=!0)}}else hasProp(l.defQueueMap,i)||this.fetch()}},callPlugin:function(){var u=this.map,c=u.id,e=S(u.prefix);this.depMaps.push(e),M(e,\"defined\",bind(this,function(e){var o,t,i,r=getOwn(v,this.map.id),n=this.map.name,a=this.map.parentMap?this.map.parentMap.name:null,s=l.makeRequire(u.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(e.normalize&&(n=e.normalize(n,function(e){return q(e,a,!0)})||\"\"),M(t=S(u.prefix+\"!\"+n,this.map.parentMap,!0),\"defined\",bind(this,function(e){this.map.normalizedMap=t,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),void((i=getOwn(p,t.id))&&(this.depMaps.push(t),this.events.error&&i.on(\"error\",bind(this,function(e){this.emit(\"error\",e)})),i.enable()))):r?(this.map.url=l.nameToUrl(r),void this.load()):((o=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})})).error=bind(this,function(e){this.inited=!0,(this.error=e).requireModules=[c],eachProp(p,function(e){0===e.map.id.indexOf(c+\"_unnormalized\")&&P(e.map.id)}),O(e)}),o.fromText=bind(this,function(e,t){var i=u.name,r=S(i),n=useInteractive;t&&(e=t),n&&(useInteractive=!1),k(r),hasProp(g.config,c)&&(g.config[i]=g.config[c]);try{req.exec(e)}catch(e){return O(makeError(\"fromtexteval\",\"fromText eval for \"+c+\" failed: \"+e,e,[c]))}n&&(useInteractive=!0),this.depMaps.push(r),l.completeLoad(i),s([i],o)}),void e.load(u.name,s,o,g))})),l.enable(e,this),this.pluginMaps[e.id]=e},enable:function(){(f[this.map.id]=this).enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if(\"string\"==typeof e){if(e=S(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(c,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,M(e,\"defined\",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?M(e,\"error\",bind(this,this.errback)):this.events.error&&M(e,\"error\",bind(this,function(e){this.emit(\"error\",e)}))}i=e.id,r=p[i],hasProp(c,i)||!r||r.enabled||l.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(p,e.id);t&&!t.enabled&&l.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),\"error\"===e&&delete this.events[e]}},(l={config:g,contextName:u,registry:p,defined:m,urlFetched:n,defQueue:h,defQueueMap:{},Module:e,makeModuleMap:S,nextTick:req.nextTick,onError:O,configure:function(e){if(e.baseUrl&&\"/\"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+=\"/\"),\"string\"==typeof e.urlArgs){var i=e.urlArgs;e.urlArgs=function(e,t){return(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}}var r=g.shim,n={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){n[t]?(g[t]||(g[t]={}),mixin(g[t],e,!0,!0)):g[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(v[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=l.makeShimExports(e)),r[t]=e}),g.shim=r),e.packages&&each(e.packages,function(e){var t;t=(e=\"string\"==typeof e?{name:e}:e).name,e.location&&(g.paths[t]=e.location),g.pkgs[t]=e.name+\"/\"+(e.main||\"main\").replace(currDirRegExp,\"\").replace(jsSuffixRegExp,\"\")}),eachProp(p,function(e,t){e.inited||e.map.unnormalized||(e.map=S(t,null,!0))}),(e.deps||e.callback)&&l.require(e.deps||[],e.callback)},makeShimExports:function(t){return function(){var e;return t.init&&(e=t.init.apply(global,arguments)),e||t.exports&&getGlobal(t.exports)}},makeRequire:function(o,a){function s(e,t,i){var r,n;return a.enableBuildCallback&&t&&isFunction(t)&&(t.__requireJsBuild=!0),\"string\"==typeof e?isFunction(t)?O(makeError(\"requireargs\",\"Invalid require call\"),i):o&&hasProp(c,e)?c[e](p[o.id]):req.get?req.get(l,e,o,s):(r=S(e,o,!1,!0).id,hasProp(m,r)?m[r]:O(makeError(\"notloaded\",'Module name \"'+r+'\" has not been loaded yet for context: '+u+(o?\"\":\". Use require([])\")))):(T(),l.nextTick(function(){T(),(n=k(S(null,o))).skipMap=a.skipMap,n.init(e,t,i,{enabled:!0}),R()}),s)}return a=a||{},mixin(s,{isBrowser:isBrowser,toUrl:function(e){var t,i=e.lastIndexOf(\".\"),r=e.split(\"/\")[0];return-1!==i&&(!(\".\"===r||\"..\"===r)||1<i)&&(t=e.substring(i,e.length),e=e.substring(0,i)),l.nameToUrl(q(e,o&&o.id,!0),t,!0)},defined:function(e){return hasProp(m,S(e,o,!1,!0).id)},specified:function(e){return e=S(e,o,!1,!0).id,hasProp(m,e)||hasProp(p,e)}}),o||(s.undef=function(i){j();var e=S(i,o,!0),t=getOwn(p,i);t.undefed=!0,E(i),delete m[i],delete n[e.url],delete r[i],eachReverse(h,function(e,t){e[0]===i&&h.splice(t,1)}),delete l.defQueueMap[i],t&&(t.events.defined&&(r[i]=t.events),P(i))}),s},enable:function(e){getOwn(p,e.id)&&k(e).enable()},completeLoad:function(e){var t,i,r,n=getOwn(g.shim,e)||{},o=n.exports;for(j();h.length;){if(null===(i=h.shift())[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);a(i)}if(l.defQueueMap={},r=getOwn(p,e),!t&&!hasProp(m,e)&&r&&!r.inited){if(!(!g.enforceDefine||o&&getGlobal(o)))return w(e)?void 0:O(makeError(\"nodefine\",\"No define call for \"+e,null,[e]));a([e,n.deps||[],n.exportsFn])}R()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c=getOwn(g.pkgs,e);if(c&&(e=c),u=getOwn(v,e))return l.nameToUrl(u,t,i);if(req.jsExtRegExp.test(e))a=e+(t||\"\");else{for(r=g.paths,o=(n=e.split(\"/\")).length;0<o;o-=1)if(s=getOwn(r,n.slice(0,o).join(\"/\"))){isArray(s)&&(s=s[0]),n.splice(0,o,s);break}a=n.join(\"/\"),a=(\"/\"===(a+=t||(/^data\\:|^blob\\:|\\?/.test(a)||i?\"\":\".js\")).charAt(0)||a.match(/^[\\w\\+\\.\\-]+:/)?\"\":g.baseUrl)+a}return g.urlArgs&&!/^blob\\:/.test(a)?a+g.urlArgs(e,a):a},load:function(e,t){req.load(l,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if(\"load\"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=s(e);l.completeLoad(t.id)}},onScriptError:function(e){var i=s(e);if(!w(i.id)){var r=[];return eachProp(p,function(e,t){0!==t.indexOf(\"_@r\")&&each(e.depMaps,function(e){if(e.id===i.id)return r.push(t),!0})}),O(makeError(\"scripterror\",'Script error for \"'+i.id+(r.length?'\", needed by: '+r.join(\", \"):'\"'),e,[i.id]))}}}).require=l.makeRequire(),l}function getInteractiveScript(){return interactiveScript&&\"interactive\"===interactiveScript.readyState||eachReverse(scripts(),function(e){if(\"interactive\"===e.readyState)return interactiveScript=e}),interactiveScript}}(this,\"undefined\"==typeof setTimeout?void 0:setTimeout);\n",
       "\n",
       "    }\n",
       "    // Project site:     https://threejs.org\n",
       "//                   https://github.com/mrdoob/three.js\n",
       "// Code source:      https://registry.yarnpkg.com/three/-/three-0.130.1.tgz#797588b2877ace31603bbbc864eb2e3022f0b3b4 - accessed on 07.12.2021\n",
       "//                   URL was found in yarn.lock file of 3d-force-graph\n",
       "//                   used three.min.js from this source in order to have console warning about loading different three versions\n",
       "// Original license: MIT\n",
       "// Code changes:     Commented out outermost functions\n",
       "//                   Wrapped all into a require define function\n",
       "\n",
       "if(!require.defined(\"gravis-three\")){\n",
       "  define(\"gravis-three\", [\"exports\"],\n",
       "\n",
       "/**\n",
       " * @license\n",
       " * Copyright 2010-2021 Three.js Authors\n",
       " * SPDX-License-Identifier: MIT\n",
       " */\n",
       "// !function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(\n",
       "function(t){\"use strict\";const e=\"130\",n=100,i=300,r=301,s=302,a=303,o=304,l=306,c=307,h=1e3,u=1001,d=1002,p=1003,m=1004,f=1005,g=1006,v=1007,y=1008,x=1009,_=1012,b=1014,M=1015,w=1016,S=1020,T=1022,E=1023,A=1026,L=1027,R=33776,C=33777,P=33778,D=33779,I=35840,N=35841,B=35842,z=35843,F=37492,O=37496,H=2300,U=2301,G=2302,k=2400,V=2401,W=2402,j=2500,q=2501,X=3e3,Y=3001,J=3007,Z=3002,Q=3004,K=3005,$=3006,tt=7680,et=35044,nt=35048,it=\"300 es\";class rt{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}const st=[];for(let t=0;t<256;t++)st[t]=(t<16?\"0\":\"\")+t.toString(16);let at=1234567;const ot=Math.PI/180,lt=180/Math.PI;function ct(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(st[255&t]+st[t>>8&255]+st[t>>16&255]+st[t>>24&255]+\"-\"+st[255&e]+st[e>>8&255]+\"-\"+st[e>>16&15|64]+st[e>>24&255]+\"-\"+st[63&n|128]+st[n>>8&255]+\"-\"+st[n>>16&255]+st[n>>24&255]+st[255&i]+st[i>>8&255]+st[i>>16&255]+st[i>>24&255]).toUpperCase()}function ht(t,e,n){return Math.max(e,Math.min(n,t))}function ut(t,e){return(t%e+e)%e}function dt(t,e,n){return(1-n)*t+n*e}function pt(t){return 0==(t&t-1)&&0!==t}function mt(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ft(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var gt=Object.freeze({__proto__:null,DEG2RAD:ot,RAD2DEG:lt,generateUUID:ct,clamp:ht,euclideanModulo:ut,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:dt,damp:function(t,e,n,i){return dt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(ut(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(at=t%2147483647),at=16807*at%2147483647,(at-1)/2147483646},degToRad:function(t){return t*ot},radToDeg:function(t){return t*lt},isPowerOfTwo:pt,ceilPowerOfTwo:mt,floorPowerOfTwo:ft,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case\"XYX\":t.set(o*h,l*u,l*d,o*c);break;case\"YZY\":t.set(l*d,o*h,l*u,o*c);break;case\"ZXZ\":t.set(l*u,l*d,o*h,o*c);break;case\"XZX\":t.set(o*h,l*m,l*p,o*c);break;case\"YXY\":t.set(l*p,o*h,l*m,o*c);break;case\"ZYZ\":t.set(l*m,l*p,o*h,o*c);break;default:console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \"+r)}}});class vt{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}vt.prototype.isVector2=!0;class yt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],b=i[5],M=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*b,r[6]=s*g+a*x+o*M,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*b,r[7]=l*g+c*x+h*M,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*b,r[8]=u*g+d*x+p*M,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let xt;yt.prototype.isMatrix3=!0;class _t{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\"undefined\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===xt&&(xt=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")),xt.width=t.width,xt.height=t.height;const n=xt.getContext(\"2d\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=xt}return e.width>2048||e.height>2048?(console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",t),e.toDataURL(\"image/jpeg\",.6)):e.toDataURL(\"image/png\")}}let bt=0;class Mt extends rt{constructor(t=Mt.DEFAULT_IMAGE,e=Mt.DEFAULT_MAPPING,n=1001,i=1001,r=1006,s=1008,a=1023,o=1009,l=1,c=3e3){super(),Object.defineProperty(this,\"id\",{value:bt++}),this.uuid=ct(),this.name=\"\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new vt(0,0),this.repeat=new vt(1,1),this.center=new vt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new yt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\"string\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ct()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)i[t].isDataTexture?e.push(wt(i[t].image)):e.push(wt(i[t]))}else e=wt(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(t){if(this.mapping!==i)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function wt(t){return\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap?_t.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\"THREE.Texture: Unable to serialize Texture.\"),{})}Mt.DEFAULT_IMAGE=void 0,Mt.DEFAULT_MAPPING=i,Mt.prototype.isTexture=!0;class St{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-m)<s&&Math.abs(p-f)<s){if(Math.abs(c+u)<a&&Math.abs(h+m)<a&&Math.abs(p+f)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,o=(d+1)/2,v=(g+1)/2,y=(c+u)/4,x=(h+m)/4,_=(p+f)/4;return t>o&&t>v?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=y/n,r=x/n):o>v?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=y/i,r=_/i):v<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(v),n=x/r,i=_/r),this.set(n,i,r,e),this}let v=Math.sqrt((f-p)*(f-p)+(h-m)*(h-m)+(u-c)*(u-c));return Math.abs(v)<.001&&(v=1),this.x=(f-p)/v,this.y=(h-m)/v,this.z=(u-c)/v,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}St.prototype.isVector4=!0;class Tt extends rt{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new St(0,0,t,e),this.scissorTest=!1,this.viewport=new St(0,0,t,e),this.texture=new Mt(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:g,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}Tt.prototype.isWebGLRenderTarget=!0;class Et extends Tt{constructor(t,e,n){super(t,e);const i=this.texture;this.texture=[];for(let t=0;t<n;t++)this.texture[t]=i.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.texture.length;i<r;i++)this.texture[i].image.width=t,this.texture[i].image.height=e,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}Et.prototype.isWebGLMultipleRenderTargets=!0;class At extends Tt{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}At.prototype.isWebGLMultisampleRenderTarget=!0;class Lt{constructor(t=0,e=0,n=0,i=1){this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return console.warn(\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\"),n.slerpQuaternions(t,e,i)}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=r[s+0],d=r[s+1],p=r[s+2],m=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=m);if(h!==m||o!==u||l!==d||c!==p){let t=1-a;const e=o*u+l*d+c*p+h*m,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case\"XYZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"YXZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"ZXY\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"ZYX\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"YZX\":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case\"XZY\":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ht(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Lt.prototype.isQuaternion=!0;class Rt{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),this.applyQuaternion(Pt.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Pt.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Ct.copy(this).projectOnVector(t),this.sub(Ct)}reflect(t){return this.sub(Ct.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ht(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}Rt.prototype.isVector3=!0;const Ct=new Rt,Pt=new Lt;class Dt{constructor(t=new Rt(1/0,1/0,1/0),e=new Rt(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;o<l;o+=3){const l=t[o],c=t[o+1],h=t[o+2];l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;o<l;o++){const l=t.getX(o),c=t.getY(o),h=t.getZ(o);l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Nt.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),Bt.copy(e.boundingBox),Bt.applyMatrix4(t.matrixWorld),this.union(Bt));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Nt),Nt.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(kt),Vt.subVectors(this.max,kt),zt.subVectors(t.a,kt),Ft.subVectors(t.b,kt),Ot.subVectors(t.c,kt),Ht.subVectors(Ft,zt),Ut.subVectors(Ot,Ft),Gt.subVectors(zt,Ot);let e=[0,-Ht.z,Ht.y,0,-Ut.z,Ut.y,0,-Gt.z,Gt.y,Ht.z,0,-Ht.x,Ut.z,0,-Ut.x,Gt.z,0,-Gt.x,-Ht.y,Ht.x,0,-Ut.y,Ut.x,0,-Gt.y,Gt.x,0];return!!qt(e,zt,Ft,Ot,Vt)&&(e=[1,0,0,0,1,0,0,0,1],!!qt(e,zt,Ft,Ot,Vt)&&(Wt.crossVectors(Ht,Ut),e=[Wt.x,Wt.y,Wt.z],qt(e,zt,Ft,Ot,Vt)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Nt.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(Nt).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(It[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),It[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),It[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),It[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),It[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),It[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),It[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),It[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(It)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Dt.prototype.isBox3=!0;const It=[new Rt,new Rt,new Rt,new Rt,new Rt,new Rt,new Rt,new Rt],Nt=new Rt,Bt=new Dt,zt=new Rt,Ft=new Rt,Ot=new Rt,Ht=new Rt,Ut=new Rt,Gt=new Rt,kt=new Rt,Vt=new Rt,Wt=new Rt,jt=new Rt;function qt(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){jt.fromArray(t,s);const a=r.x*Math.abs(jt.x)+r.y*Math.abs(jt.y)+r.z*Math.abs(jt.z),o=e.dot(jt),l=n.dot(jt),c=i.dot(jt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Xt=new Dt,Yt=new Rt,Jt=new Rt,Zt=new Rt;class Qt{constructor(t=new Rt,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Xt.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Zt.subVectors(t,this.center);const e=Zt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Zt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Jt.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(Yt.copy(t.center).add(Jt)),this.expandByPoint(Yt.copy(t.center).sub(Jt)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Kt=new Rt,$t=new Rt,te=new Rt,ee=new Rt,ne=new Rt,ie=new Rt,re=new Rt;class se{constructor(t=new Rt,e=new Rt(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Kt)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Kt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Kt.copy(this.direction).multiplyScalar(e).add(this.origin),Kt.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){$t.copy(t).add(e).multiplyScalar(.5),te.copy(e).sub(t).normalize(),ee.copy(this.origin).sub($t);const r=.5*t.distanceTo(e),s=-this.direction.dot(te),a=ee.dot(this.direction),o=-ee.dot(te),l=ee.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(te).multiplyScalar(u).add($t),d}intersectSphere(t,e){Kt.subVectors(t.center,this.origin);const n=Kt.dot(this.direction),i=Kt.dot(Kt)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s<i||i!=i)&&(i=s),h>=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o<i||i!=i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,Kt)}intersectTriangle(t,e,n,i,r){ne.subVectors(e,t),ie.subVectors(n,t),re.crossVectors(ne,ie);let s,a=this.direction.dot(re);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ee.subVectors(this.origin,t);const o=s*this.direction.dot(ie.crossVectors(ee,ie));if(o<0)return null;const l=s*this.direction.dot(ne.cross(ee));if(l<0)return null;if(o+l>a)return null;const c=-s*ee.dot(re);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class ae{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new ae).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/oe.setFromMatrixColumn(t,0).length(),r=1/oe.setFromMatrixColumn(t,1).length(),s=1/oe.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if(\"XYZ\"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if(\"YXZ\"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if(\"ZXY\"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if(\"ZYX\"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if(\"YZX\"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if(\"XZY\"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(ce,t,he)}lookAt(t,e,n){const i=this.elements;return pe.subVectors(t,e),0===pe.lengthSq()&&(pe.z=1),pe.normalize(),ue.crossVectors(n,pe),0===ue.lengthSq()&&(1===Math.abs(n.z)?pe.x+=1e-4:pe.z+=1e-4,pe.normalize(),ue.crossVectors(n,pe)),ue.normalize(),de.crossVectors(pe,ue),i[0]=ue.x,i[4]=de.x,i[8]=pe.x,i[1]=ue.y,i[5]=de.y,i[9]=pe.y,i[2]=ue.z,i[6]=de.z,i[10]=pe.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],b=i[0],M=i[4],w=i[8],S=i[12],T=i[1],E=i[5],A=i[9],L=i[13],R=i[2],C=i[6],P=i[10],D=i[14],I=i[3],N=i[7],B=i[11],z=i[15];return r[0]=s*b+a*T+o*R+l*I,r[4]=s*M+a*E+o*C+l*N,r[8]=s*w+a*A+o*P+l*B,r[12]=s*S+a*L+o*D+l*z,r[1]=c*b+h*T+u*R+d*I,r[5]=c*M+h*E+u*C+d*N,r[9]=c*w+h*A+u*P+d*B,r[13]=c*S+h*L+u*D+d*z,r[2]=p*b+m*T+f*R+g*I,r[6]=p*M+m*E+f*C+g*N,r[10]=p*w+m*A+f*P+g*B,r[14]=p*S+m*L+f*D+g*z,r[3]=v*b+y*T+x*R+_*I,r[7]=v*M+y*E+x*C+_*N,r[11]=v*w+y*A+x*P+_*B,r[15]=v*S+y*L+x*D+_*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,b=e*v+n*y+i*x+r*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const M=1/b;return t[0]=v*M,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*M,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*M,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*M,t[4]=y*M,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*M,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*M,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*M,t[8]=x*M,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*M,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*M,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*M,t[12]=_*M,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*M,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*M,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*M,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,b=n.y,M=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*b,i[5]=(1-(u+g))*b,i[6]=(f+v)*b,i[7]=0,i[8]=(p+y)*M,i[9]=(f-v)*M,i[10]=(1-(u+m))*M,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=oe.set(i[0],i[1],i[2]).length();const s=oe.set(i[4],i[5],i[6]).length(),a=oe.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],le.copy(this);const o=1/r,l=1/s,c=1/a;return le.elements[0]*=o,le.elements[1]*=o,le.elements[2]*=o,le.elements[4]*=l,le.elements[5]*=l,le.elements[6]*=l,le.elements[8]*=c,le.elements[9]*=c,le.elements[10]*=c,e.setFromRotationMatrix(le),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&console.warn(\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}ae.prototype.isMatrix4=!0;const oe=new Rt,le=new ae,ce=new Rt(0,0,0),he=new Rt(1,1,1),ue=new Rt,de=new Rt,pe=new Rt,me=new ae,fe=new Lt;class ge{constructor(t=0,e=0,n=0,i=ge.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case\"XYZ\":this._y=Math.asin(ht(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case\"YXZ\":this._x=Math.asin(-ht(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case\"ZXY\":this._x=Math.asin(ht(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case\"ZYX\":this._y=Math.asin(-ht(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case\"YZX\":this._z=Math.asin(ht(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case\"XZY\":this._z=Math.asin(-ht(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return me.makeRotationFromQuaternion(t),this.setFromRotationMatrix(me,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return fe.setFromEuler(this),this.setFromQuaternion(fe,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new Rt(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}ge.prototype.isEuler=!0,ge.DefaultOrder=\"XYZ\",ge.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"];class ve{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let ye=0;const xe=new Rt,_e=new Lt,be=new ae,Me=new Rt,we=new Rt,Se=new Rt,Te=new Lt,Ee=new Rt(1,0,0),Ae=new Rt(0,1,0),Le=new Rt(0,0,1),Re={type:\"added\"},Ce={type:\"removed\"};class Pe extends rt{constructor(){super(),Object.defineProperty(this,\"id\",{value:ye++}),this.uuid=ct(),this.name=\"\",this.type=\"Object3D\",this.parent=null,this.children=[],this.up=Pe.DefaultUp.clone();const t=new Rt,e=new ge,n=new Lt,i=new Rt(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new ae},normalMatrix:{value:new yt}}),this.matrix=new ae,this.matrixWorld=new ae,this.matrixAutoUpdate=Pe.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new ve,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return _e.setFromAxisAngle(t,e),this.quaternion.multiply(_e),this}rotateOnWorldAxis(t,e){return _e.setFromAxisAngle(t,e),this.quaternion.premultiply(_e),this}rotateX(t){return this.rotateOnAxis(Ee,t)}rotateY(t){return this.rotateOnAxis(Ae,t)}rotateZ(t){return this.rotateOnAxis(Le,t)}translateOnAxis(t,e){return xe.copy(t).applyQuaternion(this.quaternion),this.position.add(xe.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(Ee,t)}translateY(t){return this.translateOnAxis(Ae,t)}translateZ(t){return this.translateOnAxis(Le,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(be.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Me.copy(t):Me.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),we.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?be.lookAt(we,Me,this.up):be.lookAt(Me,we,this.up),this.quaternion.setFromRotationMatrix(be),i&&(be.extractRotation(i.matrixWorld),_e.setFromRotationMatrix(be),this.quaternion.premultiply(_e.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(Re)):console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(Ce)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(Ce)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),be.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),be.multiply(t.parent.matrixWorld)),t.applyMatrix4(be),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\"id\",t)}getObjectByName(t){return this.getObjectByProperty(\"name\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(we,t,Se),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(we,Te,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\"string\"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:\"Object\",generator:\"Object3D.toJSON\"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,\"\"!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),\"{}\"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type=\"InstancedMesh\",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),l=s(t.skeletons),c=s(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}Pe.DefaultUp=new Rt(0,1,0),Pe.DefaultMatrixAutoUpdate=!0,Pe.prototype.isObject3D=!0;const De=new Rt,Ie=new Rt,Ne=new Rt,Be=new Rt,ze=new Rt,Fe=new Rt,Oe=new Rt,He=new Rt,Ue=new Rt,Ge=new Rt;class ke{constructor(t=new Rt,e=new Rt,n=new Rt){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),De.subVectors(t,e),i.cross(De);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){De.subVectors(i,e),Ie.subVectors(n,e),Ne.subVectors(t,e);const s=De.dot(De),a=De.dot(Ie),o=De.dot(Ne),l=Ie.dot(Ie),c=Ie.dot(Ne),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Be),Be.x>=0&&Be.y>=0&&Be.x+Be.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,Be),o.set(0,0),o.addScaledVector(r,Be.x),o.addScaledVector(s,Be.y),o.addScaledVector(a,Be.z),o}static isFrontFacing(t,e,n,i){return De.subVectors(n,e),Ie.subVectors(t,e),De.cross(Ie).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return De.subVectors(this.c,this.b),Ie.subVectors(this.a,this.b),.5*De.cross(Ie).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ke.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ke.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return ke.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return ke.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ke.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;ze.subVectors(i,n),Fe.subVectors(r,n),He.subVectors(t,n);const o=ze.dot(He),l=Fe.dot(He);if(o<=0&&l<=0)return e.copy(n);Ue.subVectors(t,i);const c=ze.dot(Ue),h=Fe.dot(Ue);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(ze,s);Ge.subVectors(t,r);const d=ze.dot(Ge),p=Fe.dot(Ge);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Fe,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Oe.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Oe,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(ze,s).addScaledVector(Fe,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Ve=0;class We extends rt{constructor(){super(),Object.defineProperty(this,\"id\",{value:Ve++}),this.uuid=ct(),this.name=\"\",this.type=\"Material\",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=tt,this.stencilZFail=tt,this.stencilZPass=tt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}onBuild(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(\"THREE.Material: '\"+e+\"' parameter is undefined.\");continue}if(\"shading\"===e){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(\"THREE.\"+this.type+\": '\"+e+\"' is not a property of this material.\")}}toJSON(t){const e=void 0===t||\"string\"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,\"\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(t){!0===t&&this.version++}}We.prototype.isMaterial=!0;const je={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},qe={h:0,s:0,l:0},Xe={h:0,s:0,l:0};function Ye(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Je(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Ze(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Qe{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=ut(t,1),e=ht(e,0,1),n=ht(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Ye(r,i,t+1/3),this.g=Ye(r,i,t),this.b=Ye(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}let n;if(n=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case\"rgb\":case\"rgba\":if(t=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\"hsl\":case\"hsla\":if(t=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\\#([A-Fa-f\\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=je[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\"THREE.Color: Unknown color \"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Je(t.r),this.g=Je(t.g),this.b=Je(t.b),this}copyLinearToSRGB(t){return this.r=Ze(t.r),this.g=Ze(t.g),this.b=Ze(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\"000000\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(n<i?6:0);break;case n:a=(i-e)/t+2;break;case i:a=(e-n)/t+4}a/=6}return t.h=a,t.s=o,t.l=l,t}getStyle(){return\"rgb(\"+(255*this.r|0)+\",\"+(255*this.g|0)+\",\"+(255*this.b|0)+\")\"}offsetHSL(t,e,n){return this.getHSL(qe),qe.h+=t,qe.s+=e,qe.l+=n,this.setHSL(qe.h,qe.s,qe.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(qe),t.getHSL(Xe);const n=dt(qe.h,Xe.h,e),i=dt(qe.s,Xe.s,e),r=dt(qe.l,Xe.l,e);return this.setHSL(n,i,r),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}Qe.NAMES=je,Qe.prototype.isColor=!0,Qe.prototype.r=1,Qe.prototype.g=1,Qe.prototype.b=1;class Ke extends We{constructor(t){super(),this.type=\"MeshBasicMaterial\",this.color=new Qe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this}}Ke.prototype.isMeshBasicMaterial=!0;const $e=new Rt,tn=new vt;class en{constructor(t,e,n){if(Array.isArray(t))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.name=\"\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyColorsArray(): color is undefined\",i),r=new Qe),e[n++]=r.r,e[n++]=r.g,e[n++]=r.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\",i),r=new vt),e[n++]=r.x,e[n++]=r.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\",i),r=new Rt),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(console.warn(\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\",i),r=new St),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z,e[n++]=r.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)tn.fromBufferAttribute(this,e),tn.applyMatrix3(t),this.setXY(e,tn.x,tn.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)$e.fromBufferAttribute(this,e),$e.applyMatrix3(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)$e.x=this.getX(e),$e.y=this.getY(e),$e.z=this.getZ(e),$e.applyMatrix4(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)$e.x=this.getX(e),$e.y=this.getY(e),$e.z=this.getZ(e),$e.applyNormalMatrix(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)$e.x=this.getX(e),$e.y=this.getY(e),$e.z=this.getZ(e),$e.transformDirection(t),this.setXYZ(e,$e.x,$e.y,$e.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\"\"!==this.name&&(t.name=this.name),this.usage!==et&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}en.prototype.isBufferAttribute=!0;class nn extends en{constructor(t,e,n){super(new Int8Array(t),e,n)}}class rn extends en{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class sn extends en{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class an extends en{constructor(t,e,n){super(new Int16Array(t),e,n)}}class on extends en{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class ln extends en{constructor(t,e,n){super(new Int32Array(t),e,n)}}class cn extends en{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class hn extends en{constructor(t,e,n){super(new Uint16Array(t),e,n)}}hn.prototype.isFloat16BufferAttribute=!0;class un extends en{constructor(t,e,n){super(new Float32Array(t),e,n)}}class dn extends en{constructor(t,e,n){super(new Float64Array(t),e,n)}}function pn(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}const mn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function fn(t,e){return new mn[t](e)}let gn=0;const vn=new ae,yn=new Pe,xn=new Rt,_n=new Dt,bn=new Dt,Mn=new Rt;class wn extends rt{constructor(){super(),Object.defineProperty(this,\"id\",{value:gn++}),this.uuid=ct(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(pn(t)>65535?cn:on)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new yt).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return vn.makeRotationFromQuaternion(t),this.applyMatrix4(vn),this}rotateX(t){return vn.makeRotationX(t),this.applyMatrix4(vn),this}rotateY(t){return vn.makeRotationY(t),this.applyMatrix4(vn),this}rotateZ(t){return vn.makeRotationZ(t),this.applyMatrix4(vn),this}translate(t,e,n){return vn.makeTranslation(t,e,n),this.applyMatrix4(vn),this}scale(t,e,n){return vn.makeScale(t,e,n),this.applyMatrix4(vn),this}lookAt(t){return yn.lookAt(t),yn.updateMatrix(),this.applyMatrix4(yn.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(xn).negate(),this.translate(xn.x,xn.y,xn.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute(\"position\",new un(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Dt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingBox.set(new Rt(-1/0,-1/0,-1/0),new Rt(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];_n.setFromBufferAttribute(n),this.morphTargetsRelative?(Mn.addVectors(this.boundingBox.min,_n.min),this.boundingBox.expandByPoint(Mn),Mn.addVectors(this.boundingBox.max,_n.max),this.boundingBox.expandByPoint(Mn)):(this.boundingBox.expandByPoint(_n.min),this.boundingBox.expandByPoint(_n.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Qt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingSphere.set(new Rt,1/0);if(t){const n=this.boundingSphere.center;if(_n.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];bn.setFromBufferAttribute(n),this.morphTargetsRelative?(Mn.addVectors(_n.min,bn.min),_n.expandByPoint(Mn),Mn.addVectors(_n.max,bn.max),_n.expandByPoint(Mn)):(_n.expandByPoint(bn.min),_n.expandByPoint(bn.max))}_n.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)Mn.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(Mn));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)Mn.fromBufferAttribute(s,e),a&&(xn.fromBufferAttribute(t,e),Mn.add(xn)),i=Math.max(i,n.distanceToSquared(Mn))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeFaceNormals(){}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");const n=t.array,i=e.position.array,r=e.normal.array,s=e.uv.array,a=i.length/3;void 0===e.tangent&&this.setAttribute(\"tangent\",new en(new Float32Array(4*a),4));const o=e.tangent.array,l=[],c=[];for(let t=0;t<a;t++)l[t]=new Rt,c[t]=new Rt;const h=new Rt,u=new Rt,d=new Rt,p=new vt,m=new vt,f=new vt,g=new Rt,v=new Rt;function y(t,e,n){h.fromArray(i,3*t),u.fromArray(i,3*e),d.fromArray(i,3*n),p.fromArray(s,2*t),m.fromArray(s,2*e),f.fromArray(s,2*n),u.sub(h),d.sub(h),m.sub(p),f.sub(p);const r=1/(m.x*f.y-f.x*m.y);isFinite(r)&&(g.copy(u).multiplyScalar(f.y).addScaledVector(d,-m.y).multiplyScalar(r),v.copy(d).multiplyScalar(m.x).addScaledVector(u,-f.x).multiplyScalar(r),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(v),c[e].add(v),c[n].add(v))}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let t=0,e=x.length;t<e;++t){const e=x[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)y(n[t+0],n[t+1],n[t+2])}const _=new Rt,b=new Rt,M=new Rt,w=new Rt;function S(t){M.fromArray(r,3*t),w.copy(M);const e=l[t];_.copy(e),_.sub(M.multiplyScalar(M.dot(e))).normalize(),b.crossVectors(w,e);const n=b.dot(c[t])<0?-1:1;o[4*t]=_.x,o[4*t+1]=_.y,o[4*t+2]=_.z,o[4*t+3]=n}for(let t=0,e=x.length;t<e;++t){const e=x[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)S(n[t+0]),S(n[t+1]),S(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\"position\");if(void 0!==e){let n=this.getAttribute(\"normal\");if(void 0===n)n=new en(new Float32Array(3*e.count),3),this.setAttribute(\"normal\",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Rt,r=new Rt,s=new Rt,a=new Rt,o=new Rt,l=new Rt,c=new Rt,h=new Rt;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),m=t.getX(u+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),s.fromBufferAttribute(e,m),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,p),l.fromBufferAttribute(n,m),a.add(c),o.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,o.x,o.y,o.z),n.setXYZ(m,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\",t);void 0===e&&(e=0,console.warn(\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\"));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const r=n[i].array,s=t.attributes[i],a=s.array,o=s.itemSize*e,l=Math.min(a.length,r.length-o);for(let t=0,e=o;t<l;t++,e++)r[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Mn.fromBufferAttribute(t,e),Mn.normalize(),t.setXYZ(e,Mn.x,Mn.y,Mn.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let r=0,l=e.length;r<l;r++){a=t.isInterleavedBufferAttribute?e[r]*t.data.stride+t.offset:e[r]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new en(s,i,r)}if(null===this.index)return console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\"),this;const e=new wn,n=this.index.array,i=this.attributes;for(const r in i){const s=t(i[r],n);e.setAttribute(r,s)}const r=this.morphAttributes;for(const i in r){const s=[],a=r[i];for(let e=0,i=a.length;e<i;e++){const i=t(a[e],n);s.push(i)}e.morphAttributes[i]=s}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let t=0,n=s.length;t<n;t++){const n=s[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};if(t.uuid=this.uuid,t.type=this.type,\"\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];s.push(i.toJSON(t.data))}s.length>0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new wn).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t<r;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let t=0,e=s.length;t<e;t++){const e=s[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}wn.prototype.isBufferGeometry=!0;const Sn=new ae,Tn=new se,En=new Qt,An=new Rt,Ln=new Rt,Rn=new Rt,Cn=new Rt,Pn=new Rt,Dn=new Rt,In=new Rt,Nn=new Rt,Bn=new Rt,zn=new vt,Fn=new vt,On=new vt,Hn=new Rt,Un=new Rt;class Gn extends Pe{constructor(t=new wn,e=new Ke){super(),this.type=\"Mesh\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),En.copy(n.boundingSphere),En.applyMatrix4(r),!1===t.ray.intersectsSphere(En))return;if(Sn.copy(r).invert(),Tn.copy(t.ray).applyMatrix4(Sn),null!==n.boundingBox&&!1===Tn.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const p=u[n],m=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(p.start+p.count,d.start+d.count);n<i;n+=3){const i=r.getX(n),u=r.getX(n+1),d=r.getX(n+2);s=kn(this,m,t,Tn,a,o,l,c,h,i,u,d),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=p.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),u=Math.min(r.count,d.start+d.count);n<u;n+=3){const u=r.getX(n),d=r.getX(n+1),p=r.getX(n+2);s=kn(this,i,t,Tn,a,o,l,c,h,u,d,p),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}else if(void 0!==a)if(Array.isArray(i))for(let n=0,r=u.length;n<r;n++){const r=u[n],p=i[r.materialIndex];for(let n=Math.max(r.start,d.start),i=Math.min(r.start+r.count,d.start+d.count);n<i;n+=3){s=kn(this,p,t,Tn,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=r.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),r=Math.min(a.count,d.start+d.count);n<r;n+=3){s=kn(this,i,t,Tn,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}}else n.isGeometry&&console.error(\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}function kn(t,e,n,i,r,s,a,o,l,c,h,u){An.fromBufferAttribute(r,c),Ln.fromBufferAttribute(r,h),Rn.fromBufferAttribute(r,u);const d=t.morphTargetInfluences;if(e.morphTargets&&s&&d){In.set(0,0,0),Nn.set(0,0,0),Bn.set(0,0,0);for(let t=0,e=s.length;t<e;t++){const e=d[t],n=s[t];0!==e&&(Cn.fromBufferAttribute(n,c),Pn.fromBufferAttribute(n,h),Dn.fromBufferAttribute(n,u),a?(In.addScaledVector(Cn,e),Nn.addScaledVector(Pn,e),Bn.addScaledVector(Dn,e)):(In.addScaledVector(Cn.sub(An),e),Nn.addScaledVector(Pn.sub(Ln),e),Bn.addScaledVector(Dn.sub(Rn),e)))}An.add(In),Ln.add(Nn),Rn.add(Bn)}t.isSkinnedMesh&&(t.boneTransform(c,An),t.boneTransform(h,Ln),t.boneTransform(u,Rn));const p=function(t,e,n,i,r,s,a,o){let l;if(l=1===e.side?i.intersectTriangle(a,s,r,!0,o):i.intersectTriangle(r,s,a,2!==e.side,o),null===l)return null;Un.copy(o),Un.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(Un);return c<n.near||c>n.far?null:{distance:c,point:Un.clone(),object:t}}(t,e,n,i,An,Ln,Rn,Hn);if(p){o&&(zn.fromBufferAttribute(o,c),Fn.fromBufferAttribute(o,h),On.fromBufferAttribute(o,u),p.uv=ke.getUV(Hn,An,Ln,Rn,zn,Fn,On,new vt)),l&&(zn.fromBufferAttribute(l,c),Fn.fromBufferAttribute(l,h),On.fromBufferAttribute(l,u),p.uv2=ke.getUV(Hn,An,Ln,Rn,zn,Fn,On,new vt));const t={a:c,b:h,c:u,normal:new Rt,materialIndex:0};ke.getNormal(An,Ln,Rn,t.normal),p.face=t}return p}Gn.prototype.isMesh=!0;class Vn extends wn{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type=\"BoxGeometry\",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,b=p/2,M=m/2,w=f+1,S=g+1;let T=0,E=0;const A=new Rt;for(let s=0;s<S;s++){const a=s*x-b;for(let o=0;o<w;o++){const u=o*y-_;A[t]=u*i,A[e]=a*r,A[n]=M,l.push(A.x,A.y,A.z),A[t]=0,A[e]=0,A[n]=m>0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t<g;t++)for(let e=0;e<f;e++){const n=u+e+w*t,i=u+e+w*(t+1),r=u+(e+1)+w*(t+1),s=u+(e+1)+w*t;o.push(n,i,s),o.push(i,r,s),E+=6}a.addGroup(d,E,v),d+=E,u+=T}p(\"z\",\"y\",\"x\",-1,-1,n,e,t,s,r,0),p(\"z\",\"y\",\"x\",1,-1,n,e,-t,s,r,1),p(\"x\",\"z\",\"y\",1,1,t,n,e,i,s,2),p(\"x\",\"z\",\"y\",1,-1,t,n,-e,i,s,3),p(\"x\",\"y\",\"z\",1,-1,t,e,n,i,r,4),p(\"x\",\"y\",\"z\",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute(\"position\",new un(l,3)),this.setAttribute(\"normal\",new un(c,3)),this.setAttribute(\"uv\",new un(h,2))}static fromJSON(t){return new Vn(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function Wn(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function jn(t){const e={};for(let n=0;n<t.length;n++){const i=Wn(t[n]);for(const t in i)e[t]=i[t]}return e}const qn={clone:Wn,merge:jn};class Xn extends We{constructor(t){super(),this.type=\"ShaderMaterial\",this.defines={},this.uniforms={},this.vertexShader=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",this.fragmentShader=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\"),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Wn(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n].value;i&&i.isTexture?e.uniforms[n]={type:\"t\",value:i.toJSON(t).uuid}:i&&i.isColor?e.uniforms[n]={type:\"c\",value:i.getHex()}:i&&i.isVector2?e.uniforms[n]={type:\"v2\",value:i.toArray()}:i&&i.isVector3?e.uniforms[n]={type:\"v3\",value:i.toArray()}:i&&i.isVector4?e.uniforms[n]={type:\"v4\",value:i.toArray()}:i&&i.isMatrix3?e.uniforms[n]={type:\"m3\",value:i.toArray()}:i&&i.isMatrix4?e.uniforms[n]={type:\"m4\",value:i.toArray()}:e.uniforms[n]={value:i}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}Xn.prototype.isShaderMaterial=!0;class Yn extends Pe{constructor(){super(),this.type=\"Camera\",this.matrixWorldInverse=new ae,this.projectionMatrix=new ae,this.projectionMatrixInverse=new ae}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}Yn.prototype.isCamera=!0;class Jn extends Yn{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type=\"PerspectiveCamera\",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*lt*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*ot*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*lt*Math.atan(Math.tan(.5*ot*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*ot*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}Jn.prototype.isPerspectiveCamera=!0;const Zn=90;class Qn extends Pe{constructor(t,e,n){if(super(),this.type=\"CubeCamera\",!0!==n.isWebGLCubeRenderTarget)return void console.error(\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\");this.renderTarget=n;const i=new Jn(Zn,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new Rt(1,0,0)),this.add(i);const r=new Jn(Zn,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Rt(-1,0,0)),this.add(r);const s=new Jn(Zn,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Rt(0,1,0)),this.add(s);const a=new Jn(Zn,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Rt(0,-1,0)),this.add(a);const o=new Jn(Zn,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Rt(0,0,1)),this.add(o);const l=new Jn(Zn,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Rt(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class Kn extends Mt{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o=void 0!==o?o:T,l,c,h),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}Kn.prototype.isCubeTexture=!0;class $n extends Tt{constructor(t,e,n){Number.isInteger(e)&&(console.warn(\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\"),e=n),super(t,t,e),e=e||{},this.texture=new Kn(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=E,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"},i=new Vn(5,5,5),r=new Xn({name:\"CubemapFromEquirect\",uniforms:Wn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new Gn(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new Qn(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}$n.prototype.isWebGLCubeRenderTarget=!0;const ti=new Rt,ei=new Rt,ni=new yt;class ii{constructor(t=new Rt(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=ti.subVectors(n,e).cross(ei.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(ti),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||ni.getNormalMatrix(t),i=this.coplanarPoint(ti).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}ii.prototype.isPlane=!0;const ri=new Qt,si=new Rt;class ai{constructor(t=new ii,e=new ii,n=new ii,i=new ii,r=new ii,s=new ii){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),ri.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSprite(t){return ri.center.set(0,0,0),ri.radius=.7071067811865476,ri.applyMatrix4(t.matrixWorld),this.intersectsSphere(ri)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(si.x=i.normal.x>0?t.max.x:t.min.x,si.y=i.normal.y>0?t.max.y:t.min.y,si.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(si)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function oi(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function li(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const s=i.get(e);void 0===s?i.set(e,function(e,i){const r=e.array,s=e.usage,a=t.createBuffer();t.bindBuffer(i,a),t.bufferData(i,r,s),e.onUploadCallback();let o=5126;return r instanceof Float32Array?o=5126:r instanceof Float64Array?console.warn(\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\"):r instanceof Uint16Array?e.isFloat16BufferAttribute?n?o=5131:console.warn(\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\"):o=5123:r instanceof Int16Array?o=5122:r instanceof Uint32Array?o=5125:r instanceof Int32Array?o=5124:r instanceof Int8Array?o=5120:(r instanceof Uint8Array||r instanceof Uint8ClampedArray)&&(o=5121),{buffer:a,type:o,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version}}(e,r)):s.version<e.version&&(!function(e,i,r){const s=i.array,a=i.updateRange;t.bindBuffer(r,e),-1===a.count?t.bufferSubData(r,0,s):(n?t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s,a.offset,a.count):t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count)),a.count=-1)}(s.buffer,e,r),s.version=e.version)}}}class ci extends wn{constructor(t=1,e=1,n=1,i=1){super(),this.type=\"PlaneGeometry\",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),l=a+1,c=o+1,h=t/a,u=e/o,d=[],p=[],m=[],f=[];for(let t=0;t<c;t++){const e=t*u-s;for(let n=0;n<l;n++){const i=n*h-r;p.push(i,-e,0),m.push(0,0,1),f.push(n/a),f.push(1-t/o)}}for(let t=0;t<o;t++)for(let e=0;e<a;e++){const n=e+l*t,i=e+l*(t+1),r=e+1+l*(t+1),s=e+1+l*t;d.push(n,i,s),d.push(i,r,s)}this.setIndex(d),this.setAttribute(\"position\",new un(p,3)),this.setAttribute(\"normal\",new un(m,3)),this.setAttribute(\"uv\",new un(f,2))}static fromJSON(t){return new ci(t.width,t.height,t.widthSegments,t.heightSegments)}}const hi={alphamap_fragment:\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\",alphamap_pars_fragment:\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",alphatest_fragment:\"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\",aomap_fragment:\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\",aomap_pars_fragment:\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\",begin_vertex:\"vec3 transformed = vec3( position );\",beginnormal_vertex:\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\",bsdfs:\"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\\n}\\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n#else\\n\\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t}\\n\\treturn 1.0;\\n#endif\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\treturn specularColor * brdf.x + brdf.y;\\n}\\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\tvec3 FssEss = F * brdf.x + brdf.y;\\n\\tfloat Ess = brdf.x + brdf.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\",bumpmap_pars_fragment:\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\",color_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",color_pars_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_pars_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\",common:\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\",cube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\t\\tvec2 f = fract( uv );\\n\\t\\tuv += 0.5 - f;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x += texelSize;\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.y += texelSize;\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x -= texelSize;\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\treturn mix( tm, bm, f.y );\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\",defaultnormal_vertex:\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\",displacementmap_pars_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\",displacementmap_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\",encodings_fragment:\"gl_FragColor = linearToOutputTexel( gl_FragColor );\",encodings_pars_fragment:\"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\",envmap_fragment:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifndef ENVMAP_TYPE_CUBE_UV\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\",envmap_common_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\",envmap_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\",envmap_pars_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\",envmap_physical_pars_fragment:\"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\",envmap_vertex:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\",fog_vertex:\"#ifdef USE_FOG\\n\\tfogDepth = - mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\",fog_pars_fragment:\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\",gradientmap_pars_fragment:\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\",lightmap_fragment:\"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n#endif\",lightmap_pars_fragment:\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",lights_lambert_vertex:\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\",lights_pars_begin:\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\",lights_toon_fragment:\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\",lights_toon_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\",lights_phong_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_physical_fragment:\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\",lights_physical_pars_fragment:\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularRoughness;\\n\\tvec3 specularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(\\t\\t0, 1,\\t\\t0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\",lights_fragment_begin:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\",lights_fragment_maps:\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\",lights_fragment_end:\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\",logdepthbuf_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\",map_particle_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\",map_particle_pars_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n#endif\",morphtarget_pars_vertex:\"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",morphtarget_vertex:\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\",normal_fragment_begin:\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\",normal_fragment_maps:\"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\",clearcoat_normal_fragment_begin:\"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\",clearcoat_normal_fragment_maps:\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\",clearcoat_pars_fragment:\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\",packing:\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\",premultiplied_alpha_fragment:\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\",project_vertex:\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\",dithering_fragment:\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\",dithering_pars_fragment:\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\",roughnessmap_pars_fragment:\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",shadowmap_pars_fragment:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t\\tf.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t\\tf.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\",shadowmap_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\",skinbase_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\",skinning_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\",skinnormal_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\",tonemapping_pars_fragment:\"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(\\t1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,\\t1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,\\t1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\",transmission_fragment:\"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSNMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition.xyz / vWorldPosition.w;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tfloat ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );\\n\\tvec3 transmission = transmissionFactor * getIBLVolumeRefraction(\\n\\t\\tnormal, v, roughnessFactor, material.diffuseColor, totalSpecular,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );\\n#endif\",transmission_pars_fragment:\"#ifdef USE_TRANSMISSION\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec4 vWorldPosition;\\n\\tvec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) {\\n\\t\\tvec3 refractionVector = refract(-v, normalize(n), 1.0 / ior);\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length(vec3(modelMatrix[0].xyz));\\n\\t\\tmodelScale.y = length(vec3(modelMatrix[1].xyz));\\n\\t\\tmodelScale.z = length(vec3(modelMatrix[2].xyz));\\n\\t\\treturn normalize(refractionVector) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness(float roughness, float ior) {\\n\\t\\treturn roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0);\\n\\t}\\n\\tvec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) {\\n\\t\\tfloat framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior);\\n\\t\\treturn texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb;\\n\\t}\\n\\tvec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) {\\n\\t\\tif (attenuationDistance == 0.0) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp(-attenuationCoefficient * transmissionDistance);\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor,\\n\\t\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\n\\t\\tvec3 attenuationColor, float attenuationDistance) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix);\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0);\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior);\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance);\\n\\t\\treturn (1.0 - specularColor) * attenuatedColor * baseColor;\\n\\t}\\n#endif\",uv_pars_fragment:\"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\",uv_pars_vertex:\"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\",uv_vertex:\"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\",uv2_pars_fragment:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_pars_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\",uv2_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\",background_frag:\"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",background_vert:\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\",cube_frag:\"#include <envmap_common_pars_fragment>\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",cube_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\",depth_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\",distanceRGBA_frag:\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\",distanceRGBA_vert:\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\",equirect_frag:\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",equirect_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\",linedashed_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\",meshbasic_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshbasic_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_ENVMAP\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshlambert_frag:\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include <lightmap_fragment>\\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshmatcap_frag:\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshmatcap_vert:\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#ifndef FLAT_SHADED\\n\\t\\tvNormal = normalize( transformedNormal );\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\",meshtoon_frag:\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshtoon_vert:\"#define TOON\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphysical_frag:\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define REFLECTIVITY\\n\\t#define CLEARCOAT\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform vec3 attenuationColor;\\n\\tuniform float attenuationDistance;\\n#endif\\n#ifdef REFLECTIVITY\\n\\tuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\n#include <transmission_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphysical_vert:\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec4 vWorldPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition;\\n#endif\\n}\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",points_vert:\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\",shadow_frag:\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",shadow_vert:\"#include <common>\\n#include <fog_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",sprite_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",sprite_vert:\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\"},ui={common:{diffuse:{value:new Qe(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new yt},uv2Transform:{value:new yt},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new vt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Qe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Qe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}},sprite:{diffuse:{value:new Qe(16777215)},opacity:{value:1},center:{value:new vt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new yt}}},di={basic:{uniforms:jn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.fog]),vertexShader:hi.meshbasic_vert,fragmentShader:hi.meshbasic_frag},lambert:{uniforms:jn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.fog,ui.lights,{emissive:{value:new Qe(0)}}]),vertexShader:hi.meshlambert_vert,fragmentShader:hi.meshlambert_frag},phong:{uniforms:jn([ui.common,ui.specularmap,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,ui.lights,{emissive:{value:new Qe(0)},specular:{value:new Qe(1118481)},shininess:{value:30}}]),vertexShader:hi.meshphong_vert,fragmentShader:hi.meshphong_frag},standard:{uniforms:jn([ui.common,ui.envmap,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.roughnessmap,ui.metalnessmap,ui.fog,ui.lights,{emissive:{value:new Qe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:hi.meshphysical_vert,fragmentShader:hi.meshphysical_frag},toon:{uniforms:jn([ui.common,ui.aomap,ui.lightmap,ui.emissivemap,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.gradientmap,ui.fog,ui.lights,{emissive:{value:new Qe(0)}}]),vertexShader:hi.meshtoon_vert,fragmentShader:hi.meshtoon_frag},matcap:{uniforms:jn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,ui.fog,{matcap:{value:null}}]),vertexShader:hi.meshmatcap_vert,fragmentShader:hi.meshmatcap_frag},points:{uniforms:jn([ui.points,ui.fog]),vertexShader:hi.points_vert,fragmentShader:hi.points_frag},dashed:{uniforms:jn([ui.common,ui.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:hi.linedashed_vert,fragmentShader:hi.linedashed_frag},depth:{uniforms:jn([ui.common,ui.displacementmap]),vertexShader:hi.depth_vert,fragmentShader:hi.depth_frag},normal:{uniforms:jn([ui.common,ui.bumpmap,ui.normalmap,ui.displacementmap,{opacity:{value:1}}]),vertexShader:hi.normal_vert,fragmentShader:hi.normal_frag},sprite:{uniforms:jn([ui.sprite,ui.fog]),vertexShader:hi.sprite_vert,fragmentShader:hi.sprite_frag},background:{uniforms:{uvTransform:{value:new yt},t2D:{value:null}},vertexShader:hi.background_vert,fragmentShader:hi.background_frag},cube:{uniforms:jn([ui.envmap,{opacity:{value:1}}]),vertexShader:hi.cube_vert,fragmentShader:hi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:hi.equirect_vert,fragmentShader:hi.equirect_frag},distanceRGBA:{uniforms:jn([ui.common,ui.displacementmap,{referencePosition:{value:new Rt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:hi.distanceRGBA_vert,fragmentShader:hi.distanceRGBA_frag},shadow:{uniforms:jn([ui.lights,ui.fog,{color:{value:new Qe(0)},opacity:{value:1}}]),vertexShader:hi.shadow_vert,fragmentShader:hi.shadow_frag}};function pi(t,e,n,i,r){const s=new Qe(0);let a,o,c=0,h=null,u=0,d=null;function p(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return s},setClearColor:function(t,e=1){s.set(t),c=e,p(s,c)},getClearAlpha:function(){return c},setClearAlpha:function(t){c=t,p(s,c)},render:function(n,r){let m=!1,f=!0===r.isScene?r.background:null;f&&f.isTexture&&(f=e.get(f));const g=t.xr,v=g.getSession&&g.getSession();v&&\"additive\"===v.environmentBlendMode&&(f=null),null===f?p(s,c):f&&f.isColor&&(p(f,1),m=!0),(t.autoClear||m)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||f.mapping===l)?(void 0===o&&(o=new Gn(new Vn(1,1,1),new Xn({name:\"BackgroundCubeMaterial\",uniforms:Wn(di.cube.uniforms),vertexShader:di.cube.vertexShader,fragmentShader:di.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute(\"normal\"),o.geometry.deleteAttribute(\"uv\"),o.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(o.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}}),i.update(o)),o.material.uniforms.envMap.value=f,o.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f._needsFlipEnvMap?-1:1,h===f&&u===f.version&&d===t.toneMapping||(o.material.needsUpdate=!0,h=f,u=f.version,d=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null)):f&&f.isTexture&&(void 0===a&&(a=new Gn(new ci(2,2),new Xn({name:\"BackgroundMaterial\",uniforms:Wn(di.background.uniforms),vertexShader:di.background.vertexShader,fragmentShader:di.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute(\"normal\"),Object.defineProperty(a.material,\"map\",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),a.material.uniforms.uvTransform.value.copy(f.matrix),h===f&&u===f.version&&d===t.toneMapping||(a.material.needsUpdate=!0,h=f,u=f.version,d=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function mi(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get(\"OES_vertex_array_object\"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t<r;t++)e[t]=0,n[t]=0,i[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function m(t){f(t,0)}function f(n,r){const s=c.newAttributes,a=c.enabledAttributes,o=c.attributeDivisors;if(s[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),o[n]!==r){(i.isWebGL2?t:e.get(\"ANGLE_instanced_arrays\"))[i.isWebGL2?\"vertexAttribDivisor\":\"vertexAttribDivisorANGLE\"](n,r),o[n]=r}}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function v(e,n,r,s,a,o){!0!==i.isWebGL2||5124!==r&&5125!==r?t.vertexAttribPointer(e,n,r,s,a,o):t.vertexAttribIPointer(e,n,r,a,o)}function y(){x(),c!==l&&(c=l,h(c.object))}function x(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(r,l,u,y,x){let _=!1;if(a){const e=function(e,n,r){const a=!0===r.wireframe;let l=o[e.id];void 0===l&&(l={},o[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[a];void 0===h&&(h=d(i.isWebGL2?t.createVertexArray():s.createVertexArrayOES()),c[a]=h);return h}(y,u,l);c!==e&&(c=e,h(c.object)),_=function(t,e){const n=c.attributes,i=t.attributes;let r=0;for(const t in i){const e=n[t],s=i[t];if(void 0===e)return!0;if(e.attribute!==s)return!0;if(e.data!==s.data)return!0;r++}return c.attributesNum!==r||c.index!==e}(y,x),_&&function(t,e){const n={},i=t.attributes;let r=0;for(const t in i){const e=i[t],s={};s.attribute=e,e.data&&(s.data=e.data),n[t]=s,r++}c.attributes=n,c.attributesNum=r,c.index=e}(y,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===u.id&&c.wireframe===t||(c.geometry=y.id,c.program=u.id,c.wireframe=t,_=!0)}!0===r.isInstancedMesh&&(_=!0),null!==x&&n.update(x,34963),_&&(!function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get(\"ANGLE_instanced_arrays\"))return;p();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i>=0){const s=l[e];if(void 0!==s){const e=s.normalized,r=s.itemSize,a=n.get(s);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,a=n.stride,u=s.offset;n&&n.isInstancedInterleavedBuffer?(f(i,n.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,a*h,u*h)}else s.isInstancedBufferAttribute?(f(i,s.meshPerAttribute),void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)):m(i),t.bindBuffer(34962,l),v(i,r,c,e,0,0)}else if(\"instanceMatrix\"===e){const e=n.get(r.instanceMatrix);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i+0,1),f(i+1,1),f(i+2,1),f(i+3,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i+0,4,a,!1,64,0),t.vertexAttribPointer(i+1,4,a,!1,64,16),t.vertexAttribPointer(i+2,4,a,!1,64,32),t.vertexAttribPointer(i+3,4,a,!1,64,48)}else if(\"instanceColor\"===e){const e=n.get(r.instanceColor);if(void 0===e)continue;const s=e.buffer,a=e.type;f(i,1),t.bindBuffer(34962,s),t.vertexAttribPointer(i,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i,n);break;case 3:t.vertexAttrib3fv(i,n);break;case 4:t.vertexAttrib4fv(i,n);break;default:t.vertexAttrib1fv(i,n)}}}}g()}(r,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in o){const e=o[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t]}},releaseStatesOfGeometry:function(t){if(void 0===o[t.id])return;const e=o[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t.id]},releaseStatesOfProgram:function(t){for(const e in o){const n=o[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:m,disableUnusedAttributes:g}}function fi(t,e,n,i){const r=i.isWebGL2;let s;this.setMode=function(t){s=t},this.render=function(e,i){t.drawArrays(s,e,i),n.update(i,s,1)},this.renderInstances=function(i,a,o){if(0===o)return;let l,c;if(r)l=t,c=\"drawArraysInstanced\";else if(l=e.get(\"ANGLE_instanced_arrays\"),c=\"drawArraysInstancedANGLE\",null===l)return void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");l[c](s,i,a,o),n.update(a,s,o)}}function gi(t,e,n){let i;function r(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?\"mediump\":\"lowp\"}const s=\"undefined\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||\"undefined\"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:\"highp\";const o=r(a);o!==a&&(console.warn(\"THREE.WebGLRenderer:\",a,\"not supported, using\",o,\"instead.\"),a=o);const l=s||e.has(\"WEBGL_draw_buffers\"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=s||e.has(\"OES_texture_float\");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has(\"EXT_texture_filter_anisotropic\")){const n=e.get(\"EXT_texture_filter_anisotropic\");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:s?t.getParameter(36183):0}}function vi(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new ii,o=new yt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==s;++e,n+=4)a.copy(t[e]).applyMatrix4(r,o),a.normal.toArray(c,n),c[n+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,s){const a=0!==t.length||e||0!==i||r;return r=e,n=h(t,s,0),i=t.length,a},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1,c()},this.setState=function(e,a,o){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,m=t.get(e);if(!r||null===u||0===u.length||s&&!p)s?h(null):c();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=h(u,a,e,o);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function yi(t){let e=new WeakMap;function n(t,e){return e===a?t.mapping=r:e===o&&(t.mapping=s),t}function i(t){const n=t.target;n.removeEventListener(\"dispose\",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping;if(s===a||s===o){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=t.getRenderTarget(),o=new $n(s.height/2);return o.fromEquirectangularTexture(t,r),e.set(r,o),t.setRenderTarget(a),r.addEventListener(\"dispose\",i),n(o.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}function xi(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case\"WEBGL_depth_texture\":i=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":i=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":i=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":i=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n(\"EXT_color_buffer_float\"):(n(\"WEBGL_depth_texture\"),n(\"OES_texture_float\"),n(\"OES_texture_half_float\"),n(\"OES_texture_half_float_linear\"),n(\"OES_standard_derivatives\"),n(\"OES_element_index_uint\"),n(\"OES_vertex_array_object\"),n(\"ANGLE_instanced_arrays\")),n(\"OES_texture_float_linear\"),n(\"EXT_color_buffer_half_float\")},get:function(t){const e=n(t);return null===e&&console.warn(\"THREE.WebGLRenderer: \"+t+\" extension not supported.\"),e}}}function _i(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const t in o.attributes)e.remove(o.attributes[t]);o.removeEventListener(\"dispose\",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}const o=new(pn(n)>65535?cn:on)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener(\"dispose\",a),r[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t++)e.update(n[t],34962)}},getWireframeAttribute:function(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&o(t)}else o(t);return s.get(t)}}}function bi(t,e,n,i){const r=i.isWebGL2;let s,a,o;this.setMode=function(t){s=t},this.setIndex=function(t){a=t.type,o=t.bytesPerElement},this.render=function(e,i){t.drawElements(s,i,a,e*o),n.update(i,s,1)},this.renderInstances=function(i,l,c){if(0===c)return;let h,u;if(r)h=t,u=\"drawElementsInstanced\";else if(h=e.get(\"ANGLE_instanced_arrays\"),u=\"drawElementsInstancedANGLE\",null===h)return void console.error(\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");h[u](s,l,a,i*o,c),n.update(l,s,c)}}function Mi(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,i){switch(e.calls++,n){case 4:e.triangles+=i*(t/3);break;case 1:e.lines+=i*(t/2);break;case 3:e.lines+=i*(t-1);break;case 2:e.lines+=i*t;break;case 0:e.points+=i*t;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",n)}}}}function wi(t,e){return t[0]-e[0]}function Si(t,e){return Math.abs(e[1])-Math.abs(t[1])}function Ti(t){const e={},n=new Float32Array(8),i=[];for(let t=0;t<8;t++)i[t]=[t,0];return{update:function(r,s,a,o){const l=r.morphTargetInfluences,c=void 0===l?0:l.length;let h=e[s.id];if(void 0===h||h.length!==c){h=[];for(let t=0;t<c;t++)h[t]=[t,0];e[s.id]=h}for(let t=0;t<c;t++){const e=h[t];e[0]=t,e[1]=l[t]}h.sort(Si);for(let t=0;t<8;t++)t<c&&h[t][1]?(i[t][0]=h[t][0],i[t][1]=h[t][1]):(i[t][0]=Number.MAX_SAFE_INTEGER,i[t][1]=0);i.sort(wi);const u=a.morphTargets&&s.morphAttributes.position,d=a.morphNormals&&s.morphAttributes.normal;let p=0;for(let t=0;t<8;t++){const e=i[t],r=e[0],a=e[1];r!==Number.MAX_SAFE_INTEGER&&a?(u&&s.getAttribute(\"morphTarget\"+t)!==u[r]&&s.setAttribute(\"morphTarget\"+t,u[r]),d&&s.getAttribute(\"morphNormal\"+t)!==d[r]&&s.setAttribute(\"morphNormal\"+t,d[r]),n[t]=a,p+=a):(u&&!0===s.hasAttribute(\"morphTarget\"+t)&&s.deleteAttribute(\"morphTarget\"+t),d&&!0===s.hasAttribute(\"morphNormal\"+t)&&s.deleteAttribute(\"morphNormal\"+t),n[t]=0)}const m=s.morphTargetsRelative?1:1-p;o.getUniforms().setValue(t,\"morphTargetBaseInfluence\",m),o.getUniforms().setValue(t,\"morphTargetInfluences\",n)}}}function Ei(t,e,n,i){let r=new WeakMap;function s(t){const e=t.target;e.removeEventListener(\"dispose\",s),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const a=i.render.frame,o=t.geometry,l=e.get(t,o);return r.get(l)!==a&&(e.update(l),r.set(l,a)),t.isInstancedMesh&&(!1===t.hasEventListener(\"dispose\",s)&&t.addEventListener(\"dispose\",s),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){r=new WeakMap}}}di.physical={uniforms:jn([di.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new vt(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Qe(0)},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new vt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Qe(0)}}]),vertexShader:hi.meshphysical_vert,fragmentShader:hi.meshphysical_frag};class Ai extends Mt{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=p,this.minFilter=p,this.wrapR=u,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Ai.prototype.isDataTexture2DArray=!0;class Li extends Mt{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=p,this.minFilter=p,this.wrapR=u,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Li.prototype.isDataTexture3D=!0;const Ri=new Mt,Ci=new Ai,Pi=new Li,Di=new Kn,Ii=[],Ni=[],Bi=new Float32Array(16),zi=new Float32Array(9),Fi=new Float32Array(4);function Oi(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=Ii[r];if(void 0===s&&(s=new Float32Array(r),Ii[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function Hi(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function Ui(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function Gi(t,e){let n=Ni[e];void 0===n&&(n=new Int32Array(e),Ni[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function ki(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function Vi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(Hi(n,e))return;t.uniform2fv(this.addr,e),Ui(n,e)}}function Wi(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(Hi(n,e))return;t.uniform3fv(this.addr,e),Ui(n,e)}}function ji(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(Hi(n,e))return;t.uniform4fv(this.addr,e),Ui(n,e)}}function qi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Hi(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),Ui(n,e)}else{if(Hi(n,i))return;Fi.set(i),t.uniformMatrix2fv(this.addr,!1,Fi),Ui(n,i)}}function Xi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Hi(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),Ui(n,e)}else{if(Hi(n,i))return;zi.set(i),t.uniformMatrix3fv(this.addr,!1,zi),Ui(n,i)}}function Yi(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(Hi(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),Ui(n,e)}else{if(Hi(n,i))return;Bi.set(i),t.uniformMatrix4fv(this.addr,!1,Bi),Ui(n,i)}}function Ji(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function Zi(t,e){const n=this.cache;Hi(n,e)||(t.uniform2iv(this.addr,e),Ui(n,e))}function Qi(t,e){const n=this.cache;Hi(n,e)||(t.uniform3iv(this.addr,e),Ui(n,e))}function Ki(t,e){const n=this.cache;Hi(n,e)||(t.uniform4iv(this.addr,e),Ui(n,e))}function $i(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function tr(t,e){const n=this.cache;Hi(n,e)||(t.uniform2uiv(this.addr,e),Ui(n,e))}function er(t,e){const n=this.cache;Hi(n,e)||(t.uniform3uiv(this.addr,e),Ui(n,e))}function nr(t,e){const n=this.cache;Hi(n,e)||(t.uniform4uiv(this.addr,e),Ui(n,e))}function ir(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTexture2D(e||Ri,r)}function rr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||Pi,r)}function sr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTextureCube(e||Di,r)}function ar(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||Ci,r)}function or(t,e){t.uniform1fv(this.addr,e)}function lr(t,e){const n=Oi(e,this.size,2);t.uniform2fv(this.addr,n)}function cr(t,e){const n=Oi(e,this.size,3);t.uniform3fv(this.addr,n)}function hr(t,e){const n=Oi(e,this.size,4);t.uniform4fv(this.addr,n)}function ur(t,e){const n=Oi(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function dr(t,e){const n=Oi(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function pr(t,e){const n=Oi(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function mr(t,e){t.uniform1iv(this.addr,e)}function fr(t,e){t.uniform2iv(this.addr,e)}function gr(t,e){t.uniform3iv(this.addr,e)}function vr(t,e){t.uniform4iv(this.addr,e)}function yr(t,e){t.uniform1uiv(this.addr,e)}function xr(t,e){t.uniform2uiv(this.addr,e)}function _r(t,e){t.uniform3uiv(this.addr,e)}function br(t,e){t.uniform4uiv(this.addr,e)}function Mr(t,e,n){const i=e.length,r=Gi(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTexture2D(e[t]||Ri,r[t])}function wr(t,e,n){const i=e.length,r=Gi(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTextureCube(e[t]||Di,r[t])}function Sr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return ki;case 35664:return Vi;case 35665:return Wi;case 35666:return ji;case 35674:return qi;case 35675:return Xi;case 35676:return Yi;case 5124:case 35670:return Ji;case 35667:case 35671:return Zi;case 35668:case 35672:return Qi;case 35669:case 35673:return Ki;case 5125:return $i;case 36294:return tr;case 36295:return er;case 36296:return nr;case 35678:case 36198:case 36298:case 36306:case 35682:return ir;case 35679:case 36299:case 36307:return rr;case 35680:case 36300:case 36308:case 36293:return sr;case 36289:case 36303:case 36311:case 36292:return ar}}(e.type)}function Tr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return or;case 35664:return lr;case 35665:return cr;case 35666:return hr;case 35674:return ur;case 35675:return dr;case 35676:return pr;case 5124:case 35670:return mr;case 35667:case 35671:return fr;case 35668:case 35672:return gr;case 35669:case 35673:return vr;case 5125:return yr;case 36294:return xr;case 36295:return _r;case 36296:return br;case 35678:case 36198:case 36298:case 36306:case 35682:return Mr;case 35680:case 36300:case 36308:case 36293:return wr}}(e.type)}function Er(t){this.id=t,this.seq=[],this.map={}}Tr.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),Ui(e,t)},Er.prototype.setValue=function(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}};const Ar=/(\\w+)(\\])?(\\[|\\.)?/g;function Lr(t,e){t.seq.push(e),t.map[e.id]=e}function Rr(t,e,n){const i=t.name,r=i.length;for(Ar.lastIndex=0;;){const s=Ar.exec(i),a=Ar.lastIndex;let o=s[1];const l=\"]\"===s[2],c=s[3];if(l&&(o|=0),void 0===c||\"[\"===c&&a+2===r){Lr(n,void 0===c?new Sr(o,t,e):new Tr(o,t,e));break}{let t=n.map[o];void 0===t&&(t=new Er(o),Lr(n,t)),n=t}}}function Cr(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);Rr(n,t.getUniformLocation(e,n.name),this)}}function Pr(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}Cr.prototype.setValue=function(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)},Cr.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},Cr.upload=function(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}},Cr.seqWithValue=function(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n};let Dr=0;function Ir(t){switch(t){case X:return[\"Linear\",\"( value )\"];case Y:return[\"sRGB\",\"( value )\"];case Z:return[\"RGBE\",\"( value )\"];case Q:return[\"RGBM\",\"( value, 7.0 )\"];case K:return[\"RGBM\",\"( value, 16.0 )\"];case $:return[\"RGBD\",\"( value, 256.0 )\"];case J:return[\"Gamma\",\"( value, float( GAMMA_FACTOR ) )\"];case 3003:return[\"LogLuv\",\"( value )\"];default:return console.warn(\"THREE.WebGLProgram: Unsupported encoding:\",t),[\"Linear\",\"( value )\"]}}function Nr(t,e,n){const i=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();if(i&&\"\"===r)return\"\";return\"THREE.WebGLShader: gl.getShaderInfoLog() \"+n+\"\\n\"+r+function(t){const e=t.split(\"\\n\");for(let t=0;t<e.length;t++)e[t]=t+1+\": \"+e[t];return e.join(\"\\n\")}(t.getShaderSource(e))}function Br(t,e){const n=Ir(e);return\"vec4 \"+t+\"( vec4 value ) { return \"+n[0]+\"ToLinear\"+n[1]+\"; }\"}function zr(t,e){const n=Ir(e);return\"vec4 \"+t+\"( vec4 value ) { return LinearTo\"+n[0]+n[1]+\"; }\"}function Fr(t,e){let n;switch(e){case 1:n=\"Linear\";break;case 2:n=\"Reinhard\";break;case 3:n=\"OptimizedCineon\";break;case 4:n=\"ACESFilmic\";break;case 5:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e),n=\"Linear\"}return\"vec3 \"+t+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}function Or(t){return\"\"!==t}function Hr(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Ur(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Gr=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function kr(t){return t.replace(Gr,Vr)}function Vr(t,e){const n=hi[e];if(void 0===n)throw new Error(\"Can not resolve #include <\"+e+\">\");return kr(n)}const Wr=/#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g,jr=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function qr(t){return t.replace(jr,Yr).replace(Wr,Xr)}function Xr(t,e,n,i){return console.warn(\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\"),Yr(t,e,n,i)}function Yr(t,e,n,i){let r=\"\";for(let t=parseInt(e);t<parseInt(n);t++)r+=i.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+t+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,t);return r}function Jr(t){let e=\"precision \"+t.precision+\" float;\\nprecision \"+t.precision+\" int;\";return\"highp\"===t.precision?e+=\"\\n#define HIGH_PRECISION\":\"mediump\"===t.precision?e+=\"\\n#define MEDIUM_PRECISION\":\"lowp\"===t.precision&&(e+=\"\\n#define LOW_PRECISION\"),e}function Zr(t,e,n,i){const a=t.getContext(),o=n.defines;let h=n.vertexShader,u=n.fragmentShader;const d=function(t){let e=\"SHADOWMAP_TYPE_BASIC\";return 1===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF\":2===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF_SOFT\":3===t.shadowMapType&&(e=\"SHADOWMAP_TYPE_VSM\"),e}(n),p=function(t){let e=\"ENVMAP_TYPE_CUBE\";if(t.envMap)switch(t.envMapMode){case r:case s:e=\"ENVMAP_TYPE_CUBE\";break;case l:case c:e=\"ENVMAP_TYPE_CUBE_UV\"}return e}(n),m=function(t){let e=\"ENVMAP_MODE_REFLECTION\";if(t.envMap)switch(t.envMapMode){case s:case c:e=\"ENVMAP_MODE_REFRACTION\"}return e}(n),f=function(t){let e=\"ENVMAP_BLENDING_NONE\";if(t.envMap)switch(t.combine){case 0:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case 1:e=\"ENVMAP_BLENDING_MIX\";break;case 2:e=\"ENVMAP_BLENDING_ADD\"}return e}(n),g=t.gammaFactor>0?t.gammaFactor:1,v=n.isWebGL2?\"\":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||\"physical\"===t.shaderID?\"#extension GL_OES_standard_derivatives : enable\":\"\",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?\"#extension GL_EXT_frag_depth : enable\":\"\",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?\"#extension GL_EXT_draw_buffers : require\":\"\",(t.extensionShaderTextureLOD||t.envMap||t.transmission>0)&&t.rendererExtensionShaderTextureLod?\"#extension GL_EXT_shader_texture_lod : enable\":\"\"].filter(Or).join(\"\\n\")}(n),y=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push(\"#define \"+n+\" \"+i)}return e.join(\"\\n\")}(o),x=a.createProgram();let _,b,M=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";n.isRawShaderMaterial?(_=[y].filter(Or).join(\"\\n\"),_.length>0&&(_+=\"\\n\"),b=[v,y].filter(Or).join(\"\\n\"),b.length>0&&(b+=\"\\n\")):(_=[Jr(n),\"#define SHADER_NAME \"+n.shaderName,y,n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+g,\"#define MAX_BONES \"+n.maxBones,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+m:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&!1===n.flatShading?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+d:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(Or).join(\"\\n\"),b=[v,Jr(n),\"#define SHADER_NAME \"+n.shaderName,y,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest+(n.alphaTest%1?\"\":\".0\"):\"\",\"#define GAMMA_FACTOR \"+g,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+p:\"\",n.envMap?\"#define \"+m:\"\",n.envMap?\"#define \"+f:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+d:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",0!==n.toneMapping?\"#define TONE_MAPPING\":\"\",0!==n.toneMapping?hi.tonemapping_pars_fragment:\"\",0!==n.toneMapping?Fr(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",hi.encodings_pars_fragment,n.map?Br(\"mapTexelToLinear\",n.mapEncoding):\"\",n.matcap?Br(\"matcapTexelToLinear\",n.matcapEncoding):\"\",n.envMap?Br(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMap?Br(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.lightMap?Br(\"lightMapTexelToLinear\",n.lightMapEncoding):\"\",zr(\"linearToOutputTexel\",n.outputEncoding),n.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(Or).join(\"\\n\")),h=kr(h),h=Hr(h,n),h=Ur(h,n),u=kr(u),u=Hr(u,n),u=Ur(u,n),h=qr(h),u=qr(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M=\"#version 300 es\\n\",_=[\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+_,b=[\"#define varying in\",n.glslVersion===it?\"\":\"out highp vec4 pc_fragColor;\",n.glslVersion===it?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+b);const w=M+b+u,S=Pr(a,35633,M+_+h),T=Pr(a,35632,w);if(a.attachShader(x,S),a.attachShader(x,T),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,\"position\"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(T).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=Nr(a,S,\"vertex\"),n=Nr(a,T,\"fragment\");console.error(\"THREE.WebGLProgram: shader error: \",a.getError(),\"35715\",a.getProgramParameter(x,35715),\"gl.getProgramInfoLog\",t,e,n)}else\"\"!==t?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",t):\"\"!==e&&\"\"!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:b}})}let E,A;return a.deleteShader(S),a.deleteShader(T),this.getUniforms=function(){return void 0===E&&(E=new Cr(a,x)),E},this.getAttributes=function(){return void 0===A&&(A=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r).name;n[i]=t.getAttribLocation(e,i)}return n}(a,x)),A},this.destroy=function(){i.releaseStatesOfProgram(this),a.deleteProgram(x),this.program=void 0},this.name=n.shaderName,this.id=Dr++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=S,this.fragmentShader=T,this}function Qr(t,e,n,i,r,s){const a=[],o=i.isWebGL2,h=i.logarithmicDepthBuffer,u=i.floatVertexTextures,d=i.maxVertexUniforms,p=i.vertexTextures;let m=i.precision;const f={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"},g=[\"precision\",\"isWebGL2\",\"supportsVertexTextures\",\"outputEncoding\",\"instancing\",\"instancingColor\",\"map\",\"mapEncoding\",\"matcap\",\"matcapEncoding\",\"envMap\",\"envMapMode\",\"envMapEncoding\",\"envMapCubeUV\",\"lightMap\",\"lightMapEncoding\",\"aoMap\",\"emissiveMap\",\"emissiveMapEncoding\",\"bumpMap\",\"normalMap\",\"objectSpaceNormalMap\",\"tangentSpaceNormalMap\",\"clearcoatMap\",\"clearcoatRoughnessMap\",\"clearcoatNormalMap\",\"displacementMap\",\"specularMap\",\"roughnessMap\",\"metalnessMap\",\"gradientMap\",\"alphaMap\",\"combine\",\"vertexColors\",\"vertexAlphas\",\"vertexTangents\",\"vertexUvs\",\"uvsVertexOnly\",\"fog\",\"useFog\",\"fogExp2\",\"flatShading\",\"sizeAttenuation\",\"logarithmicDepthBuffer\",\"skinning\",\"maxBones\",\"useVertexTexture\",\"morphTargets\",\"morphNormals\",\"premultipliedAlpha\",\"numDirLights\",\"numPointLights\",\"numSpotLights\",\"numHemiLights\",\"numRectAreaLights\",\"numDirLightShadows\",\"numPointLightShadows\",\"numSpotLightShadows\",\"shadowMapEnabled\",\"shadowMapType\",\"toneMapping\",\"physicallyCorrectLights\",\"alphaTest\",\"doubleSided\",\"flipSided\",\"numClippingPlanes\",\"numClipIntersection\",\"depthPacking\",\"dithering\",\"sheen\",\"transmission\",\"transmissionMap\",\"thicknessMap\"];function v(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\"),e=t.texture.encoding):e=X,e}return{getParameters:function(r,a,g,y,x){const _=y.fog,b=r.isMeshStandardMaterial?y.environment:null,M=e.get(r.envMap||b),w=f[r.type],S=x.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(u)return 1024;{const t=d,n=Math.floor((t-20)/4),i=Math.min(n,e.length);return i<e.length?(console.warn(\"THREE.WebGLRenderer: Skeleton has \"+e.length+\" bones. This GPU supports \"+i+\".\"),0):i}}(x):0;let T,E;if(null!==r.precision&&(m=i.getMaxPrecision(r.precision),m!==r.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",r.precision,\"not supported, using\",m,\"instead.\")),w){const t=di[w];T=t.vertexShader,E=t.fragmentShader}else T=r.vertexShader,E=r.fragmentShader;const A=t.getRenderTarget();return{isWebGL2:o,shaderID:w,shaderName:r.type,vertexShader:T,fragmentShader:E,defines:r.defines,isRawShaderMaterial:!0===r.isRawShaderMaterial,glslVersion:r.glslVersion,precision:m,instancing:!0===x.isInstancedMesh,instancingColor:!0===x.isInstancedMesh&&null!==x.instanceColor,supportsVertexTextures:p,outputEncoding:null!==A?v(A.texture):t.outputEncoding,map:!!r.map,mapEncoding:v(r.map),matcap:!!r.matcap,matcapEncoding:v(r.matcap),envMap:!!M,envMapMode:M&&M.mapping,envMapEncoding:v(M),envMapCubeUV:!!M&&(M.mapping===l||M.mapping===c),lightMap:!!r.lightMap,lightMapEncoding:v(r.lightMap),aoMap:!!r.aoMap,emissiveMap:!!r.emissiveMap,emissiveMapEncoding:v(r.emissiveMap),bumpMap:!!r.bumpMap,normalMap:!!r.normalMap,objectSpaceNormalMap:1===r.normalMapType,tangentSpaceNormalMap:0===r.normalMapType,clearcoatMap:!!r.clearcoatMap,clearcoatRoughnessMap:!!r.clearcoatRoughnessMap,clearcoatNormalMap:!!r.clearcoatNormalMap,displacementMap:!!r.displacementMap,roughnessMap:!!r.roughnessMap,metalnessMap:!!r.metalnessMap,specularMap:!!r.specularMap,alphaMap:!!r.alphaMap,gradientMap:!!r.gradientMap,sheen:!!r.sheen,transmission:!!r.transmission,transmissionMap:!!r.transmissionMap,thicknessMap:!!r.thicknessMap,combine:r.combine,vertexTangents:r.normalMap&&r.vertexTangents,vertexColors:r.vertexColors,vertexAlphas:!0===r.vertexColors&&x.geometry&&x.geometry.attributes.color&&4===x.geometry.attributes.color.itemSize,vertexUvs:!!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatMap||r.clearcoatRoughnessMap||r.clearcoatNormalMap||r.displacementMap||r.transmissionMap||r.thicknessMap),uvsVertexOnly:!(r.map||r.bumpMap||r.normalMap||r.specularMap||r.alphaMap||r.emissiveMap||r.roughnessMap||r.metalnessMap||r.clearcoatNormalMap||r.transmission||r.transmissionMap||r.thicknessMap||!r.displacementMap),fog:!!_,useFog:r.fog,fogExp2:_&&_.isFogExp2,flatShading:!!r.flatShading,sizeAttenuation:r.sizeAttenuation,logarithmicDepthBuffer:h,skinning:!0===x.isSkinnedMesh&&S>0,maxBones:S,useVertexTexture:u,morphTargets:r.morphTargets,morphNormals:r.morphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&g.length>0,shadowMapType:t.shadowMap.type,toneMapping:r.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:2===r.side,flipSided:1===r.side,depthPacking:void 0!==r.depthPacking&&r.depthPacking,index0AttributeName:r.index0AttributeName,extensionDerivatives:r.extensions&&r.extensions.derivatives,extensionFragDepth:r.extensions&&r.extensions.fragDepth,extensionDrawBuffers:r.extensions&&r.extensions.drawBuffers,extensionShaderTextureLOD:r.extensions&&r.extensions.shaderTextureLOD,rendererExtensionFragDepth:o||n.has(\"EXT_frag_depth\"),rendererExtensionDrawBuffers:o||n.has(\"WEBGL_draw_buffers\"),rendererExtensionShaderTextureLod:o||n.has(\"EXT_shader_texture_lod\"),customProgramCacheKey:r.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<g.length;t++)n.push(e[g[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=f[t.type];let n;if(e){const t=di[e];n=qn.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new Zr(t,n,e,r),a.push(i)),i},releaseProgram:function(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function Kr(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function $r(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function ts(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function es(t){const e=[];let n=0;const i=[],r=[],s=[],a={id:-1};function o(i,r,s,o,l,c){let h=e[n];const u=t.get(s);return void 0===h?(h={id:i.id,object:i,geometry:r,material:s,program:u.program||a,groupOrder:o,renderOrder:i.renderOrder,z:l,group:c},e[n]=h):(h.id=i.id,h.object=i,h.geometry=r,h.material=s,h.program=u.program||a,h.groupOrder=o,h.renderOrder=i.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:i,transmissive:r,transparent:s,init:function(){n=0,i.length=0,r.length=0,s.length=0},push:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.push(h):!0===n.transparent?s.push(h):i.push(h)},unshift:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.unshift(h):!0===n.transparent?s.unshift(h):i.unshift(h)},finish:function(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){i.length>1&&i.sort(t||$r),r.length>1&&r.sort(e||ts),s.length>1&&s.sort(e||ts)}}}function ns(t){let e=new WeakMap;return{get:function(n,i){let r;return!1===e.has(n)?(r=new es(t),e.set(n,[r])):i>=e.get(n).length?(r=new es(t),e.get(n).push(r)):r=e.get(n)[i],r},dispose:function(){e=new WeakMap}}}function is(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={direction:new Rt,color:new Qe};break;case\"SpotLight\":n={position:new Rt,direction:new Rt,color:new Qe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new Rt,color:new Qe,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new Rt,skyColor:new Qe,groundColor:new Qe};break;case\"RectAreaLight\":n={color:new Qe,position:new Rt,halfWidth:new Rt,halfHeight:new Rt}}return t[e.id]=n,n}}}let rs=0;function ss(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function as(t,e){const n=new is,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":case\"SpotLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt};break;case\"PointLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)r.probe.push(new Rt);const s=new Rt,a=new ae,o=new ae;return{setup:function(s){let a=0,o=0,l=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,m=0,f=0,g=0;s.sort(ss);for(let t=0,e=s.length;t<e;t++){const e=s[t],v=e.color,y=e.intensity,x=e.distance,_=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=v.r*y,o+=v.g*y,l+=v.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)r.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.directionalShadow[c]=n,r.directionalShadowMap[c]=_,r.directionalShadowMatrix[c]=e.shadow.matrix,m++}r.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(v).multiplyScalar(y),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.spotShadow[u]=n,r.spotShadowMap[u]=_,r.spotShadowMatrix[u]=e.shadow.matrix,g++}r.spot[u]=t,u++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(v).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),r.rectArea[d]=t,d++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,r.pointShadow[h]=n,r.pointShadowMap[h]=_,r.pointShadowMatrix[h]=e.shadow.matrix,f++}r.point[h]=t,h++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),r.hemi[p]=t,p++}}d>0&&(e.isWebGL2||!0===t.has(\"OES_texture_float_linear\")?(r.rectAreaLTC1=ui.LTC_FLOAT_1,r.rectAreaLTC2=ui.LTC_FLOAT_2):!0===t.has(\"OES_texture_half_float_linear\")?(r.rectAreaLTC1=ui.LTC_HALF_1,r.rectAreaLTC2=ui.LTC_HALF_2):console.error(\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\")),r.ambient[0]=a,r.ambient[1]=o,r.ambient[2]=l;const v=r.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===m&&v.numPointShadows===f&&v.numSpotShadows===g||(r.directional.length=c,r.spot.length=u,r.rectArea.length=d,r.point.length=h,r.hemi.length=p,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=g,r.spotShadowMap.length=g,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=f,r.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=m,v.numPointShadows=f,v.numSpotShadows=g,r.version=rs++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=r.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),s.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=r.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),s.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=r.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),o.identity(),a.copy(d.matrixWorld),a.premultiply(u),o.extractRotation(a),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(o),t.halfHeight.applyMatrix4(o),c++}else if(d.isPointLight){const t=r.point[i];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),i++}else if(d.isHemisphereLight){const t=r.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:r}}function os(t,e){const n=new as(t,e),i=[],r=[];return{init:function(){i.length=0,r.length=0},state:{lightsArray:i,shadowsArray:r,lights:n},setupLights:function(){n.setup(i)},setupLightsView:function(t){n.setupView(i,t)},pushLight:function(t){i.push(t)},pushShadow:function(t){r.push(t)}}}function ls(t,e){let n=new WeakMap;return{get:function(i,r=0){let s;return!1===n.has(i)?(s=new os(t,e),n.set(i,[s])):r>=n.get(i).length?(s=new os(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class cs extends We{constructor(t){super(),this.type=\"MeshDepthMaterial\",this.depthPacking=3200,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}cs.prototype.isMeshDepthMaterial=!0;class hs extends We{constructor(t){super(),this.type=\"MeshDistanceMaterial\",this.referencePosition=new Rt,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}hs.prototype.isMeshDistanceMaterial=!0;function us(t,e,n){let i=new ai;const r=new vt,s=new vt,a=new St,o=[],l=[],c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new Xn({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new vt},radius:{value:4}},vertexShader:\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\",fragmentShader:\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean * HALF_SAMPLE_RATE;\\n\\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new wn;f.setAttribute(\"position\",new en(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Gn(f,d),y=this;function x(n,i){const r=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(t){const e=t<<0;let n=o[e];return void 0===n&&(n=new cs({depthPacking:3201,morphTargets:t}),o[e]=n),n}function b(t){const e=t<<0;let n=l[e];return void 0===n&&(n=new hs({morphTargets:t}),l[e]=n),n}function M(e,n,i,r,s,a,o){let l=null,h=_,d=e.customDepthMaterial;if(!0===r.isPointLight&&(h=b,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===i.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0),l=h(t)}else l=d;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){const t=l.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let r=n[e];void 0===r&&(r=l.clone(),n[e]=r),l=r}return l.visible=i.visible,l.wireframe=i.wireframe,l.side=3===o?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],l.clipShadows=i.clipShadows,l.clippingPlanes=i.clippingPlanes,l.clipIntersection=i.clipIntersection,l.wireframeLinewidth=i.wireframeLinewidth,l.linewidth=i.linewidth,!0===r.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(r.matrixWorld),l.nearDistance=s,l.farDistance=a),l}function w(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=r[c.materialIndex];if(h&&h.visible){const e=M(n,i,h,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,c)}}}else if(r.visible){const e=M(n,i,r,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)w(l[t],r,s,a,o)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,o){if(!1===y.enabled)return;if(!1===y.autoUpdate&&!1===y.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;r.copy(u.mapSize);const m=u.getFrameExtents();if(r.multiply(m),s.copy(u.mapSize),(r.x>h||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+\".shadowMap\",u.mapPass=new Tt(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:E};u.map=new Tt(r.x,r.y,t),u.map.texture.name=c.name+\".shadowMap\",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t<f;t++){const e=u.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),u.updateMatrices(c,t),i=u.getFrustum(),w(n,o,u.camera,c,this.type)}u.isPointLightShadow||3!==this.type||x(u,o),u.needsUpdate=!1}y.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function ds(t,e,i){const r=i.isWebGL2;const s=new function(){let e=!1;const n=new St;let i=null;const r=new St(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},a=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(t){t?O(2929):H(2929)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},o=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null;return{setTest:function(t){e||(t?O(2960):H(2960))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&l===i||(t.stencilOp(e,n,i),a=e,o=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null}}};let l={},c=null,h={},u=null,d=!1,p=null,m=null,f=null,g=null,v=null,y=null,x=null,_=!1,b=null,M=null,w=null,S=null,T=null;const E=t.getParameter(35661);let A=!1,L=0;const R=t.getParameter(7938);-1!==R.indexOf(\"WebGL\")?(L=parseFloat(/^WebGL (\\d)/.exec(R)[1]),A=L>=1):-1!==R.indexOf(\"OpenGL ES\")&&(L=parseFloat(/^OpenGL ES (\\d)/.exec(R)[1]),A=L>=2);let C=null,P={};const D=t.getParameter(3088),I=t.getParameter(2978),N=(new St).fromArray(D),B=(new St).fromArray(I);function z(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<i;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,r);return s}const F={};function O(e){!0!==l[e]&&(t.enable(e),l[e]=!0)}function H(e){!1!==l[e]&&(t.disable(e),l[e]=!1)}F[3553]=z(3553,3553,1),F[34067]=z(34067,34069,6),s.setClear(0,0,0,1),a.setClear(1),o.setClear(0),O(2929),a.setFunc(3),V(!1),W(1),O(2884),k(0);const U={[n]:32774,101:32778,102:32779};if(r)U[103]=32775,U[104]=32776;else{const t=e.get(\"EXT_blend_minmax\");null!==t&&(U[103]=t.MIN_EXT,U[104]=t.MAX_EXT)}const G={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function k(e,i,r,s,a,o,l,c){if(0!==e){if(!1===d&&(O(3042),d=!0),5===e)a=a||i,o=o||r,l=l||s,i===m&&a===v||(t.blendEquationSeparate(U[i],U[a]),m=i,v=a),r===f&&s===g&&o===y&&l===x||(t.blendFuncSeparate(G[r],G[s],G[o],G[l]),f=r,g=s,y=o,x=l),p=e,_=null;else if(e!==p||c!==_){if(m===n&&v===n||(t.blendEquation(32774),m=n,v=n),c)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}f=null,g=null,y=null,x=null,p=e,_=c}}else!0===d&&(H(3042),d=!1)}function V(e){b!==e&&(e?t.frontFace(2304):t.frontFace(2305),b=e)}function W(e){0!==e?(O(2884),e!==M&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):H(2884),M=e}function j(e,n,i){e?(O(32823),S===n&&T===i||(t.polygonOffset(n,i),S=n,T=i)):H(32823)}function q(e){void 0===e&&(e=33984+E-1),C!==e&&(t.activeTexture(e),C=e)}return{buffers:{color:s,depth:a,stencil:o},enable:O,disable:H,bindFramebuffer:function(e,n){return null===n&&null!==c&&(n=c),h[e]!==n&&(t.bindFramebuffer(e,n),h[e]=n,r&&(36009===e&&(h[36160]=n),36160===e&&(h[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==c&&(t.bindFramebuffer(36160,e),c=e)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:k,setMaterial:function(t,e){2===t.side?H(2884):O(2884);let n=1===t.side;e&&(n=!n),V(n),1===t.blending&&!1===t.transparent?k(0):k(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),a.setFunc(t.depthFunc),a.setTest(t.depthTest),a.setMask(t.depthWrite),s.setMask(t.colorWrite);const i=t.stencilWrite;o.setTest(i),i&&(o.setMask(t.stencilWriteMask),o.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),o.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),j(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?O(32926):H(32926)},setFlipSided:V,setCullFace:W,setLineWidth:function(e){e!==w&&(A&&t.lineWidth(e),w=e)},setPolygonOffset:j,setScissorTest:function(t){t?O(3089):H(3089)},activeTexture:q,bindTexture:function(e,n){null===C&&q();let i=P[C];void 0===i&&(i={type:void 0,texture:void 0},P[C]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||F[e]),i.type=e,i.texture=n)},unbindTexture:function(){const e=P[C];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},scissor:function(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function(e){!1===B.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),B.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===r&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),l={},C=null,P={},c=null,h={},u=null,d=!1,p=null,m=null,f=null,g=null,v=null,y=null,x=null,_=!1,b=null,M=null,w=null,S=null,T=null,N.set(0,0,t.canvas.width,t.canvas.height),B.set(0,0,t.canvas.width,t.canvas.height),s.reset(),a.reset(),o.reset()}}}function ps(t,e,n,i,r,s,a){const o=r.isWebGL2,l=r.maxTextures,c=r.maxCubemapSize,x=r.maxTextureSize,R=r.maxSamples,C=new WeakMap;let P,D=!1;try{D=\"undefined\"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\"2d\")}catch(t){}function I(t,e){return D?new OffscreenCanvas(t,e):document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")}function N(t,e,n,i){let r=1;if((t.width>i||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if(\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?ft:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===P&&(P=I(s,a));const o=n?I(s,a):P;o.width=s,o.height=a;return o.getContext(\"2d\").drawImage(t,0,0,s,a),console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+t.width+\"x\"+t.height+\") to (\"+s+\"x\"+a+\").\"),o}return\"data\"in t&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+t.width+\"x\"+t.height+\").\"),t}return t}function B(t){return pt(t.width)&&pt(t.height)}function z(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e,n,r,s,a=1){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(r,s,a))}function O(n,i,r){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let s=i;return 6403===i&&(5126===r&&(s=33326),5131===r&&(s=33325),5121===r&&(s=33321)),6407===i&&(5126===r&&(s=34837),5131===r&&(s=34843),5121===r&&(s=32849)),6408===i&&(5126===r&&(s=34836),5131===r&&(s=34842),5121===r&&(s=32856)),33325!==s&&33326!==s&&34842!==s&&34836!==s||e.get(\"EXT_color_buffer_float\"),s}function H(t){return t===p||t===m||t===f?9728:9729}function U(e){const n=e.target;n.removeEventListener(\"dispose\",U),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&C.delete(n),a.memory.textures--}function G(e){const n=e.target;n.removeEventListener(\"dispose\",G),function(e){const n=e.texture,r=i.get(e),s=i.get(n);if(!e)return;void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);r.__webglTexture&&(t.deleteTexture(r.__webglTexture),a.memory.textures--),i.remove(n[e])}i.remove(n),i.remove(e)}(n)}let k=0;function V(t,e){const r=i.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;C.get(t)!==e&&(C.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\");else{if(!1!==n.complete)return void J(r,t,e);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function W(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;Y(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?i.image[t].image:i.image[t]:N(i.image[t],!1,!0,c);const u=h[0],d=B(u)||o,p=s.convert(i.format),m=s.convert(i.type),f=O(i.internalFormat,p,m);let g;if(X(34067,i,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e<g.length;e++){const r=g[e];i.format!==E&&i.format!==T?null!==p?n.compressedTexImage2D(34069+t,e,f,r.width,r.height,0,r.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):n.texImage2D(34069+t,e,f,r.width,r.height,0,p,m,r.data)}}e.__maxMipLevel=g.length-1}else{g=i.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,f,h[t].width,h[t].height,0,p,m,h[t].data);for(let e=0;e<g.length;e++){const i=g[e].image[t].image;n.texImage2D(34069+t,e+1,f,i.width,i.height,0,p,m,i.data)}}else{n.texImage2D(34069+t,0,f,p,m,h[t]);for(let e=0;e<g.length;e++){const i=g[e];n.texImage2D(34069+t,e+1,f,p,m,i.image[t])}}e.__maxMipLevel=g.length}z(i,d)&&F(34067,i,u.width,u.height);e.__version=i.version,i.onUpdate&&i.onUpdate(i)}(a,e,r):(n.activeTexture(33984+r),n.bindTexture(34067,a.__webglTexture))}const j={[h]:10497,[u]:33071,[d]:33648},q={[p]:9728,[m]:9984,[f]:9986,[g]:9729,[v]:9985,[y]:9987};function X(n,s,a){if(a?(t.texParameteri(n,10242,j[s.wrapS]),t.texParameteri(n,10243,j[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,j[s.wrapR]),t.texParameteri(n,10240,q[s.magFilter]),t.texParameteri(n,10241,q[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===u&&s.wrapT===u||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\"),t.texParameteri(n,10240,H(s.magFilter)),t.texParameteri(n,10241,H(s.minFilter)),s.minFilter!==p&&s.minFilter!==g&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\")),!0===e.has(\"EXT_texture_filter_anisotropic\")){const a=e.get(\"EXT_texture_filter_anisotropic\");if(s.type===M&&!1===e.has(\"OES_texture_float_linear\"))return;if(!1===o&&s.type===w&&!1===e.has(\"OES_texture_half_float_linear\"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function Y(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",U),e.__webglTexture=t.createTexture(),a.memory.textures++)}function J(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),Y(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===B(i.image),c=N(i.image,l,!1,x),h=B(c)||o,d=s.convert(i.format);let m,f=s.convert(i.type),v=O(i.internalFormat,d,f);X(a,i,h);const y=i.mipmaps;if(i.isDepthTexture)v=6402,o?v=i.type===M?36012:i.type===b?33190:i.type===S?35056:33189:i.type===M&&console.error(\"WebGLRenderer: Floating point depth texture requires WebGL2.\"),i.format===A&&6402===v&&i.type!==_&&i.type!==b&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),i.type=_,f=s.convert(i.type)),i.format===L&&6402===v&&(v=34041,i.type!==S&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),i.type=S,f=s.convert(i.type))),n.texImage2D(3553,0,v,c.width,c.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){for(let t=0,e=y.length;t<e;t++)m=y[t],n.texImage2D(3553,t,v,m.width,m.height,0,d,f,m.data);i.generateMipmaps=!1,e.__maxMipLevel=y.length-1}else n.texImage2D(3553,0,v,c.width,c.height,0,d,f,c.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let t=0,e=y.length;t<e;t++)m=y[t],i.format!==E&&i.format!==T?null!==d?n.compressedTexImage2D(3553,t,v,m.width,m.height,0,m.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):n.texImage2D(3553,t,v,m.width,m.height,0,d,f,m.data);e.__maxMipLevel=y.length-1}else if(i.isDataTexture2DArray)n.texImage3D(35866,0,v,c.width,c.height,c.depth,0,d,f,c.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(32879,0,v,c.width,c.height,c.depth,0,d,f,c.data),e.__maxMipLevel=0;else if(y.length>0&&h){for(let t=0,e=y.length;t<e;t++)m=y[t],n.texImage2D(3553,t,v,d,f,m);i.generateMipmaps=!1,e.__maxMipLevel=y.length-1}else n.texImage2D(3553,0,v,d,f,c),e.__maxMipLevel=0;z(i,h)&&F(a,i,c.width,c.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function Z(e,r,a,o,l){const c=s.convert(a.format),h=s.convert(a.type),u=O(a.internalFormat,c,h);32879===l||35866===l?n.texImage3D(l,0,u,r.width,r.height,r.depth,0,c,h,null):n.texImage2D(l,0,u,r.width,r.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function Q(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===M?r=36012:e.type===b&&(r=33190));const i=$(n);t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=$(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,r=s.convert(e.format),a=s.convert(e.type),o=O(e.internalFormat,r,a);if(i){const e=$(n);t.renderbufferStorageMultisample(36161,e,o,n.width,n.height)}else t.renderbufferStorage(36161,o,n.width,n.height)}t.bindRenderbuffer(36161,null)}function K(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(s)throw new Error(\"target.depthTexture not supported in Cube render targets\");!function(e,r){if(r&&r.isWebGLCubeRenderTarget)throw new Error(\"Depth Texture with cube render targets is not supported\");if(n.bindFramebuffer(36160,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");i.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),V(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture;if(r.depthTexture.format===A)t.framebufferTexture2D(36160,36096,3553,s,0);else{if(r.depthTexture.format!==L)throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(36160,33306,3553,s,0)}}(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(36160,r.__webglFramebuffer[i]),r.__webglDepthbuffer[i]=t.createRenderbuffer(),Q(r.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(36160,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),Q(r.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function $(t){return o&&t.isWebGLMultisampleRenderTarget?Math.min(R,t.samples):0}let tt=!1,et=!1;this.allocateTextureUnit=function(){const t=k;return t>=l&&console.warn(\"THREE.WebGLTextures: Trying to use \"+t+\" texture units while this GPU supports only \"+l),k+=1,t},this.resetTextureUnits=function(){k=0},this.setTexture2D=V,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?J(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?J(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=W,this.setupRenderTarget=function(e){const l=e.texture,c=i.get(e),h=i.get(l);e.addEventListener(\"dispose\",G),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,a.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,m=l.isDataTexture3D||l.isDataTexture2DArray,f=B(e)||o;if(!o||l.format!==T||l.type!==M&&l.type!==w||(l.format=E,console.warn(\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(r.drawBuffers){const n=e.texture;for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);void 0===r.__webglTexture&&(r.__webglTexture=t.createTexture(),a.memory.textures++)}}else console.warn(\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\");else if(p)if(o){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=s.convert(l.format),r=s.convert(l.type),a=O(l.internalFormat,i,r),o=$(e);t.renderbufferStorageMultisample(36161,o,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),Q(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\");if(u){n.bindTexture(34067,h.__webglTexture),X(34067,l,f);for(let t=0;t<6;t++)Z(c.__webglFramebuffer[t],e,l,36064,34069+t);z(l,f)&&F(34067,l,e.width,e.height),n.bindTexture(34067,null)}else if(d){const t=e.texture;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=i.get(s);n.bindTexture(3553,a.__webglTexture),X(3553,s,f),Z(c.__webglFramebuffer,e,s,36064+r,3553),z(s,f)&&F(3553,s,e.width,e.height)}n.bindTexture(3553,null)}else{let t=3553;if(m)if(o){t=l.isDataTexture3D?32879:35866}else console.warn(\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\");n.bindTexture(t,h.__webglTexture),X(t,l,f),Z(c.__webglFramebuffer,e,l,36064,t),z(l,f)&&F(t,l,e.width,e.height,e.depth),n.bindTexture(t,null)}e.depthBuffer&&K(e)},this.updateRenderTargetMipmap=function(t){const e=B(t)||o,r=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let s=0,a=r.length;s<a;s++){const a=r[s];if(z(a,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,r=i.get(a).__webglTexture;n.bindTexture(e,r),F(e,a,t.width,t.height),n.bindTexture(e,null)}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(o){const r=e.width,s=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const o=i.get(e);n.bindFramebuffer(36008,o.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,o.__webglFramebuffer),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,o.__webglMultisampledFramebuffer)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===tt&&(console.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\"),tt=!0),t=t.texture),V(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===et&&(console.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),et=!0),t=t.texture),W(t,e)}}function ms(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===b)return 5125;if(t===M)return 5126;if(t===w)return i?5131:(n=e.get(\"OES_texture_half_float\"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6407;if(t===E)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===A)return 6402;if(t===L)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(t===R||t===C||t===P||t===D){if(n=e.get(\"WEBGL_compressed_texture_s3tc\"),null===n)return null;if(t===R)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===P)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===D)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===I||t===N||t===B||t===z){if(n=e.get(\"WEBGL_compressed_texture_pvrtc\"),null===n)return null;if(t===I)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===N)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===B)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===z)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get(\"WEBGL_compressed_texture_etc1\"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((t===F||t===O)&&(n=e.get(\"WEBGL_compressed_texture_etc\"),null!==n)){if(t===F)return n.COMPRESSED_RGB8_ETC2;if(t===O)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get(\"WEBGL_compressed_texture_astc\"),null!==n?t:null):36492===t?(n=e.get(\"EXT_texture_compression_bptc\"),null!==n?t:null):t===S?i?34042:(n=e.get(\"WEBGL_depth_texture\"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class fs extends Jn{constructor(t=[]){super(),this.cameras=t}}fs.prototype.isArrayCamera=!0;class gs extends Pe{constructor(){super(),this.type=\"Group\"}}gs.prototype.isGroup=!0;const vs={type:\"move\"};class ys{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new gs,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new gs,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Rt,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Rt),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new gs,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Rt,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Rt),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:\"disconnected\",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&\"visible-blurred\"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(vs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new gs;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints[\"index-finger-tip\"],r=l.joints[\"thumb-tip\"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:\"pinchend\",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:\"pinchstart\",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class xs extends rt{constructor(t,e){super();const n=this,i=t.state;let r=null,s=1,a=null,o=\"local-floor\",l=null,c=null,h=null,u=null;const d=[],p=new Map,m=new Jn;m.layers.enable(1),m.viewport=new St;const f=new Jn;f.layers.enable(2),f.viewport=new St;const g=[m,f],v=new fs;v.layers.enable(1),v.layers.enable(2);let y=null,x=null;function _(t){const e=p.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function b(){p.forEach((function(t,e){t.disconnect(e)})),p.clear(),y=null,x=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),A.stop(),n.isPresenting=!1,n.dispatchEvent({type:\"sessionend\"})}function M(t){const e=r.inputSources;for(let t=0;t<d.length;t++)p.set(e[t],d[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=p.get(n);i&&(i.dispatchEvent({type:\"disconnected\",data:n}),p.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],i=p.get(n);i&&i.dispatchEvent({type:\"connected\",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=d[t];return void 0===e&&(e=new ys,d[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=d[t];return void 0===e&&(e=new ys,d[t]=e),e.getGripSpace()},this.getHand=function(t){let e=d[t];return void 0===e&&(e=new ys,d[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){s=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")},this.setReferenceSpaceType=function(t){o=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")},this.getReferenceSpace=function(){return a},this.getSession=function(){return r},this.setSession=async function(t){if(r=t,null!==r){r.addEventListener(\"select\",_),r.addEventListener(\"selectstart\",_),r.addEventListener(\"selectend\",_),r.addEventListener(\"squeeze\",_),r.addEventListener(\"squeezestart\",_),r.addEventListener(\"squeezeend\",_),r.addEventListener(\"end\",b),r.addEventListener(\"inputsourceschange\",M);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===r.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:s},i=new XRWebGLLayer(r,e,n);r.updateRenderState({baseLayer:i})}else{let n=0;t.depth&&(n=t.stencil?34041:6402);const i={colorFormat:t.alpha?6408:6407,depthFormat:n,scaleFactor:s};c=new XRWebGLBinding(r,e),u=c.createProjectionLayer(i),h=e.createFramebuffer(),r.updateRenderState({layers:[u]})}a=await r.requestReferenceSpace(o),A.setContext(r),A.start(),n.isPresenting=!0,n.dispatchEvent({type:\"sessionstart\"})}};const w=new Rt,S=new Rt;function T(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===r)return;v.near=f.near=m.near=t.near,v.far=f.far=m.far=t.far,y===v.near&&x===v.far||(r.updateRenderState({depthNear:v.near,depthFar:v.far}),y=v.near,x=v.far);const e=t.parent,n=v.cameras;T(v,e);for(let t=0;t<n.length;t++)T(n[t],e);v.matrixWorld.decompose(v.position,v.quaternion,v.scale),t.position.copy(v.position),t.quaternion.copy(v.quaternion),t.scale.copy(v.scale),t.matrix.copy(v.matrix),t.matrixWorld.copy(v.matrixWorld);const i=t.children;for(let t=0,e=i.length;t<e;t++)i[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){w.setFromMatrixPosition(e.matrixWorld),S.setFromMatrixPosition(n.matrixWorld);const i=w.distanceTo(S),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),l=(r[9]+1)/r[5],c=(r[9]-1)/r[5],h=(r[8]-1)/r[0],u=(s[8]+1)/s[0],d=a*h,p=a*u,m=i/(-h+u),f=m*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(f),t.translateZ(m),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+m,v=o+m,y=d-f,x=p+(i-f),_=l*o/v*g,b=c*o/v*g;t.projectionMatrix.makePerspective(y,x,_,b,g,v)}(v,m,f):v.projectionMatrix.copy(m.projectionMatrix)},this.getCamera=function(){return v};let E=null;const A=new oi;A.setAnimationLoop((function(t,n){if(l=n.getViewerPose(a),null!==l){const t=l.views,n=r.renderState.baseLayer;void 0===r.renderState.layers&&i.bindXRFramebuffer(n.framebuffer);let s=!1;t.length!==v.cameras.length&&(v.cameras.length=0,s=!0);for(let a=0;a<t.length;a++){const o=t[a];let l=null;if(void 0===r.renderState.layers)l=n.getViewport(o);else{const t=c.getViewSubImage(u,o);i.bindXRFramebuffer(h),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,36096,3553,t.depthStencilTexture,0),l=t.viewport}const d=g[a];d.matrix.fromArray(o.transform.matrix),d.projectionMatrix.fromArray(o.projectionMatrix),d.viewport.set(l.x,l.y,l.width,l.height),0===a&&v.matrix.copy(d.matrix),!0===s&&v.cameras.push(d)}}const s=r.inputSources;for(let t=0;t<d.length;t++){const e=d[t],i=s[t];e.update(i,n,a)}E&&E(t,n)})),this.setAnimationLoop=function(t){E=t},this.dispose=function(){}}}function _s(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&i._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const r=t.get(i).__maxMipLevel;void 0!==r&&(e.maxMipLevel.value=r)}let r,s;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(r=n.clearcoatRoughnessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uv2Transform.value.copy(s.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,r,s,a){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen);e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap);e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap);e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate());t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap);e.transmission>0&&(t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height));t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap);t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)}(t,i,a):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let r;e.map?r=e.map:e.alphaMap&&(r=e.alphaMap);void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}(t,i,r,s):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function bs(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");return t.style.display=\"block\",t}(),n=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,r=void 0===t.depth||t.depth,s=void 0===t.stencil||t.stencil,a=void 0!==t.antialias&&t.antialias,o=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:\"default\",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let d=null,m=null;const f=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=X,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const v=this;let _=!1,b=0,S=0,T=null,A=-1,L=null;const R=new St,C=new St;let P=null,D=e.width,I=e.height,N=1,B=null,z=null;const F=new St(0,0,D,I),O=new St(0,0,D,I);let H=!1;const U=[],G=new ai;let k=!1,V=!1,W=null;const j=new ae,q=new Rt,Y={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function J(){return null===T?N:1}let Z,Q,K,$,tt,et,nt,it,rt,st,at,ot,lt,ct,ht,ut,dt,pt,mt,ft,gt,vt,yt=n;function xt(t,n){for(let i=0;i<t.length;i++){const r=t[i],s=e.getContext(r,n);if(null!==s)return s}return null}try{const t={alpha:i,depth:r,stencil:s,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener(\"webglcontextlost\",Mt,!1),e.addEventListener(\"webglcontextrestored\",wt,!1),null===yt){const e=[\"webgl2\",\"webgl\",\"experimental-webgl\"];if(!0===v.isWebGL1Renderer&&e.shift(),yt=xt(e,t),null===yt)throw xt(e)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}void 0===yt.getShaderPrecisionFormat&&(yt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error(\"THREE.WebGLRenderer: \"+t.message),t}function _t(){Z=new xi(yt),Q=new gi(yt,Z,t),Z.init(Q),gt=new ms(yt,Z,Q),K=new ds(yt,Z,Q),U[0]=1029,$=new Mi(yt),tt=new Kr,et=new ps(yt,Z,K,tt,Q,gt,$),nt=new yi(v),it=new li(yt,Q),vt=new mi(yt,Z,it,Q),rt=new _i(yt,it,$,vt),st=new Ei(yt,rt,it,$),pt=new Ti(yt),ht=new vi(tt),at=new Qr(v,nt,Z,Q,vt,ht),ot=new _s(tt),lt=new ns(tt),ct=new ls(Z,Q),dt=new pi(v,nt,K,st,o),ut=new us(v,st,Q),mt=new fi(yt,Z,$,Q),ft=new bi(yt,Z,$,Q),$.programs=at.programs,v.capabilities=Q,v.extensions=Z,v.properties=tt,v.renderLists=lt,v.shadowMap=ut,v.state=K,v.info=$}_t();const bt=new xs(v,yt);function Mt(t){t.preventDefault(),console.log(\"THREE.WebGLRenderer: Context Lost.\"),_=!0}function wt(){console.log(\"THREE.WebGLRenderer: Context Restored.\"),_=!1;const t=$.autoReset,e=ut.enabled,n=ut.autoUpdate,i=ut.needsUpdate,r=ut.type;_t(),$.autoReset=t,ut.enabled=e,ut.autoUpdate=n,ut.needsUpdate=i,ut.type=r}function Et(t){const e=t.target;e.removeEventListener(\"dispose\",Et),function(t){(function(t){const e=tt.get(t).programs;void 0!==e&&e.forEach((function(t){at.releaseProgram(t)}))})(t),tt.remove(t)}(e)}this.xr=bt,this.getContext=function(){return yt},this.getContextAttributes=function(){return yt.getContextAttributes()},this.forceContextLoss=function(){const t=Z.get(\"WEBGL_lose_context\");t&&t.loseContext()},this.forceContextRestore=function(){const t=Z.get(\"WEBGL_lose_context\");t&&t.restoreContext()},this.getPixelRatio=function(){return N},this.setPixelRatio=function(t){void 0!==t&&(N=t,this.setSize(D,I,!1))},this.getSize=function(t){return t.set(D,I)},this.setSize=function(t,n,i){bt.isPresenting?console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\"):(D=t,I=n,e.width=Math.floor(t*N),e.height=Math.floor(n*N),!1!==i&&(e.style.width=t+\"px\",e.style.height=n+\"px\"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(D*N,I*N).floor()},this.setDrawingBufferSize=function(t,n,i){D=t,I=n,N=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(R)},this.getViewport=function(t){return t.copy(F)},this.setViewport=function(t,e,n,i){t.isVector4?F.set(t.x,t.y,t.z,t.w):F.set(t,e,n,i),K.viewport(R.copy(F).multiplyScalar(N).floor())},this.getScissor=function(t){return t.copy(O)},this.setScissor=function(t,e,n,i){t.isVector4?O.set(t.x,t.y,t.z,t.w):O.set(t,e,n,i),K.scissor(C.copy(O).multiplyScalar(N).floor())},this.getScissorTest=function(){return H},this.setScissorTest=function(t){K.setScissorTest(H=t)},this.setOpaqueSort=function(t){B=t},this.setTransparentSort=function(t){z=t},this.getClearColor=function(t){return t.copy(dt.getClearColor())},this.setClearColor=function(){dt.setClearColor.apply(dt,arguments)},this.getClearAlpha=function(){return dt.getClearAlpha()},this.setClearAlpha=function(){dt.setClearAlpha.apply(dt,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=16384),(void 0===e||e)&&(i|=256),(void 0===n||n)&&(i|=1024),yt.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(\"webglcontextlost\",Mt,!1),e.removeEventListener(\"webglcontextrestored\",wt,!1),lt.dispose(),ct.dispose(),tt.dispose(),nt.dispose(),st.dispose(),vt.dispose(),bt.dispose(),bt.removeEventListener(\"sessionstart\",Ct),bt.removeEventListener(\"sessionend\",Pt),W&&(W.dispose(),W=null),Dt.stop()},this.renderBufferImmediate=function(t,e){vt.initAttributes();const n=tt.get(t);t.hasPositions&&!n.position&&(n.position=yt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=yt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=yt.createBuffer()),t.hasColors&&!n.color&&(n.color=yt.createBuffer());const i=e.getAttributes();t.hasPositions&&(yt.bindBuffer(34962,n.position),yt.bufferData(34962,t.positionArray,35048),vt.enableAttribute(i.position),yt.vertexAttribPointer(i.position,3,5126,!1,0,0)),t.hasNormals&&(yt.bindBuffer(34962,n.normal),yt.bufferData(34962,t.normalArray,35048),vt.enableAttribute(i.normal),yt.vertexAttribPointer(i.normal,3,5126,!1,0,0)),t.hasUvs&&(yt.bindBuffer(34962,n.uv),yt.bufferData(34962,t.uvArray,35048),vt.enableAttribute(i.uv),yt.vertexAttribPointer(i.uv,2,5126,!1,0,0)),t.hasColors&&(yt.bindBuffer(34962,n.color),yt.bufferData(34962,t.colorArray,35048),vt.enableAttribute(i.color),yt.vertexAttribPointer(i.color,3,5126,!1,0,0)),vt.disableUnusedAttributes(),yt.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=Y);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=Ot(t,e,i,r);K.setMaterial(i,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===i.wireframe&&(l=rt.getWireframeAttribute(n),u=2),(i.morphTargets||i.morphNormals)&&pt.update(r,n,i,o),vt.setup(r,i,o,n,l);let d=mt;null!==l&&(h=it.get(l),d=ft,d.setIndex(h));const p=null!==l?l.count:c.count,m=n.drawRange.start*u,f=n.drawRange.count*u,g=null!==s?s.start*u:0,v=null!==s?s.count*u:1/0,y=Math.max(m,g),x=Math.min(p,m+f,g+v)-1,_=Math.max(0,x-y+1);if(0!==_){if(r.isMesh)!0===i.wireframe?(K.setLineWidth(i.wireframeLinewidth*J()),d.setMode(1)):d.setMode(4);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),K.setLineWidth(t*J()),r.isLineSegments?d.setMode(1):r.isLineLoop?d.setMode(2):d.setMode(3)}else r.isPoints?d.setMode(0):r.isSprite&&d.setMode(4);if(r.isInstancedMesh)d.renderInstances(y,_,r.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,_,t)}else d.render(y,_)}},this.compile=function(t,e){m=ct.get(t),m.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))})),m.setupLights(),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let i=0;i<n.length;i++){zt(n[i],t,e)}else zt(n,t,e)}))};let Lt=null;function Ct(){Dt.stop()}function Pt(){Dt.start()}const Dt=new oi;function It(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)m.pushLight(t),t.castShadow&&m.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||G.intersectsSprite(t)){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=st.update(t),r=t.material;r.visible&&d.push(t,e,r,n,q.z,null)}}else if(t.isImmediateRenderObject)i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j),d.push(t,null,t.material,n,q.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==$.render.frame&&(t.skeleton.update(),t.skeleton.frame=$.render.frame),!t.frustumCulled||G.intersectsObject(t))){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=st.update(t),r=t.material;if(Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&d.push(t,e,o,n,q.z,a)}}else r.visible&&d.push(t,e,r,n,q.z,null)}const r=t.children;for(let t=0,s=r.length;t<s;t++)It(r[t],e,n,i)}function Nt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,l=null===i?s.material:i,c=s.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,i=t.length;n<i;n++){const i=t[n];a.layers.test(i.layers)&&(K.viewport(R.copy(i.viewport)),m.setupLightsView(i),Bt(a,e,i,o,l,c))}}else Bt(a,e,n,o,l,c)}}function Bt(t,e,n,i,r,s){if(t.onBeforeRender(v,e,n,i,r,s),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const i=Ot(n,e,r,t);K.setMaterial(r),vt.reset(),function(t,e){t.render((function(t){v.renderBufferImmediate(t,e)}))}(t,i)}else!0===r.transparent&&2===r.side?(r.side=1,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=0,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=2):v.renderBufferDirect(n,e,i,r,t,s);t.onAfterRender(v,e,n,i,r,s)}function zt(t,e,n){!0!==e.isScene&&(e=Y);const i=tt.get(t),r=m.state.lights,s=m.state.shadowsArray,a=r.state.version,o=at.getParameters(t,r.state,s,e,n),l=at.getProgramCacheKey(o);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=nt.get(t.envMap||i.environment),void 0===c&&(t.addEventListener(\"dispose\",Et),c=new Map,i.programs=c);let h=c.get(l);if(void 0!==h){if(i.currentProgram===h&&i.lightsStateVersion===a)return Ft(t,o),h}else o.uniforms=at.getUniforms(t),t.onBuild(o,v),t.onBeforeCompile(o,v),h=at.acquireProgram(o,l),c.set(l,h),i.uniforms=o.uniforms;const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ht.uniform),Ft(t,o),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=a,i.needsLights&&(u.ambientLightColor.value=r.state.ambient,u.lightProbe.value=r.state.probe,u.directionalLights.value=r.state.directional,u.directionalLightShadows.value=r.state.directionalShadow,u.spotLights.value=r.state.spot,u.spotLightShadows.value=r.state.spotShadow,u.rectAreaLights.value=r.state.rectArea,u.ltc_1.value=r.state.rectAreaLTC1,u.ltc_2.value=r.state.rectAreaLTC2,u.pointLights.value=r.state.point,u.pointLightShadows.value=r.state.pointShadow,u.hemisphereLights.value=r.state.hemi,u.directionalShadowMap.value=r.state.directionalShadowMap,u.directionalShadowMatrix.value=r.state.directionalShadowMatrix,u.spotShadowMap.value=r.state.spotShadowMap,u.spotShadowMatrix.value=r.state.spotShadowMatrix,u.pointShadowMap.value=r.state.pointShadowMap,u.pointShadowMatrix.value=r.state.pointShadowMatrix);const d=h.getUniforms(),p=Cr.seqWithValue(d.seq,u);return i.currentProgram=h,i.uniformsList=p,h}function Ft(t,e){const n=tt.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas}function Ot(t,e,n,i){!0!==e.isScene&&(e=Y),et.resetTextureUnits();const r=e.fog,s=n.isMeshStandardMaterial?e.environment:null,a=null===T?v.outputEncoding:T.texture.encoding,o=nt.get(n.envMap||s),l=!0===n.vertexColors&&i.geometry&&i.geometry.attributes.color&&4===i.geometry.attributes.color.itemSize,c=tt.get(n),h=m.state.lights;if(!0===k&&(!0===V||t!==L)){const e=t===L&&n.id===A;ht.setState(n,t,e)}let u=!1;n.version===c.__version?c.needsLights&&c.lightsStateVersion!==h.state.version||c.outputEncoding!==a||i.isInstancedMesh&&!1===c.instancing?u=!0:i.isInstancedMesh||!0!==c.instancing?i.isSkinnedMesh&&!1===c.skinning?u=!0:i.isSkinnedMesh||!0!==c.skinning?c.envMap!==o||n.fog&&c.fog!==r?u=!0:void 0===c.numClippingPlanes||c.numClippingPlanes===ht.numPlanes&&c.numIntersection===ht.numIntersection?c.vertexAlphas!==l&&(u=!0):u=!0:u=!0:u=!0:(u=!0,c.__version=n.version);let d=c.currentProgram;!0===u&&(d=zt(n,e,i));let p=!1,f=!1,g=!1;const y=d.getUniforms(),x=c.uniforms;if(K.useProgram(d.program)&&(p=!0,f=!0,g=!0),n.id!==A&&(A=n.id,f=!0),p||L!==t){if(y.setValue(yt,\"projectionMatrix\",t.projectionMatrix),Q.logarithmicDepthBuffer&&y.setValue(yt,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),L!==t&&(L=t,f=!0,g=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=y.map.cameraPosition;void 0!==e&&e.setValue(yt,q.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&y.setValue(yt,\"isOrthographic\",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||i.isSkinnedMesh)&&y.setValue(yt,\"viewMatrix\",t.matrixWorldInverse)}if(i.isSkinnedMesh){y.setOptional(yt,i,\"bindMatrix\"),y.setOptional(yt,i,\"bindMatrixInverse\");const t=i.skeleton;t&&(Q.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),y.setValue(yt,\"boneTexture\",t.boneTexture,et),y.setValue(yt,\"boneTextureSize\",t.boneTextureSize)):y.setOptional(yt,t,\"boneMatrices\"))}var _,b;return(f||c.receiveShadow!==i.receiveShadow)&&(c.receiveShadow=i.receiveShadow,y.setValue(yt,\"receiveShadow\",i.receiveShadow)),f&&(y.setValue(yt,\"toneMappingExposure\",v.toneMappingExposure),c.needsLights&&(b=g,(_=x).ambientLightColor.needsUpdate=b,_.lightProbe.needsUpdate=b,_.directionalLights.needsUpdate=b,_.directionalLightShadows.needsUpdate=b,_.pointLights.needsUpdate=b,_.pointLightShadows.needsUpdate=b,_.spotLights.needsUpdate=b,_.spotLightShadows.needsUpdate=b,_.rectAreaLights.needsUpdate=b,_.hemisphereLights.needsUpdate=b),r&&n.fog&&ot.refreshFogUniforms(x,r),ot.refreshMaterialUniforms(x,n,N,I,W),Cr.upload(yt,c.uniformsList,x,et)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(Cr.upload(yt,c.uniformsList,x,et),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&y.setValue(yt,\"center\",i.center),y.setValue(yt,\"modelViewMatrix\",i.modelViewMatrix),y.setValue(yt,\"normalMatrix\",i.normalMatrix),y.setValue(yt,\"modelMatrix\",i.matrixWorld),d}Dt.setAnimationLoop((function(t){Lt&&Lt(t)})),\"undefined\"!=typeof window&&Dt.setContext(window),this.setAnimationLoop=function(t){Lt=t,bt.setAnimationLoop(t),null===t?Dt.stop():Dt.start()},bt.addEventListener(\"sessionstart\",Ct),bt.addEventListener(\"sessionend\",Pt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");if(!0===_)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===bt.enabled&&!0===bt.isPresenting&&(!0===bt.cameraAutoUpdate&&bt.updateCamera(e),e=bt.getCamera()),!0===t.isScene&&t.onBeforeRender(v,t,e,T),m=ct.get(t,g.length),m.init(),g.push(m),j.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),G.setFromProjectionMatrix(j),V=this.localClippingEnabled,k=ht.init(this.clippingPlanes,V,e),d=lt.get(t,f.length),d.init(),f.push(d),It(t,e,0,v.sortObjects),d.finish(),!0===v.sortObjects&&d.sort(B,z),!0===k&&ht.beginShadows();const n=m.state.shadowsArray;ut.render(n,t,e),m.setupLights(),m.setupLightsView(e),!0===k&&ht.endShadows(),!0===this.info.autoReset&&this.info.reset(),dt.render(d,t);const i=d.opaque,r=d.transmissive,s=d.transparent;i.length>0&&Nt(i,t,e),r.length>0&&function(t,e,n,i){if(null===W){const t=!0===a&&!0===Q.isWebGL2;W=new(t?At:Tt)(1024,1024,{generateMipmaps:!0,type:null!==gt.convert(w)?w:x,minFilter:y,magFilter:p,wrapS:u,wrapT:u})}const r=v.getRenderTarget();v.setRenderTarget(W),v.clear();const s=v.toneMapping;v.toneMapping=0,Nt(t,n,i),v.toneMapping=s,et.updateMultisampleRenderTarget(W),et.updateRenderTargetMipmap(W),v.setRenderTarget(r),Nt(e,n,i)}(i,r,t,e),s.length>0&&Nt(s,t,e),null!==T&&(et.updateMultisampleRenderTarget(T),et.updateRenderTargetMipmap(T)),!0===t.isScene&&t.onAfterRender(v,t,e),K.buffers.depth.setTest(!0),K.buffers.depth.setMask(!0),K.buffers.color.setMask(!0),K.setPolygonOffset(!1),vt.resetDefaultState(),A=-1,L=null,g.pop(),m=g.length>0?g[g.length-1]:null,f.pop(),d=f.length>0?f[f.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return T},this.setRenderTarget=function(t,e=0,n=0){T=t,b=e,S=n,t&&void 0===tt.get(t).__webglFramebuffer&&et.setupRenderTarget(t);let i=null,r=!1,s=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(s=!0);const a=tt.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=a[e],r=!0):i=t.isWebGLMultisampleRenderTarget?tt.get(t).__webglMultisampledFramebuffer:a,R.copy(t.viewport),C.copy(t.scissor),P=t.scissorTest}else R.copy(F).multiplyScalar(N).floor(),C.copy(O).multiplyScalar(N).floor(),P=H;if(K.bindFramebuffer(36160,i)&&Q.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(U.length!==n.length||36064!==U[0]){for(let t=0,e=n.length;t<e;t++)U[t]=36064+t;U.length=n.length,e=!0}}else 1===U.length&&36064===U[0]||(U[0]=36064,U.length=1,e=!0);else 1===U.length&&1029===U[0]||(U[0]=1029,U.length=1,e=!0);e&&(Q.isWebGL2?yt.drawBuffers(U):Z.get(\"WEBGL_draw_buffers\").drawBuffersWEBGL(U))}if(K.viewport(R),K.scissor(C),K.setScissorTest(P),r){const i=tt.get(t.texture);yt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=tt.get(t.texture),r=e||0;yt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let o=tt.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){K.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==E&&gt.convert(o)!==yt.getParameter(35739))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");const c=l===w&&(Z.has(\"EXT_color_buffer_half_float\")||Q.isWebGL2&&Z.has(\"EXT_color_buffer_float\"));if(!(l===x||gt.convert(l)===yt.getParameter(35738)||l===M&&(Q.isWebGL2||Z.has(\"OES_texture_float\")||Z.has(\"WEBGL_color_buffer_float\"))||c))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");36053===yt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&yt.readPixels(e,n,i,r,gt.convert(o),gt.convert(l),s):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{const t=null!==T?tt.get(T).__webglFramebuffer:null;K.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);let a=gt.convert(e.format);Q.isWebGL2&&(6407===a&&(a=32849),6408===a&&(a=32856)),et.setTexture2D(e,0),yt.copyTexImage2D(3553,n,a,t.x,t.y,r,s,0),K.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=gt.convert(n.format),o=gt.convert(n.type);et.setTexture2D(n,0),yt.pixelStorei(37440,n.flipY),yt.pixelStorei(37441,n.premultiplyAlpha),yt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?yt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?yt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):yt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&yt.generateMipmap(3553),K.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(v.isWebGL1Renderer)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=gt.convert(i.format),c=gt.convert(i.type);let h;if(i.isDataTexture3D)et.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");et.setTexture2DArray(i,0),h=35866}yt.pixelStorei(37440,i.flipY),yt.pixelStorei(37441,i.premultiplyAlpha),yt.pixelStorei(3317,i.unpackAlignment);const u=yt.getParameter(3314),d=yt.getParameter(32878),p=yt.getParameter(3316),m=yt.getParameter(3315),f=yt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;yt.pixelStorei(3314,g.width),yt.pixelStorei(32878,g.height),yt.pixelStorei(3316,t.min.x),yt.pixelStorei(3315,t.min.y),yt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?yt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedTexture?(console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\"),yt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):yt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),yt.pixelStorei(3314,u),yt.pixelStorei(32878,d),yt.pixelStorei(3316,p),yt.pixelStorei(3315,m),yt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&yt.generateMipmap(h),K.unbindTexture()},this.initTexture=function(t){et.setTexture2D(t,0),K.unbindTexture()},this.resetState=function(){b=0,S=0,T=null,K.reset(),vt.reset()},\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}class Ms extends bs{}Ms.prototype.isWebGL1Renderer=!0;class ws{constructor(t,e=25e-5){this.name=\"\",this.color=new Qe(t),this.density=e}clone(){return new ws(this.color,this.density)}toJSON(){return{type:\"FogExp2\",color:this.color.getHex(),density:this.density}}}ws.prototype.isFogExp2=!0;class Ss{constructor(t,e=1,n=1e3){this.name=\"\",this.color=new Qe(t),this.near=e,this.far=n}clone(){return new Ss(this.color,this.near,this.far)}toJSON(){return{type:\"Fog\",color:this.color.getHex(),near:this.near,far:this.far}}}Ss.prototype.isFog=!0;class Ts extends Pe{constructor(){super(),this.type=\"Scene\",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Ts.prototype.isScene=!0;class Es{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ct()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ct()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ct()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}Es.prototype.isInterleavedBuffer=!0;const As=new Rt;class Ls{constructor(t,e,n,i=!1){this.name=\"\",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)As.x=this.getX(e),As.y=this.getY(e),As.z=this.getZ(e),As.applyMatrix4(t),this.setXYZ(e,As.x,As.y,As.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)As.x=this.getX(e),As.y=this.getY(e),As.z=this.getZ(e),As.applyNormalMatrix(t),this.setXYZ(e,As.x,As.y,As.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)As.x=this.getX(e),As.y=this.getY(e),As.z=this.getZ(e),As.transformDirection(t),this.setXYZ(e,As.x,As.y,As.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new en(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new Ls(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}Ls.prototype.isInterleavedBufferAttribute=!0;class Rs extends We{constructor(t){super(),this.type=\"SpriteMaterial\",this.color=new Qe(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let Cs;Rs.prototype.isSpriteMaterial=!0;const Ps=new Rt,Ds=new Rt,Is=new Rt,Ns=new vt,Bs=new vt,zs=new ae,Fs=new Rt,Os=new Rt,Hs=new Rt,Us=new vt,Gs=new vt,ks=new vt;class Vs extends Pe{constructor(t){if(super(),this.type=\"Sprite\",void 0===Cs){Cs=new wn;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new Es(t,5);Cs.setIndex([0,1,2,0,2,3]),Cs.setAttribute(\"position\",new Ls(e,3,0,!1)),Cs.setAttribute(\"uv\",new Ls(e,2,3,!1))}this.geometry=Cs,this.material=void 0!==t?t:new Rs,this.center=new vt(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.'),Ds.setFromMatrixScale(this.matrixWorld),zs.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),Is.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Ds.multiplyScalar(-Is.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const s=this.center;Ws(Fs.set(-.5,-.5,0),Is,s,Ds,i,r),Ws(Os.set(.5,-.5,0),Is,s,Ds,i,r),Ws(Hs.set(.5,.5,0),Is,s,Ds,i,r),Us.set(0,0),Gs.set(1,0),ks.set(1,1);let a=t.ray.intersectTriangle(Fs,Os,Hs,!1,Ps);if(null===a&&(Ws(Os.set(-.5,.5,0),Is,s,Ds,i,r),Gs.set(0,1),a=t.ray.intersectTriangle(Fs,Hs,Os,!1,Ps),null===a))return;const o=t.ray.origin.distanceTo(Ps);o<t.near||o>t.far||e.push({distance:o,point:Ps.clone(),uv:ke.getUV(Ps,Fs,Os,Hs,Us,Gs,ks,new vt),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Ws(t,e,n,i,r,s){Ns.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(Bs.x=s*Ns.x-r*Ns.y,Bs.y=r*Ns.x+s*Ns.y):Bs.copy(Ns),t.copy(e),t.x+=Bs.x,t.y+=Bs.y,t.applyMatrix4(zs)}Vs.prototype.isSprite=!0;const js=new Rt,qs=new Rt;class Xs extends Pe{constructor(){super(),this._currentLevel=0,this.type=\"LOD\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0){e=Math.abs(e);const n=this.levels;let i;for(i=0;i<n.length&&!(e<n[i].distance);i++);return n.splice(i,0,{distance:e,object:t}),this.add(t),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i&&!(t<e[n].distance);n++);return e[n-1].object}return null}raycast(t,e){if(this.levels.length>0){js.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(js);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){js.setFromMatrixPosition(t.matrixWorld),qs.setFromMatrixPosition(this.matrixWorld);const n=js.distanceTo(qs)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i<r&&n>=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;i<r;i++)e[i].object.visible=!1}}toJSON(t){const e=super.toJSON(t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}}const Ys=new Rt,Js=new St,Zs=new St,Qs=new Rt,Ks=new ae;class $s extends Gn{constructor(t,e){super(t,e),this.type=\"SkinnedMesh\",this.bindMode=\"attached\",this.bindMatrix=new ae,this.bindMatrixInverse=new ae}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new St,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\"attached\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\"detached\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}boneTransform(t,e){const n=this.skeleton,i=this.geometry;Js.fromBufferAttribute(i.attributes.skinIndex,t),Zs.fromBufferAttribute(i.attributes.skinWeight,t),Ys.fromBufferAttribute(i.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=Zs.getComponent(t);if(0!==i){const r=Js.getComponent(t);Ks.multiplyMatrices(n.bones[r].matrixWorld,n.boneInverses[r]),e.addScaledVector(Qs.copy(Ys).applyMatrix4(Ks),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}$s.prototype.isSkinnedMesh=!0;class ta extends Pe{constructor(){super(),this.type=\"Bone\"}}ta.prototype.isBone=!0;class ea extends Mt{constructor(t=null,e=1,n=1,i,r,s,a,o,l=1003,c=1003,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ea.prototype.isDataTexture=!0;const na=new ae,ia=new ae;class ra{constructor(t=[],e=[]){this.uuid=ct(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\"),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new ae)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new ae;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let i=0,r=t.length;i<r;i++){const r=t[i]?t[i].matrixWorld:ia;na.multiplyMatrices(r,e[i]),na.toArray(n,16*i)}null!==i&&(i.needsUpdate=!0)}clone(){return new ra(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=mt(t),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new ea(e,t,t,E,M);return this.boneMatrices=e,this.boneTexture=n,this.boneTextureSize=t,this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];void 0===r&&(console.warn(\"THREE.Skeleton: No bone found with UUID:\",i),r=new ta),this.bones.push(r),this.boneInverses.push((new ae).fromArray(t.boneInverses[n]))}return this.init(),this}toJSON(){const t={metadata:{version:4.5,type:\"Skeleton\",generator:\"Skeleton.toJSON\"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}const sa=new ae,aa=new ae,oa=[],la=new Gn;class ca extends Gn{constructor(t,e,n){super(t,e),this.instanceMatrix=new en(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,i=this.count;if(la.geometry=this.geometry,la.material=this.material,void 0!==la.material)for(let r=0;r<i;r++){this.getMatrixAt(r,sa),aa.multiplyMatrices(n,sa),la.matrixWorld=aa,la.raycast(t,oa);for(let t=0,n=oa.length;t<n;t++){const n=oa[t];n.instanceId=r,n.object=this,e.push(n)}oa.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new en(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"})}}ca.prototype.isInstancedMesh=!0;class ha extends We{constructor(t){super(),this.type=\"LineBasicMaterial\",this.color=new Qe(16777215),this.linewidth=1,this.linecap=\"round\",this.linejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this}}ha.prototype.isLineBasicMaterial=!0;const ua=new Rt,da=new Rt,pa=new ae,ma=new se,fa=new Qt;class ga extends Pe{constructor(t=new wn,e=new ha){super(),this.type=\"Line\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)ua.fromBufferAttribute(e,t-1),da.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=ua.distanceTo(da);t.setAttribute(\"lineDistance\",new un(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),fa.copy(n.boundingSphere),fa.applyMatrix4(i),fa.radius+=r,!1===t.ray.intersectsSphere(fa))return;pa.copy(i).invert(),ma.copy(t.ray).applyMatrix4(pa);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,l=new Rt,c=new Rt,h=new Rt,u=new Rt,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,r=n.attributes.position;if(null!==i){for(let n=Math.max(0,s.start),a=Math.min(i.count,s.start+s.count)-1;n<a;n+=d){const s=i.getX(n),a=i.getX(n+1);l.fromBufferAttribute(r,s),c.fromBufferAttribute(r,a);if(ma.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;n<i;n+=d){l.fromBufferAttribute(r,n),c.fromBufferAttribute(r,n+1);if(ma.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);i<t.near||i>t.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}ga.prototype.isLine=!0;const va=new Rt,ya=new Rt;class xa extends ga{constructor(t,e){super(t,e),this.type=\"LineSegments\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)va.fromBufferAttribute(e,t),ya.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+va.distanceTo(ya);t.setAttribute(\"lineDistance\",new un(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}}xa.prototype.isLineSegments=!0;class _a extends ga{constructor(t,e){super(t,e),this.type=\"LineLoop\"}}_a.prototype.isLineLoop=!0;class ba extends We{constructor(t){super(),this.type=\"PointsMaterial\",this.color=new Qe(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this}}ba.prototype.isPointsMaterial=!0;const Ma=new ae,wa=new se,Sa=new Qt,Ta=new Rt;class Ea extends Pe{constructor(t=new wn,e=new ba){super(),this.type=\"Points\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),Sa.copy(n.boundingSphere),Sa.applyMatrix4(i),Sa.radius+=r,!1===t.ray.intersectsSphere(Sa))return;Ma.copy(i).invert(),wa.copy(t.ray).applyMatrix4(Ma);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position;if(null!==r){for(let n=Math.max(0,s.start),l=Math.min(r.count,s.start+s.count);n<l;n++){const s=r.getX(n);Ta.fromBufferAttribute(a,s),Aa(Ta,s,o,i,t,e,this)}}else{for(let n=Math.max(0,s.start),r=Math.min(a.count,s.start+s.count);n<r;n++)Ta.fromBufferAttribute(a,n),Aa(Ta,n,o,i,t,e,this)}}else console.error(\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}function Aa(t,e,n,i,r,s,a){const o=wa.distanceSqToPoint(t);if(o<n){const n=new Rt;wa.closestPointToPoint(t,n),n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}Ea.prototype.isPoints=!0;class La extends Mt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.format=void 0!==a?a:T,this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;\"requestVideoFrameCallback\"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1===\"requestVideoFrameCallback\"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}La.prototype.isVideoTexture=!0;class Ra extends Mt{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}Ra.prototype.isCompressedTexture=!0;class Ca extends Mt{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}Ca.prototype.isCanvasTexture=!0;class Pa extends Mt{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:A)!==A&&c!==L)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===n&&c===A&&(n=_),void 0===n&&c===L&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}Pa.prototype.isDepthTexture=!0;class Da extends wn{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type=\"CircleGeometry\",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new Rt,c=new vt;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute(\"position\",new un(s,3)),this.setAttribute(\"normal\",new un(a,3)),this.setAttribute(\"uv\",new un(o,2))}static fromJSON(t){return new Da(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class Ia extends wn{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type=\"CylinderGeometry\",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new vt,m=new Rt;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t<i;t++){const e=r+t,i=_+t;!0===n?c.push(i,i+1,e):c.push(i+1,i,e),v+=3}l.addGroup(g,v,!0===n?1:2),g+=v}!function(){const s=new Rt,v=new Rt;let y=0;const x=(e-t)/n;for(let l=0;l<=r;l++){const c=[],g=l/r,y=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*o+a,l=Math.sin(r),m=Math.cos(r);v.x=y*l,v.y=-g*n+f,v.z=y*m,h.push(v.x,v.y,v.z),s.set(l,x,m).normalize(),u.push(s.x,s.y,s.z),d.push(e,1-g),c.push(p++)}m.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=m[e][t],i=m[e+1][t],r=m[e+1][t+1],s=m[e][t+1];c.push(n,i,s),c.push(i,r,s),y+=6}l.addGroup(g,y,0),g+=y}(),!1===s&&(t>0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute(\"position\",new un(h,3)),this.setAttribute(\"normal\",new un(u,3)),this.setAttribute(\"uv\",new un(d,2))}static fromJSON(t){return new Ia(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Na extends Ia{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type=\"ConeGeometry\",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new Na(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Ba extends wn{constructor(t,e,n=1,i=0){super(),this.type=\"PolyhedronGeometry\",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t<r;t++)for(let e=0;e<2*(r-t)-1;e++){const n=Math.floor(e/2);e%2==0?(o(s[t][n+1]),o(s[t+1][n]),o(s[t][n])):(o(s[t][n+1]),o(s[t+1][n+1]),o(s[t+1][n]))}}function o(t){r.push(t.x,t.y,t.z)}function l(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function c(t,e,n,i){i<0&&1===t.x&&(s[e]=t.x-1),0===n.x&&0===n.z&&(s[e]=i/2/Math.PI+.5)}function h(t){return Math.atan2(t.z,-t.x)}!function(t){const n=new Rt,i=new Rt,r=new Rt;for(let s=0;s<e.length;s+=3)l(e[s+0],n),l(e[s+1],i),l(e[s+2],r),a(n,i,r,t)}(i),function(t){const e=new Rt;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z}(n),function(){const t=new Rt;for(let n=0;n<r.length;n+=3){t.x=r[n+0],t.y=r[n+1],t.z=r[n+2];const i=h(t)/2/Math.PI+.5,a=(e=t,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5);s.push(i,1-a)}var e;(function(){const t=new Rt,e=new Rt,n=new Rt,i=new Rt,a=new vt,o=new vt,l=new vt;for(let u=0,d=0;u<r.length;u+=9,d+=6){t.set(r[u+0],r[u+1],r[u+2]),e.set(r[u+3],r[u+4],r[u+5]),n.set(r[u+6],r[u+7],r[u+8]),a.set(s[d+0],s[d+1]),o.set(s[d+2],s[d+3]),l.set(s[d+4],s[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=h(i);c(a,d+0,t,p),c(o,d+2,e,p),c(l,d+4,n,p)}})(),function(){for(let t=0;t<s.length;t+=6){const e=s[t+0],n=s[t+2],i=s[t+4],r=Math.max(e,n,i),a=Math.min(e,n,i);r>.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute(\"position\",new un(r,3)),this.setAttribute(\"normal\",new un(r.slice(),3)),this.setAttribute(\"uv\",new un(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(t){return new Ba(t.vertices,t.indices,t.radius,t.details)}}class za extends Ba{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type=\"DodecahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new za(t.radius,t.detail)}}const Fa=new Rt,Oa=new Rt,Ha=new Rt,Ua=new ke;class Ga extends wn{constructor(t,e){if(super(),this.type=\"EdgesGeometry\",this.parameters={thresholdAngle:e},e=void 0!==e?e:1,!0===t.isGeometry)return void console.error(\"THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");const n=Math.pow(10,4),i=Math.cos(ot*e),r=t.getIndex(),s=t.getAttribute(\"position\"),a=r?r.count:s.count,o=[0,0,0],l=[\"a\",\"b\",\"c\"],c=new Array(3),h={},u=[];for(let t=0;t<a;t+=3){r?(o[0]=r.getX(t),o[1]=r.getX(t+1),o[2]=r.getX(t+2)):(o[0]=t,o[1]=t+1,o[2]=t+2);const{a:e,b:a,c:d}=Ua;if(e.fromBufferAttribute(s,o[0]),a.fromBufferAttribute(s,o[1]),d.fromBufferAttribute(s,o[2]),Ua.getNormal(Ha),c[0]=`${Math.round(e.x*n)},${Math.round(e.y*n)},${Math.round(e.z*n)}`,c[1]=`${Math.round(a.x*n)},${Math.round(a.y*n)},${Math.round(a.z*n)}`,c[2]=`${Math.round(d.x*n)},${Math.round(d.y*n)},${Math.round(d.z*n)}`,c[0]!==c[1]&&c[1]!==c[2]&&c[2]!==c[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=c[t],r=c[e],s=Ua[l[t]],a=Ua[l[e]],d=`${n}_${r}`,p=`${r}_${n}`;p in h&&h[p]?(Ha.dot(h[p].normal)<=i&&(u.push(s.x,s.y,s.z),u.push(a.x,a.y,a.z)),h[p]=null):d in h||(h[d]={index0:o[t],index1:o[e],normal:Ha.clone()})}}for(const t in h)if(h[t]){const{index0:e,index1:n}=h[t];Fa.fromBufferAttribute(s,e),Oa.fromBufferAttribute(s,n),u.push(Fa.x,Fa.y,Fa.z),u.push(Oa.x,Oa.y,Oa.z)}this.setAttribute(\"position\",new un(u,3))}}class ka{constructor(){this.type=\"Curve\",this.arcLengthDivisions=200}getPoint(){return console.warn(\"THREE.Curve: .getPoint() not implemented.\"),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new vt:new Rt);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Rt,i=[],r=[],s=[],a=new Rt,o=new ae;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Rt),i[e].normalize()}r[0]=new Rt,s[0]=new Rt;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(ht(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(ht(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:\"Curve\",generator:\"Curve.toJSON\"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Va extends ka{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type=\"EllipseCurve\",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new vt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=s?0:i),!0!==this.aClockwise||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=o-this.aX,i=l-this.aY;o=n*t-i*e+this.aX,l=n*e+i*t+this.aY}return n.set(o,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}Va.prototype.isEllipseCurve=!0;class Wa extends Va{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s),this.type=\"ArcCurve\"}}function ja(){let t=0,e=0,n=0,i=0;function r(r,s,a,o){t=r,e=a,n=-3*r+3*s-2*a-o,i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,s){r(e,n,s*(n-t),s*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,s,a,o){let l=(e-t)/s-(n-t)/(s+a)+(n-e)/a,c=(n-e)/a-(i-e)/(a+o)+(i-n)/o;l*=a,c*=a,r(e,n,l,c)},calc:function(r){const s=r*r;return t+e*r+n*s+i*(s*r)}}}Wa.prototype.isArcCurve=!0;const qa=new Rt,Xa=new ja,Ya=new ja,Ja=new ja;class Za extends ka{constructor(t=[],e=!1,n=\"centripetal\",i=.5){super(),this.type=\"CatmullRomCurve3\",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new Rt){const n=e,i=this.points,r=i.length,s=(r-(this.closed?0:1))*t;let a,o,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(qa.subVectors(i[0],i[1]).add(i[0]),a=qa);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2<r?o=i[(l+2)%r]:(qa.subVectors(i[r-1],i[r-2]).add(i[r-1]),o=qa),\"centripetal\"===this.curveType||\"chordal\"===this.curveType){const t=\"chordal\"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),i=Math.pow(u.distanceToSquared(o),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),Xa.initNonuniformCatmullRom(a.x,h.x,u.x,o.x,e,n,i),Ya.initNonuniformCatmullRom(a.y,h.y,u.y,o.y,e,n,i),Ja.initNonuniformCatmullRom(a.z,h.z,u.z,o.z,e,n,i)}else\"catmullrom\"===this.curveType&&(Xa.initCatmullRom(a.x,h.x,u.x,o.x,this.tension),Ya.initCatmullRom(a.y,h.y,u.y,o.y,this.tension),Ja.initCatmullRom(a.z,h.z,u.z,o.z,this.tension));return n.set(Xa.calc(c),Ya.calc(c),Ja.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Rt).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function Qa(t,e,n,i,r){const s=.5*(i-e),a=.5*(r-n),o=t*t;return(2*n-2*i+s+a)*(t*o)+(-3*n+3*i-2*s-a)*o+s*t+n}function Ka(t,e,n,i){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,i)}function $a(t,e,n,i,r){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,i)+function(t,e){return t*t*t*e}(t,r)}Za.prototype.isCatmullRomCurve3=!0;class to extends ka{constructor(t=new vt,e=new vt,n=new vt,i=new vt){super(),this.type=\"CubicBezierCurve\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new vt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set($a(t,i.x,r.x,s.x,a.x),$a(t,i.y,r.y,s.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}to.prototype.isCubicBezierCurve=!0;class eo extends ka{constructor(t=new Rt,e=new Rt,n=new Rt,i=new Rt){super(),this.type=\"CubicBezierCurve3\",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Rt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set($a(t,i.x,r.x,s.x,a.x),$a(t,i.y,r.y,s.y,a.y),$a(t,i.z,r.z,s.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}eo.prototype.isCubicBezierCurve3=!0;class no extends ka{constructor(t=new vt,e=new vt){super(),this.type=\"LineCurve\",this.v1=t,this.v2=e}getPoint(t,e=new vt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new vt;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}no.prototype.isLineCurve=!0;class io extends ka{constructor(t=new Rt,e=new Rt){super(),this.type=\"LineCurve3\",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new Rt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class ro extends ka{constructor(t=new vt,e=new vt,n=new vt){super(),this.type=\"QuadraticBezierCurve\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new vt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(Ka(t,i.x,r.x,s.x),Ka(t,i.y,r.y,s.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}ro.prototype.isQuadraticBezierCurve=!0;class so extends ka{constructor(t=new Rt,e=new Rt,n=new Rt){super(),this.type=\"QuadraticBezierCurve3\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Rt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(Ka(t,i.x,r.x,s.x),Ka(t,i.y,r.y,s.y),Ka(t,i.z,r.z,s.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}so.prototype.isQuadraticBezierCurve3=!0;class ao extends ka{constructor(t=[]){super(),this.type=\"SplineCurve\",this.points=t}getPoint(t,e=new vt){const n=e,i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,o=i[0===s?s:s-1],l=i[s],c=i[s>i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Qa(a,o.x,l.x,c.x,h.x),Qa(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new vt).fromArray(n))}return this}}ao.prototype.isSplineCurve=!0;var oo=Object.freeze({__proto__:null,ArcCurve:Wa,CatmullRomCurve3:Za,CubicBezierCurve:to,CubicBezierCurve3:eo,EllipseCurve:Va,LineCurve:no,LineCurve3:io,QuadraticBezierCurve:ro,QuadraticBezierCurve3:so,SplineCurve:ao});const lo=function(t,e,n=2){const i=e&&e.length,r=i?e[0]*n:t.length;let s=co(t,0,r,n,!0);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;if(i&&(s=function(t,e,n,i){const r=[];let s,a,o,l,c;for(s=0,a=e.length;s<a;s++)o=e[s]*i,l=s<a-1?e[s+1]*i:t.length,c=co(t,o,l,i,!1),c===c.next&&(c.steiner=!0),r.push(bo(c));for(r.sort(vo),s=0;s<r.length;s++)yo(r[s],n),n=ho(n,n.next);return n}(t,e,s,n)),t.length>80*n){o=c=t[0],l=h=t[1];for(let e=n;e<r;e+=n)u=t[e],d=t[e+1],u<o&&(o=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return uo(s,a,n,o,l,p),a};function co(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i)r+=(t[a]-t[s])*(t[s+1]+t[a+1]),a=s;return r}(t,e,n,i)>0)for(s=e;s<n;s+=i)a=Po(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=Po(s,t[s],t[s+1],a);return a&&To(a,a.next)&&(Do(a),a=a.next),a}function ho(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!To(i,i.next)&&0!==So(i.prev,i,i.next))i=i.next;else{if(Do(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function uo(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=_o(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e<c&&(o++,i=i.nextZ,i);e++);for(l=c;o>0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?mo(t,i,r,s):po(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),Do(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?uo(t=fo(ho(t),e,n),e,n,i,r,s,2):2===a&&go(t,e,n,i,r,s):uo(ho(t),e,n,i,r,s,1);break}}function po(t){const e=t.prev,n=t,i=t.next;if(So(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(Mo(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&So(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function mo(t,e,n,i){const r=t.prev,s=t,a=t.next;if(So(r,s,a)>=0)return!1;const o=r.x<s.x?r.x<a.x?r.x:a.x:s.x<a.x?s.x:a.x,l=r.y<s.y?r.y<a.y?r.y:a.y:s.y<a.y?s.y:a.y,c=r.x>s.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=_o(o,l,e,n,i),d=_o(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&So(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&So(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&So(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&Mo(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&So(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function fo(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!To(r,s)&&Eo(r,i,i.next,s)&&Ro(r,s)&&Ro(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),Do(i),Do(i.next),i=t=s),i=i.next}while(i!==t);return ho(i)}function go(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&wo(a,t)){let o=Co(a,t);return a=ho(a,a.next),o=ho(o,o.next),uo(a,e,n,i,r,s),void uo(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function vo(t,e){return t.x-e.x}function yo(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!s)return null;if(i===a)return s;const o=s,l=s.x,c=s.y;let h,u=1/0;n=s;do{i>=n.x&&n.x>=l&&i!==n.x&&Mo(r<c?i:a,r,l,c,r<c?a:i,r,n.x,n.y)&&(h=Math.abs(r-n.y)/(i-n.x),Ro(n,t)&&(h<u||h===u&&(n.x>s.x||n.x===s.x&&xo(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e)){const n=Co(e,t);ho(e,e.next),ho(n,n.next)}}function xo(t,e){return So(t.prev,t,e.prev)<0&&So(e.next,t,t.next)<0}function _o(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function bo(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function Mo(t,e,n,i,r,s,a,o){return(r-a)*(e-o)-(t-a)*(s-o)>=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function wo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Eo(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Ro(t,e)&&Ro(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(So(t.prev,t,e.prev)||So(t,e.prev,e))||To(t,e)&&So(t.prev,t,t.next)>0&&So(e.prev,e,e.next)>0)}function So(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function To(t,e){return t.x===e.x&&t.y===e.y}function Eo(t,e,n,i){const r=Lo(So(t,e,n)),s=Lo(So(t,e,i)),a=Lo(So(n,i,t)),o=Lo(So(n,i,e));return r!==s&&a!==o||(!(0!==r||!Ao(t,n,e))||(!(0!==s||!Ao(t,i,e))||(!(0!==a||!Ao(n,t,i))||!(0!==o||!Ao(n,e,i)))))}function Ao(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Lo(t){return t>0?1:t<0?-1:0}function Ro(t,e){return So(t.prev,t,t.next)<0?So(t,e,t.next)>=0&&So(t,t.prev,e)>=0:So(t,e,t.prev)<0||So(t,t.next,e)<0}function Co(t,e){const n=new Io(t.i,t.x,t.y),i=new Io(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Po(t,e,n,i){const r=new Io(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Do(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Io(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class No{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n}static isClockWise(t){return No.area(t)<0}static triangulateShape(t,e){const n=[],i=[],r=[];Bo(t),zo(n,t);let s=t.length;e.forEach(Bo);for(let t=0;t<e.length;t++)i.push(s),s+=e[t].length,zo(n,e[t]);const a=lo(n,i);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}}function Bo(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function zo(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class Fo extends wn{constructor(t,e){super(),this.type=\"ExtrudeGeometry\",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let e=0,n=t.length;e<n;e++){s(t[e])}function s(t){const s=[],a=void 0!==e.curveSegments?e.curveSegments:12,o=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:6,u=void 0!==e.bevelSize?e.bevelSize:h-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const m=e.extrudePath,f=void 0!==e.UVGenerator?e.UVGenerator:Oo;void 0!==e.amount&&(console.warn(\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\"),l=e.amount);let g,v,y,x,_,b=!1;m&&(g=m.getSpacedPoints(o),b=!0,c=!1,v=m.computeFrenetFrames(o,!1),y=new Rt,x=new Rt,_=new Rt),c||(p=0,h=0,u=0,d=0);const M=t.extractPoints(a);let w=M.shape;const S=M.holes;if(!No.isClockWise(w)){w=w.reverse();for(let t=0,e=S.length;t<e;t++){const e=S[t];No.isClockWise(e)&&(S[t]=e.reverse())}}const T=No.triangulateShape(w,S),E=w;for(let t=0,e=S.length;t<e;t++){const e=S[t];w=w.concat(e)}function A(t,e,n){return e||console.error(\"THREE.ExtrudeGeometry: vec does not exist\"),e.clone().multiplyScalar(n).add(t)}const L=w.length,R=T.length;function C(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=a*a+o*o,u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new vt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new vt(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t<e;t++,n++,i++)n===e&&(n=0),i===e&&(i=0),P[t]=C(E[t],E[n],E[i]);const D=[];let I,N=P.concat();for(let t=0,e=S.length;t<e;t++){const e=S[t];I=[];for(let t=0,n=e.length,i=n-1,r=t+1;t<n;t++,i++,r++)i===n&&(i=0),r===n&&(r=0),I[t]=C(e[t],e[i],e[r]);D.push(I),N=N.concat(I)}for(let t=0;t<p;t++){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=A(E[t],P[t],i);F(e.x,e.y,-n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,r=e.length;t<r;t++){const r=A(e[t],I[t],i);F(r.x,r.y,-n)}}}const B=u+d;for(let t=0;t<L;t++){const e=c?A(w[t],N[t],B):w[t];b?(x.copy(v.normals[0]).multiplyScalar(e.x),y.copy(v.binormals[0]).multiplyScalar(e.y),_.copy(g[0]).add(x).add(y),F(_.x,_.y,_.z)):F(e.x,e.y,0)}for(let t=1;t<=o;t++)for(let e=0;e<L;e++){const n=c?A(w[e],N[e],B):w[e];b?(x.copy(v.normals[t]).multiplyScalar(n.x),y.copy(v.binormals[t]).multiplyScalar(n.y),_.copy(g[t]).add(x).add(y),F(_.x,_.y,_.z)):F(n.x,n.y,l/o*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=A(E[t],P[t],i);F(e.x,e.y,l+n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,r=e.length;t<r;t++){const r=A(e[t],I[t],i);b?F(r.x,r.y+g[o-1].y,g[o-1].x+n):F(r.x,r.y,l+n)}}}function z(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t<n;t++){const n=L*t,s=L*(t+1);H(e+i+n,e+r+n,e+r+s,e+i+s)}}}function F(t,e,n){s.push(t),s.push(e),s.push(n)}function O(t,e,r){U(t),U(e),U(r);const s=i.length/3,a=f.generateTopUV(n,i,s-3,s-2,s-1);G(a[0]),G(a[1]),G(a[2])}function H(t,e,r,s){U(t),U(e),U(s),U(e),U(r),U(s);const a=i.length/3,o=f.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);G(o[0]),G(o[1]),G(o[3]),G(o[1]),G(o[2]),G(o[3])}function U(t){i.push(s[3*t+0]),i.push(s[3*t+1]),i.push(s[3*t+2])}function G(t){r.push(t.x),r.push(t.y)}!function(){const t=i.length/3;if(c){let t=0,e=L*t;for(let t=0;t<R;t++){const n=T[t];O(n[2]+e,n[1]+e,n[0]+e)}t=o+2*p,e=L*t;for(let t=0;t<R;t++){const n=T[t];O(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<R;t++){const e=T[t];O(e[2],e[1],e[0])}for(let t=0;t<R;t++){const e=T[t];O(e[0]+L*o,e[1]+L*o,e[2]+L*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;z(E,e),e+=E.length;for(let t=0,n=S.length;t<n;t++){const n=S[t];z(n,e),e+=n.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute(\"position\",new un(i,3)),this.setAttribute(\"uv\",new un(r,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new oo[i.type]).fromJSON(i)),new Fo(n,t.options)}}const Oo={generateTopUV:function(t,e,n,i,r){const s=e[3*n],a=e[3*n+1],o=e[3*i],l=e[3*i+1],c=e[3*r],h=e[3*r+1];return[new vt(s,a),new vt(o,l),new vt(c,h)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[3*n],o=e[3*n+1],l=e[3*n+2],c=e[3*i],h=e[3*i+1],u=e[3*i+2],d=e[3*r],p=e[3*r+1],m=e[3*r+2],f=e[3*s],g=e[3*s+1],v=e[3*s+2];return Math.abs(o-h)<Math.abs(a-c)?[new vt(a,1-l),new vt(c,1-u),new vt(d,1-m),new vt(f,1-v)]:[new vt(o,1-l),new vt(h,1-u),new vt(p,1-m),new vt(g,1-v)]}};class Ho extends Ba{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type=\"IcosahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Ho(t.radius,t.detail)}}class Uo extends wn{constructor(t,e=12,n=0,i=2*Math.PI){super(),this.type=\"LatheGeometry\",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=ht(i,0,2*Math.PI);const r=[],s=[],a=[],o=1/e,l=new Rt,c=new vt;for(let r=0;r<=e;r++){const h=n+r*o*i,u=Math.sin(h),d=Math.cos(h);for(let n=0;n<=t.length-1;n++)l.x=t[n].x*u,l.y=t[n].y,l.z=t[n].x*d,s.push(l.x,l.y,l.z),c.x=r/e,c.y=n/(t.length-1),a.push(c.x,c.y)}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length,s=i,a=i+t.length,o=i+t.length+1,l=i+1;r.push(s,a,l),r.push(a,o,l)}if(this.setIndex(r),this.setAttribute(\"position\",new un(s,3)),this.setAttribute(\"uv\",new un(a,2)),this.computeVertexNormals(),i===2*Math.PI){const n=this.attributes.normal.array,i=new Rt,r=new Rt,s=new Rt,a=e*t.length*3;for(let e=0,o=0;e<t.length;e++,o+=3)i.x=n[o+0],i.y=n[o+1],i.z=n[o+2],r.x=n[a+o+0],r.y=n[a+o+1],r.z=n[a+o+2],s.addVectors(i,r).normalize(),n[o+0]=n[a+o+0]=s.x,n[o+1]=n[a+o+1]=s.y,n[o+2]=n[a+o+2]=s.z}}static fromJSON(t){return new Uo(t.points,t.segments,t.phiStart,t.phiLength)}}class Go extends Ba{constructor(t=1,e=0){super([1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type=\"OctahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Go(t.radius,t.detail)}}class ko extends wn{constructor(t,e,n){super(),this.type=\"ParametricGeometry\",this.parameters={func:t,slices:e,stacks:n};const i=[],r=[],s=[],a=[],o=1e-5,l=new Rt,c=new Rt,h=new Rt,u=new Rt,d=new Rt;t.length<3&&console.error(\"THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.\");const p=e+1;for(let i=0;i<=n;i++){const p=i/n;for(let n=0;n<=e;n++){const i=n/e;t(i,p,c),r.push(c.x,c.y,c.z),i-o>=0?(t(i-o,p,h),u.subVectors(c,h)):(t(i+o,p,h),u.subVectors(h,c)),p-o>=0?(t(i,p-o,h),d.subVectors(c,h)):(t(i,p+o,h),d.subVectors(h,c)),l.crossVectors(u,d).normalize(),s.push(l.x,l.y,l.z),a.push(i,p)}}for(let t=0;t<n;t++)for(let n=0;n<e;n++){const e=t*p+n,r=t*p+n+1,s=(t+1)*p+n+1,a=(t+1)*p+n;i.push(e,r,a),i.push(r,s,a)}this.setIndex(i),this.setAttribute(\"position\",new un(r,3)),this.setAttribute(\"normal\",new un(s,3)),this.setAttribute(\"uv\",new un(a,2))}}class Vo extends wn{constructor(t=.5,e=1,n=8,i=1,r=0,s=2*Math.PI){super(),this.type=\"RingGeometry\",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s},n=Math.max(3,n);const a=[],o=[],l=[],c=[];let h=t;const u=(e-t)/(i=Math.max(1,i)),d=new Rt,p=new vt;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=h*Math.cos(i),d.y=h*Math.sin(i),o.push(d.x,d.y,d.z),l.push(0,0,1),p.x=(d.x/e+1)/2,p.y=(d.y/e+1)/2,c.push(p.x,p.y)}h+=u}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e,r=i,s=i+n+1,o=i+n+2,l=i+1;a.push(r,s,l),a.push(s,o,l)}}this.setIndex(a),this.setAttribute(\"position\",new un(o,3)),this.setAttribute(\"normal\",new un(l,3)),this.setAttribute(\"uv\",new un(c,2))}static fromJSON(t){return new Vo(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class Wo extends wn{constructor(t,e=12){super(),this.type=\"ShapeGeometry\",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],s=[];let a=0,o=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(a,o,e),a+=o,o=0;function l(t){const a=i.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===No.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===No.isClockWise(e)&&(h[t]=e.reverse())}const u=No.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0),r.push(0,0,1),s.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],i=e[0]+a,r=e[1]+a,s=e[2]+a;n.push(i,r,s),o+=3}}this.setIndex(n),this.setAttribute(\"position\",new un(i,3)),this.setAttribute(\"normal\",new un(r,3)),this.setAttribute(\"uv\",new un(s,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new Wo(n,t.curveSegments)}}class jo extends wn{constructor(t=1,e=8,n=6,i=0,r=2*Math.PI,s=0,a=Math.PI){super(),this.type=\"SphereGeometry\",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[],h=new Rt,u=new Rt,d=[],p=[],m=[],f=[];for(let d=0;d<=n;d++){const g=[],v=d/n;let y=0;0==d&&0==s?y=.5/e:d==n&&o==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(s+v*a),h.y=t*Math.cos(s+v*a),h.z=t*Math.sin(i+o*r)*Math.sin(s+v*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),m.push(u.x,u.y,u.z),f.push(o+y,1-v),g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1],r=c[t][i],a=c[t+1][i],l=c[t+1][i+1];(0!==t||s>0)&&d.push(e,r,l),(t!==n-1||o<Math.PI)&&d.push(r,a,l)}this.setIndex(d),this.setAttribute(\"position\",new un(p,3)),this.setAttribute(\"normal\",new un(m,3)),this.setAttribute(\"uv\",new un(f,2))}static fromJSON(t){return new jo(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class qo extends Ba{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type=\"TetrahedronGeometry\",this.parameters={radius:t,detail:e}}static fromJSON(t){return new qo(t.radius,t.detail)}}class Xo extends Fo{constructor(t,e={}){const n=e.font;if(!n||!n.isFont)return console.error(\"THREE.TextGeometry: font parameter is not an instance of THREE.Font.\"),new wn;const i=n.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(i,e),this.type=\"TextGeometry\"}}class Yo extends wn{constructor(t=1,e=.4,n=8,i=6,r=2*Math.PI){super(),this.type=\"TorusGeometry\",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r},n=Math.floor(n),i=Math.floor(i);const s=[],a=[],o=[],l=[],c=new Rt,h=new Rt,u=new Rt;for(let s=0;s<=n;s++)for(let d=0;d<=i;d++){const p=d/i*r,m=s/n*Math.PI*2;h.x=(t+e*Math.cos(m))*Math.cos(p),h.y=(t+e*Math.cos(m))*Math.sin(p),h.z=e*Math.sin(m),a.push(h.x,h.y,h.z),c.x=t*Math.cos(p),c.y=t*Math.sin(p),u.subVectors(h,c).normalize(),o.push(u.x,u.y,u.z),l.push(d/i),l.push(s/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+e-1,r=(i+1)*(t-1)+e-1,a=(i+1)*(t-1)+e,o=(i+1)*t+e;s.push(n,r,o),s.push(r,a,o)}this.setIndex(s),this.setAttribute(\"position\",new un(a,3)),this.setAttribute(\"normal\",new un(o,3)),this.setAttribute(\"uv\",new un(l,2))}static fromJSON(t){return new Yo(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class Jo extends wn{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super(),this.type=\"TorusKnotGeometry\",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s},n=Math.floor(n),i=Math.floor(i);const a=[],o=[],l=[],c=[],h=new Rt,u=new Rt,d=new Rt,p=new Rt,m=new Rt,f=new Rt,g=new Rt;for(let a=0;a<=n;++a){const y=a/n*r*Math.PI*2;v(y,r,s,t,d),v(y+.01,r,s,t,p),f.subVectors(p,d),g.addVectors(p,d),m.crossVectors(f,g),g.crossVectors(m,f),m.normalize(),g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2,s=-e*Math.cos(r),p=e*Math.sin(r);h.x=d.x+(s*g.x+p*m.x),h.y=d.y+(s*g.y+p*m.y),h.z=d.z+(s*g.z+p*m.z),o.push(h.x,h.y,h.z),u.subVectors(h,d).normalize(),l.push(u.x,u.y,u.z),c.push(a/n),c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,o=(i+1)*(t-1)+e;a.push(n,r,o),a.push(r,s,o)}function v(t,e,n,i,r){const s=Math.cos(t),a=Math.sin(t),o=n/e*t,l=Math.cos(o);r.x=i*(2+l)*.5*s,r.y=i*(2+l)*a*.5,r.z=i*Math.sin(o)*.5}this.setIndex(a),this.setAttribute(\"position\",new un(o,3)),this.setAttribute(\"normal\",new un(l,3)),this.setAttribute(\"uv\",new un(c,2))}static fromJSON(t){return new Jo(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class Zo extends wn{constructor(t,e=64,n=1,i=8,r=!1){super(),this.type=\"TubeGeometry\",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new Rt,o=new Rt,l=new vt;let c=new Rt;const h=[],u=[],d=[],p=[];function m(r){c=t.getPointAt(r/e,c);const l=s.normals[r],d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),s=-Math.cos(e);o.x=s*l.x+r*d.x,o.y=s*l.y+r*d.y,o.z=s*l.z+r*d.z,o.normalize(),u.push(o.x,o.y,o.z),a.x=c.x+n*o.x,a.y=c.y+n*o.y,a.z=c.z+n*o.z,h.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)m(t);m(!1===r?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)l.x=t/e,l.y=n/i,d.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,a=(i+1)*(t-1)+e;p.push(n,r,a),p.push(r,s,a)}}()}(),this.setIndex(p),this.setAttribute(\"position\",new un(h,3)),this.setAttribute(\"normal\",new un(u,3)),this.setAttribute(\"uv\",new un(d,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new Zo((new oo[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class Qo extends wn{constructor(t){if(super(),this.type=\"WireframeGeometry\",!0===t.isGeometry)return void console.error(\"THREE.WireframeGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");const e=[],n=[0,0],i={},r=new Rt;if(null!==t.index){const s=t.attributes.position,a=t.index;let o=t.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,e=o.length;t<e;++t){const e=o[t],r=e.start;for(let t=r,s=r+e.count;t<s;t+=3)for(let e=0;e<3;e++){const r=a.getX(t+e),s=a.getX(t+(e+1)%3);n[0]=Math.min(r,s),n[1]=Math.max(r,s);const o=n[0]+\",\"+n[1];void 0===i[o]&&(i[o]={index1:n[0],index2:n[1]})}}for(const t in i){const n=i[t];r.fromBufferAttribute(s,n.index1),e.push(r.x,r.y,r.z),r.fromBufferAttribute(s,n.index2),e.push(r.x,r.y,r.z)}}else{const n=t.attributes.position;for(let t=0,i=n.count/3;t<i;t++)for(let i=0;i<3;i++){const s=3*t+i;r.fromBufferAttribute(n,s),e.push(r.x,r.y,r.z);const a=3*t+(i+1)%3;r.fromBufferAttribute(n,a),e.push(r.x,r.y,r.z)}}this.setAttribute(\"position\",new un(e,3))}}var Ko=Object.freeze({__proto__:null,BoxGeometry:Vn,BoxBufferGeometry:Vn,CircleGeometry:Da,CircleBufferGeometry:Da,ConeGeometry:Na,ConeBufferGeometry:Na,CylinderGeometry:Ia,CylinderBufferGeometry:Ia,DodecahedronGeometry:za,DodecahedronBufferGeometry:za,EdgesGeometry:Ga,ExtrudeGeometry:Fo,ExtrudeBufferGeometry:Fo,IcosahedronGeometry:Ho,IcosahedronBufferGeometry:Ho,LatheGeometry:Uo,LatheBufferGeometry:Uo,OctahedronGeometry:Go,OctahedronBufferGeometry:Go,ParametricGeometry:ko,ParametricBufferGeometry:ko,PlaneGeometry:ci,PlaneBufferGeometry:ci,PolyhedronGeometry:Ba,PolyhedronBufferGeometry:Ba,RingGeometry:Vo,RingBufferGeometry:Vo,ShapeGeometry:Wo,ShapeBufferGeometry:Wo,SphereGeometry:jo,SphereBufferGeometry:jo,TetrahedronGeometry:qo,TetrahedronBufferGeometry:qo,TextGeometry:Xo,TextBufferGeometry:Xo,TorusGeometry:Yo,TorusBufferGeometry:Yo,TorusKnotGeometry:Jo,TorusKnotBufferGeometry:Jo,TubeGeometry:Zo,TubeBufferGeometry:Zo,WireframeGeometry:Qo});class $o extends We{constructor(t){super(),this.type=\"ShadowMaterial\",this.color=new Qe(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}$o.prototype.isShadowMaterial=!0;class tl extends Xn{constructor(t){super(t),this.type=\"RawShaderMaterial\"}}tl.prototype.isRawShaderMaterial=!0;class el extends We{constructor(t){super(),this.defines={STANDARD:\"\"},this.type=\"MeshStandardMaterial\",this.color=new Qe(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.vertexTangents=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this.vertexTangents=t.vertexTangents,this}}el.prototype.isMeshStandardMaterial=!0;class nl extends el{constructor(t){super(),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.type=\"MeshPhysicalMaterial\",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new vt(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,\"ior\",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=ht(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new Qe(1,1,1),this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,t.sheen?this.sheen=(this.sheen||new Qe).copy(t.sheen):this.sheen=null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this}}nl.prototype.isMeshPhysicalMaterial=!0;class il extends We{constructor(t){super(),this.type=\"MeshPhongMaterial\",this.color=new Qe(16777215),this.specular=new Qe(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}il.prototype.isMeshPhongMaterial=!0;class rl extends We{constructor(t){super(),this.defines={TOON:\"\"},this.type=\"MeshToonMaterial\",this.color=new Qe(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}rl.prototype.isMeshToonMaterial=!0;class sl extends We{constructor(t){super(),this.type=\"MeshNormalMaterial\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}sl.prototype.isMeshNormalMaterial=!0;class al extends We{constructor(t){super(),this.type=\"MeshLambertMaterial\",this.color=new Qe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}al.prototype.isMeshLambertMaterial=!0;class ol extends We{constructor(t){super(),this.defines={MATCAP:\"\"},this.type=\"MeshMatcapMaterial\",this.color=new Qe(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:\"\"},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}ol.prototype.isMeshMatcapMaterial=!0;class ll extends ha{constructor(t){super(),this.type=\"LineDashedMaterial\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}ll.prototype.isLineDashedMaterial=!0;var cl=Object.freeze({__proto__:null,ShadowMaterial:$o,SpriteMaterial:Rs,RawShaderMaterial:tl,ShaderMaterial:Xn,PointsMaterial:ba,MeshPhysicalMaterial:nl,MeshStandardMaterial:el,MeshPhongMaterial:il,MeshToonMaterial:rl,MeshNormalMaterial:sl,MeshLambertMaterial:al,MeshDepthMaterial:cs,MeshDistanceMaterial:hs,MeshBasicMaterial:Ke,MeshMatcapMaterial:ol,LineDashedMaterial:ll,LineBasicMaterial:ha,Material:We});const hl={arraySlice:function(t,e,n){return hl.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:\"number\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)},subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t<s.tracks.length;++t){const e=s.tracks[t],o=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const s=e.times[t]*r;if(!(s<n||s>=i)){l.push(e.times[t]);for(let n=0;n<o;++n)c.push(e.values[t*o+n])}}0!==l.length&&(e.times=hl.convertArray(l,e.times.constructor),e.values=hl.convertArray(c,e.values.constructor),a.push(e))}s.tracks=a;let o=1/0;for(let t=0;t<s.tracks.length;++t)o>s.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t<s.tracks.length;++t)s.tracks[t].shift(-1*o);return s.resetDuration(),s},makeClipAdditive:function(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,s=e/i;for(let e=0;e<r;++e){const i=n.tracks[e],r=i.ValueTypeName;if(\"bool\"===r||\"string\"===r)continue;const a=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===r}));if(void 0===a)continue;let o=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=i.times.length-1;let d;if(s<=i.times[0]){const t=o,e=l-o;d=hl.arraySlice(i.values,t,e)}else if(s>=i.times[u]){const t=u*l+o,e=t+l-o;d=hl.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=hl.arraySlice(t.resultBuffer,e,n)}if(\"quaternion\"===r){(new Lt).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(\"quaternion\"===r)Lt.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}return t.blendMode=q,t}};class ul{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,r)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0}}for(;n<s;){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,r,t)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=n[r+t];return e}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}ul.prototype.beforeStart_=ul.prototype.copySampleValue_,ul.prototype.afterEnd_=ul.prototype.copySampleValue_;class dl extends ul{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:k,endingEnd:k}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case V:r=t,a=2*e-n;break;case W:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case V:s=t,o=2*n-e;break;case W:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(o-n),this._offsetPrev=r*c,this._offsetNext=s*c}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),m=p*p,f=m*p,g=-u*f+2*u*m-u*p,v=(1+u)*f+(-1.5-2*u)*m+(-.5+u)*p+1,y=(-1-d)*f+(1.5+d)*m+.5*p,x=d*f-d*m;for(let t=0;t!==a;++t)r[t]=g*s[c+t]+v*s[l+t]+y*s[o+t]+x*s[h+t];return r}}class pl extends ul{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==a;++t)r[t]=s[l+t]*h+s[o+t]*c;return r}}class ml extends ul{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class fl{constructor(t,e,n,i){if(void 0===t)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(void 0===e||0===e.length)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t,this.times=hl.convertArray(e,this.TimeBufferType),this.values=hl.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:hl.convertArray(t.times,Array),values:hl.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new ml(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new pl(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new dl(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case H:e=this.InterpolantFactoryMethodDiscrete;break;case U:e=this.InterpolantFactoryMethodLinear;break;case G:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\"THREE.KeyframeTrack:\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return H;case this.InterpolantFactoryMethodLinear:return U;case this.InterpolantFactoryMethodSmooth:return G}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==s&&n[s]>e;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=hl.arraySlice(n,r,s),this.values=hl.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error(\"THREE.KeyframeTrack: Track is empty.\",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if(\"number\"==typeof i&&isNaN(i)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,e,i),t=!1;break}if(null!==s&&s>i){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&hl.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,e,n),t=!1;break}}return t}optimize(){const t=hl.arraySlice(this.times),e=hl.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===G,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a];if(o!==t[a+1]&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=hl.arraySlice(t,0,s),this.values=hl.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=hl.arraySlice(this.times,0),e=hl.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}fl.prototype.TimeBufferType=Float32Array,fl.prototype.ValueBufferType=Float32Array,fl.prototype.DefaultInterpolation=U;class gl extends fl{}gl.prototype.ValueTypeName=\"bool\",gl.prototype.ValueBufferType=Array,gl.prototype.DefaultInterpolation=H,gl.prototype.InterpolantFactoryMethodLinear=void 0,gl.prototype.InterpolantFactoryMethodSmooth=void 0;class vl extends fl{}vl.prototype.ValueTypeName=\"color\";class yl extends fl{}yl.prototype.ValueTypeName=\"number\";class xl extends ul{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)Lt.slerpFlat(r,0,s,l-a,s,l,o);return r}}class _l extends fl{InterpolantFactoryMethodLinear(t){return new xl(this.times,this.values,this.getValueSize(),t)}}_l.prototype.ValueTypeName=\"quaternion\",_l.prototype.DefaultInterpolation=U,_l.prototype.InterpolantFactoryMethodSmooth=void 0;class bl extends fl{}bl.prototype.ValueTypeName=\"string\",bl.prototype.ValueBufferType=Array,bl.prototype.DefaultInterpolation=H,bl.prototype.InterpolantFactoryMethodLinear=void 0,bl.prototype.InterpolantFactoryMethodSmooth=void 0;class Ml extends fl{}Ml.prototype.ValueTypeName=\"vector\";class wl{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ct(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Sl(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(fl.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t<r;t++){let a=[],o=[];a.push((t+r-1)%r,t,(t+1)%r),o.push(0,1,0);const l=hl.getKeyframeOrder(a);a=hl.sortedArray(a,1,l),o=hl.sortedArray(o,1,l),i||0!==a[0]||(a.push(r),o.push(o[0])),s.push(new yl(\".morphTargetInfluences[\"+e[t].name+\"]\",a,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},r=/^([\\w-]*?)([\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],s=n.name.match(r);if(s&&s.length>1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\"),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];hl.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||\"default\",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const r=l[t].keys;if(r&&0!==r.length)if(r[0].morphTargets){const t={};let e;for(e=0;e<r.length;e++)if(r[e].morphTargets)for(let n=0;n<r[e].morphTargets.length;n++)t[r[e].morphTargets[n]]=-1;for(const n in t){const t=[],s=[];for(let i=0;i!==r[e].morphTargets.length;++i){const i=r[e];t.push(i.time),s.push(i.morphTarget===n?1:0)}i.push(new yl(\".morphTargetInfluence[\"+n+\"]\",t,s))}o=t.length*(s||1)}else{const s=\".bones[\"+e[t].name+\"]\";n(Ml,s+\".position\",r,\"pos\",i),n(_l,s+\".quaternion\",r,\"rot\",i),n(Ml,s+\".scale\",r,\"scl\",i)}}if(0===i.length)return null;return new this(r,o,i,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function Sl(t){if(void 0===t.type)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const e=function(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return yl;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return Ml;case\"color\":return vl;case\"quaternion\":return _l;case\"bool\":case\"boolean\":return gl;case\"string\":return bl}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+t)}(t.type);if(void 0===t.times){const e=[],n=[];hl.flattenJSON(t.keys,e,n,\"value\"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Tl={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class El{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const Al=new El;class Ll{constructor(t){this.manager=void 0!==t?t:Al,this.crossOrigin=\"anonymous\",this.withCredentials=!1,this.path=\"\",this.resourcePath=\"\",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const Rl={};class Cl extends Ll{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Tl.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;if(void 0!==Rl[t])return void Rl[t].push({onLoad:e,onProgress:n,onError:i});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let o;if(a){const n=a[1],s=!!a[2];let o=a[3];o=decodeURIComponent(o),s&&(o=atob(o));try{let i;const s=(this.responseType||\"\").toLowerCase();switch(s){case\"arraybuffer\":case\"blob\":const t=new Uint8Array(o.length);for(let e=0;e<o.length;e++)t[e]=o.charCodeAt(e);i=\"blob\"===s?new Blob([t.buffer],{type:n}):t.buffer;break;case\"document\":const e=new DOMParser;i=e.parseFromString(o,n);break;case\"json\":i=JSON.parse(o);break;default:i=o}setTimeout((function(){e&&e(i),r.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}),0)}}else{Rl[t]=[],Rl[t].push({onLoad:e,onProgress:n,onError:i}),o=new XMLHttpRequest,o.open(\"GET\",t,!0),o.addEventListener(\"load\",(function(e){const n=this.response,i=Rl[t];if(delete Rl[t],200===this.status||0===this.status){0===this.status&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\"),Tl.add(t,n);for(let t=0,e=i.length;t<e;t++){const e=i[t];e.onLoad&&e.onLoad(n)}r.manager.itemEnd(t)}else{for(let t=0,n=i.length;t<n;t++){const n=i[t];n.onError&&n.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}}),!1),o.addEventListener(\"progress\",(function(e){const n=Rl[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),o.addEventListener(\"error\",(function(e){const n=Rl[t];delete Rl[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),o.addEventListener(\"abort\",(function(e){const n=Rl[t];delete Rl[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(o.responseType=this.responseType),void 0!==this.withCredentials&&(o.withCredentials=this.withCredentials),o.overrideMimeType&&o.overrideMimeType(void 0!==this.mimeType?this.mimeType:\"text/plain\");for(const t in this.requestHeader)o.setRequestHeader(t,this.requestHeader[t]);o.send(null)}return r.manager.itemStart(t),o}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class Pl extends Ll{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Tl.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"img\");function o(){a.removeEventListener(\"load\",o,!1),a.removeEventListener(\"error\",l,!1),Tl.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){a.removeEventListener(\"load\",o,!1),a.removeEventListener(\"error\",l,!1),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}return a.addEventListener(\"load\",o,!1),a.addEventListener(\"error\",l,!1),\"data:\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class Dl extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=new Kn,s=new Pl(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let e=0;e<t.length;++e)o(e);return r}}class Il extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new ea,a=new Cl(this.manager);return a.setResponseType(\"arraybuffer\"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(t,(function(t){const n=r.parse(t);n&&(void 0!==n.image?s.image=n.image:void 0!==n.data&&(s.image.width=n.width,s.image.height=n.height,s.image.data=n.data),s.wrapS=void 0!==n.wrapS?n.wrapS:u,s.wrapT=void 0!==n.wrapT?n.wrapT:u,s.magFilter=void 0!==n.magFilter?n.magFilter:g,s.minFilter=void 0!==n.minFilter?n.minFilter:g,s.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.encoding&&(s.encoding=n.encoding),void 0!==n.flipY&&(s.flipY=n.flipY),void 0!==n.format&&(s.format=n.format),void 0!==n.type&&(s.type=n.type),void 0!==n.mipmaps&&(s.mipmaps=n.mipmaps,s.minFilter=y),1===n.mipmapCount&&(s.minFilter=g),void 0!==n.generateMipmaps&&(s.generateMipmaps=n.generateMipmaps),s.needsUpdate=!0,e&&e(s,n))}),n,i),s}}class Nl extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=new Mt,s=new Pl(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,(function(n){r.image=n;const i=t.search(/\\.jpe?g($|\\?)/i)>0||0===t.search(/^data\\:image\\/jpeg/);r.format=i?T:E,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}class Bl extends ka{constructor(){super(),this.type=\"CurvePath\",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new no(e,t))}getPoint(t){const e=t*this.getLength(),n=this.getCurveLengths();let i=0;for(;i<n.length;){if(n[i]>=e){const t=n[i]-e,r=this.curves[i],s=r.getLength(),a=0===s?0:1-t/s;return r.getPointAt(a)}i++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s&&s.isEllipseCurve?2*t:s&&(s.isLineCurve||s.isLineCurve3)?1:s&&s.isSplineCurve?t*s.points.length:t,o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new oo[n.type]).fromJSON(n))}return this}}class zl extends Bl{constructor(t){super(),this.type=\"Path\",this.currentPoint=new vt,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new no(this.currentPoint.clone(),new vt(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const r=new ro(this.currentPoint.clone(),new vt(t,e),new vt(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,r,s){const a=new to(this.currentPoint.clone(),new vt(t,e),new vt(n,i),new vt(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new ao(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,r,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(t+a,e+o,n,i,r,s),this}absarc(t,e,n,i,r,s){return this.absellipse(t,e,n,n,i,r,s),this}ellipse(t,e,n,i,r,s,a,o){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,i,r,s,a,o),this}absellipse(t,e,n,i,r,s,a,o){const l=new Va(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Fl extends zl{constructor(t){super(t),this.uuid=ct(),this.type=\"Shape\",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new zl).fromJSON(n))}return this}}class Ol extends Pe{constructor(t,e=1){super(),this.type=\"Light\",this.color=new Qe(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}Ol.prototype.isLight=!0;class Hl extends Ol{constructor(t,e,n){super(t,n),this.type=\"HemisphereLight\",this.position.copy(Pe.DefaultUp),this.updateMatrix(),this.groundColor=new Qe(e)}copy(t){return Ol.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}Hl.prototype.isHemisphereLight=!0;const Ul=new ae,Gl=new Rt,kl=new Rt;class Vl{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new vt(512,512),this.map=null,this.mapPass=null,this.matrix=new ae,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ai,this._frameExtents=new vt(1,1),this._viewportCount=1,this._viewports=[new St(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Gl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Gl),kl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(kl),e.updateMatrixWorld(),Ul.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Ul),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class Wl extends Vl{constructor(){super(new Jn(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*lt*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}Wl.prototype.isSpotLightShadow=!0;class jl extends Ol{constructor(t,e,n=0,i=Math.PI/3,r=0,s=1){super(t,e),this.type=\"SpotLight\",this.position.copy(Pe.DefaultUp),this.updateMatrix(),this.target=new Pe,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.shadow=new Wl}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}jl.prototype.isSpotLight=!0;const ql=new ae,Xl=new Rt,Yl=new Rt;class Jl extends Vl{constructor(){super(new Jn(90,1,.5,500)),this._frameExtents=new vt(4,2),this._viewportCount=6,this._viewports=[new St(2,1,1,1),new St(0,1,1,1),new St(3,1,1,1),new St(1,1,1,1),new St(3,0,1,1),new St(1,0,1,1)],this._cubeDirections=[new Rt(1,0,0),new Rt(-1,0,0),new Rt(0,0,1),new Rt(0,0,-1),new Rt(0,1,0),new Rt(0,-1,0)],this._cubeUps=[new Rt(0,1,0),new Rt(0,1,0),new Rt(0,1,0),new Rt(0,1,0),new Rt(0,0,1),new Rt(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),Xl.setFromMatrixPosition(t.matrixWorld),n.position.copy(Xl),Yl.copy(n.position),Yl.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Yl),n.updateMatrixWorld(),i.makeTranslation(-Xl.x,-Xl.y,-Xl.z),ql.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ql)}}Jl.prototype.isPointLightShadow=!0;class Zl extends Ol{constructor(t,e,n=0,i=1){super(t,e),this.type=\"PointLight\",this.distance=n,this.decay=i,this.shadow=new Jl}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}Zl.prototype.isPointLight=!0;class Ql extends Yn{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.type=\"OrthographicCamera\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}Ql.prototype.isOrthographicCamera=!0;class Kl extends Vl{constructor(){super(new Ql(-5,5,5,-5,.5,500))}}Kl.prototype.isDirectionalLightShadow=!0;class $l extends Ol{constructor(t,e){super(t,e),this.type=\"DirectionalLight\",this.position.copy(Pe.DefaultUp),this.updateMatrix(),this.target=new Pe,this.shadow=new Kl}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}$l.prototype.isDirectionalLight=!0;class tc extends Ol{constructor(t,e){super(t,e),this.type=\"AmbientLight\"}}tc.prototype.isAmbientLight=!0;class ec extends Ol{constructor(t,e,n=10,i=10){super(t,e),this.type=\"RectAreaLight\",this.width=n,this.height=i}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}ec.prototype.isRectAreaLight=!0;class nc{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Rt)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}nc.prototype.isSphericalHarmonics3=!0;class ic extends Ol{constructor(t=new nc,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}ic.prototype.isLightProbe=!0;class rc extends Ll{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new Cl(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn(\"THREE.MaterialLoader: Undefined texture\",t),e[t]}const i=new cl[t.type];if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=(new Qe).setHex(t.sheen)),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.morphTargets&&(i.morphTargets=t.morphTargets),void 0!==t.morphNormals&&(i.morphNormals=t.morphNormals),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.vertexTangents&&(i.vertexTangents=t.vertexTangents),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&(\"number\"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case\"t\":i.uniforms[e].value=n(r.value);break;case\"c\":i.uniforms[e].value=(new Qe).setHex(r.value);break;case\"v2\":i.uniforms[e].value=(new vt).fromArray(r.value);break;case\"v3\":i.uniforms[e].value=(new Rt).fromArray(r.value);break;case\"v4\":i.uniforms[e].value=(new St).fromArray(r.value);break;case\"m3\":i.uniforms[e].value=(new yt).fromArray(r.value);break;case\"m4\":i.uniforms[e].value=(new ae).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new vt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new vt).fromArray(t.clearcoatNormalScale)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),i}setTextures(t){return this.textures=t,this}}class sc{static decodeText(t){if(\"undefined\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\"\";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\"/\");return-1===e?\"./\":t.substr(0,e+1)}}class ac extends wn{constructor(){super(),this.type=\"InstancedBufferGeometry\",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}ac.prototype.isInstancedBufferGeometry=!0;class oc extends en{constructor(t,e,n,i=1){\"number\"==typeof n&&(i=n,n=!1,console.error(\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\")),super(t,e,n),this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}oc.prototype.isInstancedBufferAttribute=!0;class lc extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const r=t.interleavedBuffers[i],s=function(t,e){if(void 0!==n[e])return n[e];const i=t.arrayBuffers[e],r=new Uint32Array(i).buffer;return n[e]=r,r}(t,r.buffer),a=fn(r.type,s),o=new Es(a,r.stride);return o.uuid=r.uuid,e[i]=o,o}const r=t.isInstancedBufferGeometry?new ac:new wn,s=t.data.index;if(void 0!==s){const t=fn(s.type,s.array);r.setIndex(new en(t,1))}const a=t.data.attributes;for(const e in a){const n=a[e];let s;if(n.isInterleavedBufferAttribute){const e=i(t.data,n.data);s=new Ls(e,n.itemSize,n.offset,n.normalized)}else{const t=fn(n.type,n.array);s=new(n.isInstancedBufferAttribute?oc:en)(t,n.itemSize,n.normalized)}void 0!==n.name&&(s.name=n.name),void 0!==n.usage&&s.setUsage(n.usage),void 0!==n.updateRange&&(s.updateRange.offset=n.updateRange.offset,s.updateRange.count=n.updateRange.count),r.setAttribute(e,s)}const o=t.data.morphAttributes;if(o)for(const e in o){const n=o[e],s=[];for(let e=0,r=n.length;e<r;e++){const r=n[e];let a;if(r.isInterleavedBufferAttribute){const e=i(t.data,r.data);a=new Ls(e,r.itemSize,r.offset,r.normalized)}else{const t=fn(r.type,r.array);a=new en(t,r.itemSize,r.normalized)}void 0!==r.name&&(a.name=r.name),s.push(a)}r.morphAttributes[e]=s}t.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==l)for(let t=0,e=l.length;t!==e;++t){const e=l[t];r.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(void 0!==c){const t=new Rt;void 0!==c.center&&t.fromArray(c.center),r.boundingSphere=new Qt(t,c.radius)}return t.name&&(r.name=t.name),t.userData&&(r.userData=t.userData),r}}const cc={UVMapping:i,CubeReflectionMapping:r,CubeRefractionMapping:s,EquirectangularReflectionMapping:a,EquirectangularRefractionMapping:o,CubeUVReflectionMapping:l,CubeUVRefractionMapping:c},hc={RepeatWrapping:h,ClampToEdgeWrapping:u,MirroredRepeatWrapping:d},uc={NearestFilter:p,NearestMipmapNearestFilter:m,NearestMipmapLinearFilter:f,LinearFilter:g,LinearMipmapNearestFilter:v,LinearMipmapLinearFilter:y};class dc extends Ll{constructor(t){super(t),\"undefined\"==typeof createImageBitmap&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\"),\"undefined\"==typeof fetch&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\"),this.options={premultiplyAlpha:\"none\"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Tl.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a={};a.credentials=\"anonymous\"===this.crossOrigin?\"same-origin\":\"include\",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:\"none\"}))})).then((function(n){Tl.add(t,n),e&&e(n),r.manager.itemEnd(t)})).catch((function(e){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}dc.prototype.isImageBitmapLoader=!0;class pc{constructor(){this.type=\"ShapePath\",this.color=new Qe,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new zl,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t,e){function n(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new Fl;r.curves=i.curves,e.push(r)}return e}function i(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;s<n;r=s++){let n=e[r],a=e[s],o=a.x-n.x,l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=No.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new Fl,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e<n;e++)o=s[e],p=o.getPoints(),a=r(p),a=t?!a:a,a?(!h&&d[g]&&g++,d[g]={s:new Fl,p:p},d[g].s.curves=o.curves,h&&g++,f[g]=[]):f[g].push({h:o,p:p[0]});if(!d[0])return n(s);if(d.length>1){let t=!1;const e=[];for(let t=0,e=d.length;t<e;t++)u[t]=[];for(let n=0,r=d.length;n<r;n++){const r=f[n];for(let s=0;s<r.length;s++){const a=r[s];let o=!0;for(let r=0;r<d.length;r++)i(a.p,d[r].p)&&(n!==r&&e.push({froms:n,tos:r,hole:s}),o?(o=!1,u[r].push(a)):t=!0);o&&u[n].push(a)}}e.length>0&&(t||(f=u))}for(let t=0,e=d.length;t<e;t++){l=d[t].s,c.push(l),m=f[t];for(let t=0,e=m.length;t<e;t++)l.holes.push(m[t].h)}return c}}class mc{constructor(t){this.type=\"Font\",this.data=t}generateShapes(t,e=100){const n=[],i=function(t,e,n){const i=Array.from(t),r=e/n.resolution,s=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*r,a=[];let o=0,l=0;for(let t=0;t<i.length;t++){const e=i[t];if(\"\\n\"===e)o=0,l-=s;else{const t=fc(e,r,o,l,n);o+=t.offsetX,a.push(t.path)}}return a}(t,e,this.data);for(let t=0,e=i.length;t<e;t++)Array.prototype.push.apply(n,i[t].toShapes());return n}}function fc(t,e,n,i,r){const s=r.glyphs[t]||r.glyphs[\"?\"];if(!s)return void console.error('THREE.Font: character \"'+t+'\" does not exists in font family '+r.familyName+\".\");const a=new pc;let o,l,c,h,u,d,p,m;if(s.o){const t=s._cachedOutline||(s._cachedOutline=s.o.split(\" \"));for(let r=0,s=t.length;r<s;){switch(t[r++]){case\"m\":o=t[r++]*e+n,l=t[r++]*e+i,a.moveTo(o,l);break;case\"l\":o=t[r++]*e+n,l=t[r++]*e+i,a.lineTo(o,l);break;case\"q\":c=t[r++]*e+n,h=t[r++]*e+i,u=t[r++]*e+n,d=t[r++]*e+i,a.quadraticCurveTo(u,d,c,h);break;case\"b\":c=t[r++]*e+n,h=t[r++]*e+i,u=t[r++]*e+n,d=t[r++]*e+i,p=t[r++]*e+n,m=t[r++]*e+i,a.bezierCurveTo(u,d,p,m,c,h)}}}return{offsetX:s.ha*e,path:a}}mc.prototype.isFont=!0;let gc;const vc={getContext:function(){return void 0===gc&&(gc=new(window.AudioContext||window.webkitAudioContext)),gc},setContext:function(t){gc=t}};class yc extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(this.manager);s.setResponseType(\"arraybuffer\"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{const t=n.slice(0);vc.getContext().decodeAudioData(t,(function(t){e(t)}))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}}class xc extends ic{constructor(t,e,n=1){super(void 0,n);const i=(new Qe).set(t),r=(new Qe).set(e),s=new Rt(i.r,i.g,i.b),a=new Rt(r.r,r.g,r.b),o=Math.sqrt(Math.PI),l=o*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o),this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l)}}xc.prototype.isHemisphereLightProbe=!0;class _c extends ic{constructor(t,e=1){super(void 0,e);const n=(new Qe).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}_c.prototype.isAmbientLightProbe=!0;const bc=new ae,Mc=new ae;class wc{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Sc(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Sc();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Sc(){return(\"undefined\"==typeof performance?Date:performance).now()}const Tc=new Rt,Ec=new Lt,Ac=new Rt,Lc=new Rt;class Rc extends Pe{constructor(t){super(),this.type=\"Audio\",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=\"empty\",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"audioNode\",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaNode\",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaStreamNode\",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=\"buffer\",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn(\"THREE.Audio: Audio is already playing.\");if(!1===this.hasPlaybackControl)return void console.warn(\"THREE.Audio: this Audio has no playback control.\");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn(\"THREE.Audio: this Audio has no playback control.\"),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}const Cc=new Rt,Pc=new Lt,Dc=new Rt,Ic=new Rt;class Nc{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class Bc{constructor(t,e,n){let i,r,s;switch(this.binding=t,this.valueSize=n,e){case\"quaternion\":i=this._slerp,r=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case\"string\":case\"bool\":i=this._select,r=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(0===s){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Lt.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Lt.multiplyQuaternionsFlat(t,s,t,e,t,n),Lt.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const zc=\"\\\\[\\\\]\\\\.:\\\\/\",Fc=new RegExp(\"[\\\\[\\\\]\\\\.:\\\\/]\",\"g\"),Oc=\"[^\\\\[\\\\]\\\\.:\\\\/]\",Hc=\"[^\"+zc.replace(\"\\\\.\",\"\")+\"]\",Uc=/((?:WC+[\\/:])*)/.source.replace(\"WC\",Oc),Gc=/(WCOD+)?/.source.replace(\"WCOD\",Hc),kc=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",Oc),Vc=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",Oc),Wc=new RegExp(\"^\"+Uc+Gc+kc+Vc+\"$\"),jc=[\"material\",\"materials\",\"bones\"];class qc{constructor(t,e,n){this.path=e,this.parsedPath=n||qc.parseTrackName(e),this.node=qc.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new qc.Composite(t,e,n):new qc(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,\"_\").replace(Fc,\"\")}static parseTrackName(t){const e=Wc.exec(t);if(!e)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==jc.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return n}static findNode(t,e){if(!e||\"\"===e||\".\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.node[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=qc.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\"THREE.PropertyBinding: Trying to update node for track: \"+this.path+\" but it wasn't found.\");if(n){let i=e.objectIndex;switch(n){case\"materials\":if(!t.material)return void console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);if(!t.material.materials)return void console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);t=t.material.materials;break;case\"bones\":if(!t.skeleton)return void console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+i+\" but it wasn't found.\",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if(\"morphTargetInfluences\"===i){if(!t.geometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);if(!t.geometry.isBufferGeometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\",this);if(!t.geometry.morphAttributes)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}qc.Composite=class{constructor(t,e,n){const i=n||qc.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},qc.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},qc.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},qc.prototype.GetterByBindingType=[qc.prototype._getValue_direct,qc.prototype._getValue_array,qc.prototype._getValue_arrayElement,qc.prototype._getValue_toArray],qc.prototype.SetterByBindingTypeAndVersioning=[[qc.prototype._setValue_direct,qc.prototype._setValue_direct_setNeedsUpdate,qc.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[qc.prototype._setValue_array,qc.prototype._setValue_array_setNeedsUpdate,qc.prototype._setValue_array_setMatrixWorldNeedsUpdate],[qc.prototype._setValue_arrayElement,qc.prototype._setValue_arrayElement_setNeedsUpdate,qc.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[qc.prototype._setValue_fromArray,qc.prototype._setValue_fromArray_setNeedsUpdate,qc.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class Xc{constructor(){this.uuid=ct(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=e[u];if(void 0===d){d=o++,e[u]=d,t.push(h);for(let t=0,e=s;t!==e;++t)r[t].push(new qc(h,n[t],i[t]))}else if(d<l){a=t[d];const o=--l,c=t[o];e[c.uuid]=d,t[d]=c,e[u]=o,t[o]=h;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s,void 0===a&&(a=new qc(h,n[t],i[t])),e[o]=a}}else t[d]!==a&&console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\")}this.nCachedObjects_=l}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=e[o];if(void 0!==l&&l>=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l<r){const a=--r,o=t[a],c=--s,h=t[c];e[o.uuid]=l,t[l]=o,e[h.uuid]=a,t[a]=h,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[c];e[l]=i,e[a]=r,e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new qc(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}Xc.prototype.isAnimationObjectGroup=!0;class Yc{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:k,endingEnd:k};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case q:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);break;case j:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=V,i.endingEnd=V):(i.endingStart=t?this.zeroSlopeAtStart?V:k:W,i.endingEnd=e?this.zeroSlopeAtEnd?V:k:W)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class Jc extends rt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Bc(qc.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{const e=s.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,l=o[o.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,o[c]=l,o.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===o.length&&delete s[r],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];void 0===s&&(s={},i[e]=s),s[n]=t,t._cacheIndex=r.length,r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],l=t._cacheIndex;o._cacheIndex=l,e[l]=o,e.pop(),delete a[r],0===Object.keys(a).length&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new pl(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s=\"string\"==typeof t?wl.findByName(i,t):t;const a=null!==s?s.uuid:t,o=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==s?s.blendMode:j),void 0!==o){const t=o.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;l=o.knownActions[0],null===s&&(s=l._clip)}if(null===s)return null;const c=new Yc(this,s,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,r),c}existingAction(t,e){const n=e||this._root,i=n.uuid,r=\"string\"==typeof t?wl.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,s._cacheIndex=r,e[r]=s,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const t in i){const e=i[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}Jc.prototype._controlInterpolantsResultBuffer=new Float32Array(1);class Zc{constructor(t){\"string\"==typeof t&&(console.warn(\"THREE.Uniform: Type parameter is no longer needed.\"),t=arguments[1]),this.value=t}clone(){return new Zc(void 0===this.value.clone?this.value:this.value.clone())}}class Qc extends Es{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}Qc.prototype.isInstancedInterleavedBuffer=!0;class Kc{constructor(t,e,n,i,r){this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}set needsUpdate(t){!0===t&&this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}}Kc.prototype.isGLBufferAttribute=!0;function $c(t,e){return t.distance-e.distance}function th(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)th(i[t],e,n,!0)}}const eh=new vt;class nh{constructor(t=new vt(1/0,1/0),e=new vt(-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=eh.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return eh.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}nh.prototype.isBox2=!0;const ih=new Rt,rh=new Rt;class sh{constructor(t=new Rt,e=new Rt){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){ih.subVectors(t,this.start),rh.subVectors(this.end,this.start);const n=rh.dot(rh);let i=rh.dot(ih)/n;return e&&(i=ht(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class ah extends Pe{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}ah.prototype.isImmediateRenderObject=!0;const oh=new Rt;const lh=new Rt,ch=new ae,hh=new ae;class uh extends xa{constructor(t){const e=dh(t),n=new wn,i=[],r=[],s=new Qe(0,0,1),a=new Qe(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(s.r,s.g,s.b),r.push(a.r,a.g,a.b))}n.setAttribute(\"position\",new un(i,3)),n.setAttribute(\"color\",new un(r,3));super(n,new ha({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type=\"SkeletonHelper\",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute(\"position\");hh.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const r=e[t];r.parent&&r.parent.isBone&&(ch.multiplyMatrices(hh,r.matrixWorld),lh.setFromMatrixPosition(ch),i.setXYZ(n,lh.x,lh.y,lh.z),ch.multiplyMatrices(hh,r.parent.matrixWorld),lh.setFromMatrixPosition(ch),i.setXYZ(n+1,lh.x,lh.y,lh.z),n+=2)}n.getAttribute(\"position\").needsUpdate=!0,super.updateMatrixWorld(t)}}function dh(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,dh(t.children[n]));return e}const ph=new Rt,mh=new Qe,fh=new Qe;class gh extends xa{constructor(t=10,e=10,n=4473924,i=8947848){n=new Qe(n),i=new Qe(i);const r=e/2,s=t/e,a=t/2,o=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=s){o.push(-a,0,h,a,0,h),o.push(h,0,-a,h,0,a);const e=t===r?n:i;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new wn;c.setAttribute(\"position\",new un(o,3)),c.setAttribute(\"color\",new un(l,3));super(c,new ha({vertexColors:!0,toneMapped:!1})),this.type=\"GridHelper\"}}const vh=new Rt,yh=new Rt,xh=new Rt;const _h=new Rt,bh=new Yn;function Mh(t,e,n,i,r,s,a){_h.set(r,s,a).unproject(i);const o=e[t];if(void 0!==o){const t=n.getAttribute(\"position\");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],_h.x,_h.y,_h.z)}}const wh=new Dt;class Sh extends xa{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new wn;r.setIndex(new en(n,1)),r.setAttribute(\"position\",new en(i,3)),super(r,new ha({color:e,toneMapped:!1})),this.object=t,this.type=\"BoxHelper\",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\"),void 0!==this.object&&wh.setFromObject(this.object),wh.isEmpty())return;const e=wh.min,n=wh.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t){return xa.prototype.copy.call(this,t),this.object=t.object,this}}const Th=new Rt;let Eh,Ah;class Lh extends xa{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new wn;n.setAttribute(\"position\",new un(e,3)),n.setAttribute(\"color\",new un([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new ha({vertexColors:!0,toneMapped:!1})),this.type=\"AxesHelper\"}setColors(t,e,n){const i=new Qe,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}const Rh=new Float32Array(1),Ch=new Int32Array(Rh.buffer);const Ph=Math.pow(2,8),Dh=[.125,.215,.35,.446,.526,.582],Ih=5+Dh.length,Nh=20,Bh={[X]:0,[Y]:1,[Z]:2,[Q]:3,[K]:4,[$]:5,[J]:6},zh=new Ke({side:1,depthWrite:!1,depthTest:!1}),Fh=new Gn(new Vn,zh),Oh=new Ql,{_lodPlanes:Hh,_sizeLods:Uh,_sigmas:Gh}=Jh(),kh=new Qe;let Vh=null;const Wh=(1+Math.sqrt(5))/2,jh=1/Wh,qh=[new Rt(1,1,1),new Rt(-1,1,1),new Rt(1,1,-1),new Rt(-1,1,-1),new Rt(0,Wh,jh),new Rt(0,Wh,-jh),new Rt(jh,0,Wh),new Rt(-jh,0,Wh),new Rt(Wh,jh,0),new Rt(-Wh,jh,0)];function Xh(t){const e=Math.max(t.r,t.g,t.b),n=Math.min(Math.max(Math.ceil(Math.log2(e)),-128),127);t.multiplyScalar(Math.pow(2,-n));return(n+128)/255}function Yh(t){return void 0!==t&&t.type===x&&(t.encoding===X||t.encoding===Y||t.encoding===J)}function Jh(){const t=[],e=[],n=[];let i=8;for(let r=0;r<Ih;r++){const s=Math.pow(2,i);e.push(s);let a=1/s;r>4?a=Dh[r-8+4-1]:0==r&&(a=0),n.push(a);const o=1/(s-1),l=-o/2,c=1+o/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,m=2,f=1,g=new Float32Array(p*d*u),v=new Float32Array(m*d*u),y=new Float32Array(f*d*u);for(let t=0;t<u;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];g.set(i,p*d*t),v.set(h,m*d*t);const r=[t,t,t,t,t,t];y.set(r,f*d*t)}const x=new wn;x.setAttribute(\"position\",new en(g,p)),x.setAttribute(\"uv\",new en(v,m)),x.setAttribute(\"faceIndex\",new en(y,f)),t.push(x),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function Zh(t){const e=new Tt(3*Ph,3*Ph,t);return e.texture.mapping=l,e.texture.name=\"PMREM.cubeUv\",e.scissorTest=!0,e}function Qh(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Kh(){const t=new vt(1,1);return new tl({name:\"EquirectangularToCubeUV\",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:Bh[3e3]},outputEncoding:{value:Bh[3e3]}},vertexShader:tu(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform vec2 texelSize;\\n\\n\\t\\t\\t${eu()}\\n\\n\\t\\t\\t#include <common>\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tvec2 f = fract( uv / texelSize - 0.5 );\\n\\t\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\t\\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x += texelSize.x;\\n\\t\\t\\t\\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.y += texelSize.y;\\n\\t\\t\\t\\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x -= texelSize.x;\\n\\t\\t\\t\\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\n\\t\\t\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\t\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\t\\t\\tgl_FragColor.rgb = mix( tm, bm, f.y );\\n\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:0,depthTest:!1,depthWrite:!1})}function $h(){return new tl({name:\"CubemapToCubeUV\",uniforms:{envMap:{value:null},inputEncoding:{value:Bh[3e3]},outputEncoding:{value:Bh[3e3]}},vertexShader:tu(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\t${eu()}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:0,depthTest:!1,depthWrite:!1})}function tu(){return\"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute vec3 position;\\n\\t\\tattribute vec2 uv;\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"}function eu(){return\"\\n\\n\\t\\tuniform int inputEncoding;\\n\\t\\tuniform int outputEncoding;\\n\\n\\t\\t#include <encodings_pars_fragment>\\n\\n\\t\\tvec4 inputTexelToLinear( vec4 value ) {\\n\\n\\t\\t\\tif ( inputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( inputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn sRGBToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn RGBEToLinear( value );\\n\\n\\t\\t\\t} else if ( inputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 7.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn RGBMToLinear( value, 16.0 );\\n\\n\\t\\t\\t} else if ( inputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn RGBDToLinear( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn GammaToLinear( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 linearToOutputTexel( vec4 value ) {\\n\\n\\t\\t\\tif ( outputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else if ( outputEncoding == 1 ) {\\n\\n\\t\\t\\t\\treturn LinearTosRGB( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 2 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBE( value );\\n\\n\\t\\t\\t} else if ( outputEncoding == 3 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 7.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 4 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBM( value, 16.0 );\\n\\n\\t\\t\\t} else if ( outputEncoding == 5 ) {\\n\\n\\t\\t\\t\\treturn LinearToRGBD( value, 256.0 );\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn LinearToGamma( value, 2.2 );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 envMapTexelToLinear( vec4 color ) {\\n\\n\\t\\t\\treturn inputTexelToLinear( color );\\n\\n\\t\\t}\\n\\t\"}ka.create=function(t,e){return console.log(\"THREE.Curve.create() has been deprecated\"),t.prototype=Object.create(ka.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},zl.prototype.fromPoints=function(t){return console.warn(\"THREE.Path: .fromPoints() has been renamed to .setFromPoints().\"),this.setFromPoints(t)},gh.prototype.setColors=function(){console.error(\"THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.\")},uh.prototype.update=function(){console.error(\"THREE.SkeletonHelper: update() no longer needs to be called.\")},Ll.prototype.extractUrlBase=function(t){return console.warn(\"THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.\"),sc.extractUrlBase(t)},Ll.Handlers={add:function(){console.error(\"THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.\")},get:function(){console.error(\"THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.\")}},nh.prototype.center=function(t){return console.warn(\"THREE.Box2: .center() has been renamed to .getCenter().\"),this.getCenter(t)},nh.prototype.empty=function(){return console.warn(\"THREE.Box2: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},nh.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},nh.prototype.size=function(t){return console.warn(\"THREE.Box2: .size() has been renamed to .getSize().\"),this.getSize(t)},Dt.prototype.center=function(t){return console.warn(\"THREE.Box3: .center() has been renamed to .getCenter().\"),this.getCenter(t)},Dt.prototype.empty=function(){return console.warn(\"THREE.Box3: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},Dt.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},Dt.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},Dt.prototype.size=function(t){return console.warn(\"THREE.Box3: .size() has been renamed to .getSize().\"),this.getSize(t)},Qt.prototype.empty=function(){return console.warn(\"THREE.Sphere: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},ai.prototype.setFromMatrix=function(t){return console.warn(\"THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().\"),this.setFromProjectionMatrix(t)},sh.prototype.center=function(t){return console.warn(\"THREE.Line3: .center() has been renamed to .getCenter().\"),this.getCenter(t)},yt.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},yt.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},yt.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix3: .multiplyVector3Array() has been removed.\")},yt.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},yt.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix3: .applyToVector3Array() has been removed.\")},yt.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},ae.prototype.extractPosition=function(t){return console.warn(\"THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().\"),this.copyPosition(t)},ae.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},ae.prototype.getPosition=function(){return console.warn(\"THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.\"),(new Rt).setFromMatrixColumn(this,3)},ae.prototype.setRotationFromQuaternion=function(t){return console.warn(\"THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().\"),this.makeRotationFromQuaternion(t)},ae.prototype.multiplyToArray=function(){console.warn(\"THREE.Matrix4: .multiplyToArray() has been removed.\")},ae.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.multiplyVector4=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix4: .multiplyVector3Array() has been removed.\")},ae.prototype.rotateAxis=function(t){console.warn(\"THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.\"),t.transformDirection(this)},ae.prototype.crossVector=function(t){return console.warn(\"THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.translate=function(){console.error(\"THREE.Matrix4: .translate() has been removed.\")},ae.prototype.rotateX=function(){console.error(\"THREE.Matrix4: .rotateX() has been removed.\")},ae.prototype.rotateY=function(){console.error(\"THREE.Matrix4: .rotateY() has been removed.\")},ae.prototype.rotateZ=function(){console.error(\"THREE.Matrix4: .rotateZ() has been removed.\")},ae.prototype.rotateByAxis=function(){console.error(\"THREE.Matrix4: .rotateByAxis() has been removed.\")},ae.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},ae.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix4: .applyToVector3Array() has been removed.\")},ae.prototype.makeFrustum=function(t,e,n,i,r,s){return console.warn(\"THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.\"),this.makePerspective(t,e,i,n,r,s)},ae.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},ii.prototype.isIntersectionLine=function(t){return console.warn(\"THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().\"),this.intersectsLine(t)},Lt.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.\"),t.applyQuaternion(this)},Lt.prototype.inverse=function(){return console.warn(\"THREE.Quaternion: .inverse() has been renamed to invert().\"),this.invert()},se.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},se.prototype.isIntersectionPlane=function(t){return console.warn(\"THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().\"),this.intersectsPlane(t)},se.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},ke.prototype.area=function(){return console.warn(\"THREE.Triangle: .area() has been renamed to .getArea().\"),this.getArea()},ke.prototype.barycoordFromPoint=function(t,e){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),this.getBarycoord(t,e)},ke.prototype.midpoint=function(t){return console.warn(\"THREE.Triangle: .midpoint() has been renamed to .getMidpoint().\"),this.getMidpoint(t)},ke.prototypenormal=function(t){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),this.getNormal(t)},ke.prototype.plane=function(t){return console.warn(\"THREE.Triangle: .plane() has been renamed to .getPlane().\"),this.getPlane(t)},ke.barycoordFromPoint=function(t,e,n,i,r){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),ke.getBarycoord(t,e,n,i,r)},ke.normal=function(t,e,n,i){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),ke.getNormal(t,e,n,i)},Fl.prototype.extractAllPoints=function(t){return console.warn(\"THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.\"),this.extractPoints(t)},Fl.prototype.extrude=function(t){return console.warn(\"THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.\"),new Fo(this,t)},Fl.prototype.makeGeometry=function(t){return console.warn(\"THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.\"),new Wo(this,t)},vt.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},vt.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},vt.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},Rt.prototype.setEulerFromRotationMatrix=function(){console.error(\"THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.\")},Rt.prototype.setEulerFromQuaternion=function(){console.error(\"THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.\")},Rt.prototype.getPositionFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().\"),this.setFromMatrixPosition(t)},Rt.prototype.getScaleFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().\"),this.setFromMatrixScale(t)},Rt.prototype.getColumnFromMatrix=function(t,e){return console.warn(\"THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().\"),this.setFromMatrixColumn(e,t)},Rt.prototype.applyProjection=function(t){return console.warn(\"THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.\"),this.applyMatrix4(t)},Rt.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},Rt.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},Rt.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},St.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},St.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},Pe.prototype.getChildByName=function(t){return console.warn(\"THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().\"),this.getObjectByName(t)},Pe.prototype.renderDepth=function(){console.warn(\"THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.\")},Pe.prototype.translate=function(t,e){return console.warn(\"THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.\"),this.translateOnAxis(e,t)},Pe.prototype.getWorldRotation=function(){console.error(\"THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.\")},Pe.prototype.applyMatrix=function(t){return console.warn(\"THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(Pe.prototype,{eulerOrder:{get:function(){return console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order},set:function(t){console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order=t}},useQuaternion:{get:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")},set:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")}}}),Gn.prototype.setDrawMode=function(){console.error(\"THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")},Object.defineProperties(Gn.prototype,{drawMode:{get:function(){return console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.\"),0},set:function(){console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")}}}),$s.prototype.initBones=function(){console.error(\"THREE.SkinnedMesh: initBones() has been removed.\")},Jn.prototype.setLens=function(t,e){console.warn(\"THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.\"),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(Ol.prototype,{onlyShadow:{set:function(){console.warn(\"THREE.Light: .onlyShadow has been removed.\")}},shadowCameraFov:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFov is now .shadow.camera.fov.\"),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn(\"THREE.Light: .shadowCameraLeft is now .shadow.camera.left.\"),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn(\"THREE.Light: .shadowCameraRight is now .shadow.camera.right.\"),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn(\"THREE.Light: .shadowCameraTop is now .shadow.camera.top.\"),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn(\"THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.\"),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn(\"THREE.Light: .shadowCameraNear is now .shadow.camera.near.\"),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFar is now .shadow.camera.far.\"),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn(\"THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.\")}},shadowBias:{set:function(t){console.warn(\"THREE.Light: .shadowBias is now .shadow.bias.\"),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn(\"THREE.Light: .shadowDarkness has been removed.\")}},shadowMapWidth:{set:function(t){console.warn(\"THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.\"),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn(\"THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.\"),this.shadow.mapSize.height=t}}}),Object.defineProperties(en.prototype,{length:{get:function(){return console.warn(\"THREE.BufferAttribute: .length has been deprecated. Use .count instead.\"),this.array.length}},dynamic:{get:function(){return console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.usage===nt},set:function(){console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.setUsage(nt)}}}),en.prototype.setDynamic=function(t){return console.warn(\"THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?nt:et),this},en.prototype.copyIndicesArray=function(){console.error(\"THREE.BufferAttribute: .copyIndicesArray() has been removed.\")},en.prototype.setArray=function(){console.error(\"THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},wn.prototype.addIndex=function(t){console.warn(\"THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().\"),this.setIndex(t)},wn.prototype.addAttribute=function(t,e){return console.warn(\"THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().\"),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?\"index\"===t?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),this.setIndex(e),this):this.setAttribute(t,e):(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),this.setAttribute(t,new en(arguments[1],arguments[2])))},wn.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn(\"THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.\"),console.warn(\"THREE.BufferGeometry: .addDrawCall() is now .addGroup().\"),this.addGroup(t,e)},wn.prototype.clearDrawCalls=function(){console.warn(\"THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().\"),this.clearGroups()},wn.prototype.computeOffsets=function(){console.warn(\"THREE.BufferGeometry: .computeOffsets() has been removed.\")},wn.prototype.removeAttribute=function(t){return console.warn(\"THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().\"),this.deleteAttribute(t)},wn.prototype.applyMatrix=function(t){return console.warn(\"THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(wn.prototype,{drawcalls:{get:function(){return console.error(\"THREE.BufferGeometry: .drawcalls has been renamed to .groups.\"),this.groups}},offsets:{get:function(){return console.warn(\"THREE.BufferGeometry: .offsets has been renamed to .groups.\"),this.groups}}}),Es.prototype.setDynamic=function(t){return console.warn(\"THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?nt:et),this},Es.prototype.setArray=function(){console.error(\"THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},Fo.prototype.getArrays=function(){console.error(\"THREE.ExtrudeGeometry: .getArrays() has been removed.\")},Fo.prototype.addShapeList=function(){console.error(\"THREE.ExtrudeGeometry: .addShapeList() has been removed.\")},Fo.prototype.addShape=function(){console.error(\"THREE.ExtrudeGeometry: .addShape() has been removed.\")},Ts.prototype.dispose=function(){console.error(\"THREE.Scene: .dispose() has been removed.\")},Zc.prototype.onUpdate=function(){return console.warn(\"THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.\"),this},Object.defineProperties(We.prototype,{wrapAround:{get:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")},set:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")}},overdraw:{get:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")},set:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")}},wrapRGB:{get:function(){return console.warn(\"THREE.Material: .wrapRGB has been removed.\"),new Qe}},shading:{get:function(){console.error(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\")},set:function(t){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask},set:function(t){console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask=t}}}),Object.defineProperties(Xn.prototype,{derivatives:{get:function(){return console.warn(\"THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives},set:function(t){console.warn(\"THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives=t}}}),bs.prototype.clearTarget=function(t,e,n,i){console.warn(\"THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.\"),this.setRenderTarget(t),this.clear(e,n,i)},bs.prototype.animate=function(t){console.warn(\"THREE.WebGLRenderer: .animate() is now .setAnimationLoop().\"),this.setAnimationLoop(t)},bs.prototype.getCurrentRenderTarget=function(){return console.warn(\"THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().\"),this.getRenderTarget()},bs.prototype.getMaxAnisotropy=function(){return console.warn(\"THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().\"),this.capabilities.getMaxAnisotropy()},bs.prototype.getPrecision=function(){return console.warn(\"THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.\"),this.capabilities.precision},bs.prototype.resetGLState=function(){return console.warn(\"THREE.WebGLRenderer: .resetGLState() is now .state.reset().\"),this.state.reset()},bs.prototype.supportsFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).\"),this.extensions.get(\"OES_texture_float\")},bs.prototype.supportsHalfFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).\"),this.extensions.get(\"OES_texture_half_float\")},bs.prototype.supportsStandardDerivatives=function(){return console.warn(\"THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).\"),this.extensions.get(\"OES_standard_derivatives\")},bs.prototype.supportsCompressedTextureS3TC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_s3tc\")},bs.prototype.supportsCompressedTexturePVRTC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_pvrtc\")},bs.prototype.supportsBlendMinMax=function(){return console.warn(\"THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).\"),this.extensions.get(\"EXT_blend_minmax\")},bs.prototype.supportsVertexTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.\"),this.capabilities.vertexTextures},bs.prototype.supportsInstancedArrays=function(){return console.warn(\"THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).\"),this.extensions.get(\"ANGLE_instanced_arrays\")},bs.prototype.enableScissorTest=function(t){console.warn(\"THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().\"),this.setScissorTest(t)},bs.prototype.initMaterial=function(){console.warn(\"THREE.WebGLRenderer: .initMaterial() has been removed.\")},bs.prototype.addPrePlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPrePlugin() has been removed.\")},bs.prototype.addPostPlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPostPlugin() has been removed.\")},bs.prototype.updateShadowMap=function(){console.warn(\"THREE.WebGLRenderer: .updateShadowMap() has been removed.\")},bs.prototype.setFaceCulling=function(){console.warn(\"THREE.WebGLRenderer: .setFaceCulling() has been removed.\")},bs.prototype.allocTextureUnit=function(){console.warn(\"THREE.WebGLRenderer: .allocTextureUnit() has been removed.\")},bs.prototype.setTexture=function(){console.warn(\"THREE.WebGLRenderer: .setTexture() has been removed.\")},bs.prototype.setTexture2D=function(){console.warn(\"THREE.WebGLRenderer: .setTexture2D() has been removed.\")},bs.prototype.setTextureCube=function(){console.warn(\"THREE.WebGLRenderer: .setTextureCube() has been removed.\")},bs.prototype.getActiveMipMapLevel=function(){return console.warn(\"THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().\"),this.getActiveMipmapLevel()},Object.defineProperties(bs.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.\"),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.\"),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")}},context:{get:function(){return console.warn(\"THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.\"),this.getContext()}},vr:{get:function(){return console.warn(\"THREE.WebGLRenderer: .vr has been renamed to .xr\"),this.xr}},gammaInput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\"),!1},set:function(){console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\")}},gammaOutput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),!1},set:function(t){console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),this.outputEncoding=!0===t?Y:X}},toneMappingWhitePoint:{get:function(){return console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\"),1},set:function(){console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\")}}}),Object.defineProperties(us.prototype,{cullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")}},renderReverseSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")}},renderSingleSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")}}}),Object.defineProperties(Tt.prototype,{wrapS:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy=t}},offset:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset=t}},repeat:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat=t}},format:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format=t}},type:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps=t}}}),Rc.prototype.load=function(t){console.warn(\"THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.\");const e=this;return(new yc).load(t,(function(t){e.setBuffer(t)})),this},Nc.prototype.getData=function(){return console.warn(\"THREE.AudioAnalyser: .getData() is now .getFrequencyData().\"),this.getFrequencyData()},Qn.prototype.updateCubeMap=function(t,e){return console.warn(\"THREE.CubeCamera: .updateCubeMap() is now .update().\"),this.update(t,e)},Qn.prototype.clear=function(t,e,n,i){return console.warn(\"THREE.CubeCamera: .clear() is now .renderTarget.clear().\"),this.renderTarget.clear(t,e,n,i)},_t.crossOrigin=void 0,_t.loadTexture=function(t,e,n,i){console.warn(\"THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.\");const r=new Nl;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadTextureCube=function(t,e,n,i){console.warn(\"THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.\");const r=new Dl;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},_t.loadCompressedTexture=function(){console.error(\"THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.\")},_t.loadCompressedTextureCube=function(){console.error(\"THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.\")};const nu={createMultiMaterialObject:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")},detach:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")},attach:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")}};\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:e}})),\"undefined\"!=typeof window&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=e),t.ACESFilmicToneMapping=4,t.AddEquation=n,t.AddOperation=2,t.AdditiveAnimationBlendMode=q,t.AdditiveBlending=2,t.AlphaFormat=1021,t.AlwaysDepth=1,t.AlwaysStencilFunc=519,t.AmbientLight=tc,t.AmbientLightProbe=_c,t.AnimationClip=wl,t.AnimationLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=wl.parse(t[n]);e.push(i)}return e}},t.AnimationMixer=Jc,t.AnimationObjectGroup=Xc,t.AnimationUtils=hl,t.ArcCurve=Wa,t.ArrayCamera=fs,t.ArrowHelper=class extends Pe{constructor(t=new Rt(0,0,1),e=new Rt(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type=\"ArrowHelper\",void 0===Eh&&(Eh=new wn,Eh.setAttribute(\"position\",new un([0,0,0,0,1,0],3)),Ah=new Ia(0,.5,1,5,1),Ah.translate(0,-.5,0)),this.position.copy(e),this.line=new ga(Eh,new ha({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Gn(Ah,new Ke({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Th.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Th,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=Rc,t.AudioAnalyser=Nc,t.AudioContext=vc,t.AudioListener=class extends Pe{constructor(){super(),this.type=\"AudioListener\",this.context=vc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new wc}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Tc,Ec,Ac),Lc.set(0,0,-1).applyQuaternion(Ec),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Tc.x,t),e.positionY.linearRampToValueAtTime(Tc.y,t),e.positionZ.linearRampToValueAtTime(Tc.z,t),e.forwardX.linearRampToValueAtTime(Lc.x,t),e.forwardY.linearRampToValueAtTime(Lc.y,t),e.forwardZ.linearRampToValueAtTime(Lc.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Tc.x,Tc.y,Tc.z),e.setOrientation(Lc.x,Lc.y,Lc.z,n.x,n.y,n.z)}},t.AudioLoader=yc,t.AxesHelper=Lh,t.AxisHelper=function(t){return console.warn(\"THREE.AxisHelper has been renamed to THREE.AxesHelper.\"),new Lh(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return console.warn(\"THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.\"),new Il(t)},t.Bone=ta,t.BooleanKeyframeTrack=gl,t.BoundingBoxHelper=function(t,e){return console.warn(\"THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.\"),new Sh(t,e)},t.Box2=nh,t.Box3=Dt,t.Box3Helper=class extends xa{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new wn;i.setIndex(new en(n,1)),i.setAttribute(\"position\",new un([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new ha({color:e,toneMapped:!1})),this.box=t,this.type=\"Box3Helper\",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=Vn,t.BoxGeometry=Vn,t.BoxHelper=Sh,t.BufferAttribute=en,t.BufferGeometry=wn,t.BufferGeometryLoader=lc,t.ByteType=1010,t.Cache=Tl,t.Camera=Yn,t.CameraHelper=class extends xa{constructor(t){const e=new wn,n=new ha({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new Qe(16755200),o=new Qe(16711680),l=new Qe(43775),c=new Qe(16777215),h=new Qe(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u(\"n1\",\"n2\",a),u(\"n2\",\"n4\",a),u(\"n4\",\"n3\",a),u(\"n3\",\"n1\",a),u(\"f1\",\"f2\",a),u(\"f2\",\"f4\",a),u(\"f4\",\"f3\",a),u(\"f3\",\"f1\",a),u(\"n1\",\"f1\",a),u(\"n2\",\"f2\",a),u(\"n3\",\"f3\",a),u(\"n4\",\"f4\",a),u(\"p\",\"n1\",o),u(\"p\",\"n2\",o),u(\"p\",\"n3\",o),u(\"p\",\"n4\",o),u(\"u1\",\"u2\",l),u(\"u2\",\"u3\",l),u(\"u3\",\"u1\",l),u(\"c\",\"t\",c),u(\"p\",\"c\",h),u(\"cn1\",\"cn2\",h),u(\"cn3\",\"cn4\",h),u(\"cf1\",\"cf2\",h),u(\"cf3\",\"cf4\",h),e.setAttribute(\"position\",new un(i,3)),e.setAttribute(\"color\",new un(r,3)),super(e,n),this.type=\"CameraHelper\",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;bh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),Mh(\"c\",e,t,bh,0,0,-1),Mh(\"t\",e,t,bh,0,0,1),Mh(\"n1\",e,t,bh,-1,-1,-1),Mh(\"n2\",e,t,bh,1,-1,-1),Mh(\"n3\",e,t,bh,-1,1,-1),Mh(\"n4\",e,t,bh,1,1,-1),Mh(\"f1\",e,t,bh,-1,-1,1),Mh(\"f2\",e,t,bh,1,-1,1),Mh(\"f3\",e,t,bh,-1,1,1),Mh(\"f4\",e,t,bh,1,1,1),Mh(\"u1\",e,t,bh,.7,1.1,-1),Mh(\"u2\",e,t,bh,-.7,1.1,-1),Mh(\"u3\",e,t,bh,0,2,-1),Mh(\"cf1\",e,t,bh,-1,0,1),Mh(\"cf2\",e,t,bh,1,0,1),Mh(\"cf3\",e,t,bh,0,-1,1),Mh(\"cf4\",e,t,bh,0,1,1),Mh(\"cn1\",e,t,bh,-1,0,-1),Mh(\"cn2\",e,t,bh,1,0,-1),Mh(\"cn3\",e,t,bh,0,-1,-1),Mh(\"cn4\",e,t,bh,0,1,-1),t.getAttribute(\"position\").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){console.error(\"THREE.CanvasRenderer has been removed\")},t.CanvasTexture=Ca,t.CatmullRomCurve3=Za,t.CineonToneMapping=3,t.CircleBufferGeometry=Da,t.CircleGeometry=Da,t.ClampToEdgeWrapping=u,t.Clock=wc,t.Color=Qe,t.ColorKeyframeTrack=vl,t.CompressedTexture=Ra,t.CompressedTextureLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new Ra,o=new Cl(this.manager);o.setPath(this.path),o.setResponseType(\"arraybuffer\"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)c(e);else o.load(t,(function(t){const n=r.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),s[e].format=n.format,s[e].width=n.width,s[e].height=n.height}a.image=s}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=g),a.format=n.format,a.needsUpdate=!0,e&&e(a)}),n,i);return a}},t.ConeBufferGeometry=Na,t.ConeGeometry=Na,t.CubeCamera=Qn,t.CubeReflectionMapping=r,t.CubeRefractionMapping=s,t.CubeTexture=Kn,t.CubeTextureLoader=Dl,t.CubeUVReflectionMapping=l,t.CubeUVRefractionMapping=c,t.CubicBezierCurve=to,t.CubicBezierCurve3=eo,t.CubicInterpolant=dl,t.CullFaceBack=1,t.CullFaceFront=2,t.CullFaceFrontBack=3,t.CullFaceNone=0,t.Curve=ka,t.CurvePath=Bl,t.CustomBlending=5,t.CustomToneMapping=5,t.CylinderBufferGeometry=Ia,t.CylinderGeometry=Ia,t.Cylindrical=class{constructor(t=1,e=0,n=0){return this.radius=t,this.theta=e,this.y=n,this}set(t,e,n){return this.radius=t,this.theta=e,this.y=n,this}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}clone(){return(new this.constructor).copy(this)}},t.DataTexture=ea,t.DataTexture2DArray=Ai,t.DataTexture3D=Li,t.DataTextureLoader=Il,t.DataUtils=class{static toHalfFloat(t){Rh[0]=t;const e=Ch[0];let n=e>>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=Al,t.DepthFormat=A,t.DepthStencilFormat=L,t.DepthTexture=Pa,t.DirectionalLight=$l,t.DirectionalLightHelper=class extends Pe{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new wn;i.setAttribute(\"position\",new un([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new ha({fog:!1,toneMapped:!1});this.lightPlane=new ga(i,r),this.add(this.lightPlane),i=new wn,i.setAttribute(\"position\",new un([0,0,0,0,0,1],3)),this.targetLine=new ga(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){vh.setFromMatrixPosition(this.light.matrixWorld),yh.setFromMatrixPosition(this.light.target.matrixWorld),xh.subVectors(yh,vh),this.lightPlane.lookAt(yh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(yh),this.targetLine.scale.z=xh.length()}},t.DiscreteInterpolant=ml,t.DodecahedronBufferGeometry=za,t.DodecahedronGeometry=za,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return console.warn(\"THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.\"),new en(t,e).setUsage(nt)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=nt,t.DynamicReadUsage=35049,t.EdgesGeometry=Ga,t.EdgesHelper=function(t,e){return console.warn(\"THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.\"),new xa(new Ga(t.geometry),new ha({color:void 0!==e?e:16777215}))},t.EllipseCurve=Va,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=ge,t.EventDispatcher=rt,t.ExtrudeBufferGeometry=Fo,t.ExtrudeGeometry=Fo,t.FaceColors=1,t.FileLoader=Cl,t.FlatShading=1,t.Float16BufferAttribute=hn,t.Float32Attribute=function(t,e){return console.warn(\"THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.\"),new un(t,e)},t.Float32BufferAttribute=un,t.Float64Attribute=function(t,e){return console.warn(\"THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.\"),new dn(t,e)},t.Float64BufferAttribute=dn,t.FloatType=M,t.Fog=Ss,t.FogExp2=ws,t.Font=mc,t.FontLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Cl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(t){let n;try{n=JSON.parse(t)}catch(e){console.warn(\"THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.\"),n=JSON.parse(t.substring(65,t.length-2))}const i=r.parse(n);e&&e(i)}),n,i)}parse(t){return new mc(t)}},t.FrontSide=0,t.Frustum=ai,t.GLBufferAttribute=Kc,t.GLSL1=\"100\",t.GLSL3=it,t.GammaEncoding=J,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=gh,t.Group=gs,t.HalfFloatType=w,t.HemisphereLight=Hl,t.HemisphereLightHelper=class extends Pe{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new Go(e);i.rotateY(.5*Math.PI),this.material=new Ke({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute(\"position\"),s=new Float32Array(3*r.count);i.setAttribute(\"color\",new en(s,3)),this.add(new Gn(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute(\"color\");mh.copy(this.light.color),fh.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?mh:fh;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=!0}t.lookAt(ph.setFromMatrixPosition(this.light.matrixWorld).negate())}},t.HemisphereLightProbe=xc,t.IcosahedronBufferGeometry=Ho,t.IcosahedronGeometry=Ho,t.ImageBitmapLoader=dc,t.ImageLoader=Pl,t.ImageUtils=_t,t.ImmediateRenderObject=ah,t.IncrementStencilOp=7682,t.IncrementWrapStencilOp=34055,t.InstancedBufferAttribute=oc,t.InstancedBufferGeometry=ac,t.InstancedInterleavedBuffer=Qc,t.InstancedMesh=ca,t.Int16Attribute=function(t,e){return console.warn(\"THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.\"),new an(t,e)},t.Int16BufferAttribute=an,t.Int32Attribute=function(t,e){return console.warn(\"THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.\"),new ln(t,e)},t.Int32BufferAttribute=ln,t.Int8Attribute=function(t,e){return console.warn(\"THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.\"),new nn(t,e)},t.Int8BufferAttribute=nn,t.IntType=1013,t.InterleavedBuffer=Es,t.InterleavedBufferAttribute=Ls,t.Interpolant=ul,t.InterpolateDiscrete=H,t.InterpolateLinear=U,t.InterpolateSmooth=G,t.InvertStencilOp=5386,t.JSONLoader=function(){console.error(\"THREE.JSONLoader has been removed.\")},t.KeepStencilOp=tt,t.KeyframeTrack=fl,t.LOD=Xs,t.LatheBufferGeometry=Uo,t.LatheGeometry=Uo,t.Layers=ve,t.LensFlare=function(){console.error(\"THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js\")},t.LessDepth=2,t.LessEqualDepth=3,t.LessEqualStencilFunc=515,t.LessStencilFunc=513,t.Light=Ol,t.LightProbe=ic,t.Line=ga,t.Line3=sh,t.LineBasicMaterial=ha,t.LineCurve=no,t.LineCurve3=io,t.LineDashedMaterial=ll,t.LineLoop=_a,t.LinePieces=1,t.LineSegments=xa,t.LineStrip=0,t.LinearEncoding=X,t.LinearFilter=g,t.LinearInterpolant=pl,t.LinearMipMapLinearFilter=1008,t.LinearMipMapNearestFilter=1007,t.LinearMipmapLinearFilter=y,t.LinearMipmapNearestFilter=v,t.LinearToneMapping=1,t.Loader=Ll,t.LoaderUtils=sc,t.LoadingManager=El,t.LogLuvEncoding=3003,t.LoopOnce=2200,t.LoopPingPong=2202,t.LoopRepeat=2201,t.LuminanceAlphaFormat=1025,t.LuminanceFormat=1024,t.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},t.Material=We,t.MaterialLoader=rc,t.Math=gt,t.MathUtils=gt,t.Matrix3=yt,t.Matrix4=ae,t.MaxEquation=104,t.Mesh=Gn,t.MeshBasicMaterial=Ke,t.MeshDepthMaterial=cs,t.MeshDistanceMaterial=hs,t.MeshFaceMaterial=function(t){return console.warn(\"THREE.MeshFaceMaterial has been removed. Use an Array instead.\"),t},t.MeshLambertMaterial=al,t.MeshMatcapMaterial=ol,t.MeshNormalMaterial=sl,t.MeshPhongMaterial=il,t.MeshPhysicalMaterial=nl,t.MeshStandardMaterial=el,t.MeshToonMaterial=rl,t.MinEquation=103,t.MirroredRepeatWrapping=d,t.MixOperation=1,t.MultiMaterial=function(t=[]){return console.warn(\"THREE.MultiMaterial has been removed. Use an Array instead.\"),t.isMultiMaterial=!0,t.materials=t,t.clone=function(){return t.slice()},t},t.MultiplyBlending=4,t.MultiplyOperation=0,t.NearestFilter=p,t.NearestMipMapLinearFilter=1005,t.NearestMipMapNearestFilter=1004,t.NearestMipmapLinearFilter=f,t.NearestMipmapNearestFilter=m,t.NeverDepth=0,t.NeverStencilFunc=512,t.NoBlending=0,t.NoColors=0,t.NoToneMapping=0,t.NormalAnimationBlendMode=j,t.NormalBlending=1,t.NotEqualDepth=7,t.NotEqualStencilFunc=517,t.NumberKeyframeTrack=yl,t.Object3D=Pe,t.ObjectLoader=class extends Ll{constructor(t){super(t)}load(t,e,n,i){const r=this,s=\"\"===this.path?sc.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new Cl(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,(function(n){let s=null;try{s=JSON.parse(n)}catch(e){return void 0!==i&&i(e),void console.error(\"THREE:ObjectLoader: Can't parse \"+t+\".\",e.message)}const a=s.metadata;void 0!==a&&void 0!==a.type&&\"geometry\"!==a.type.toLowerCase()?r.parse(s,e):console.error(\"THREE.ObjectLoader: Can't load \"+t)}),n,i)}async loadAsync(t,e){const n=\"\"===this.path?sc.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||n;const i=new Cl(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials);const r=await i.loadAsync(t,e),s=JSON.parse(r),a=s.metadata;if(void 0===a||void 0===a.type||\"geometry\"===a.type.toLowerCase())throw new Error(\"THREE.ObjectLoader: Can't load \"+t);return await this.parseAsync(s)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),r=this.parseGeometries(t.geometries,i),s=this.parseImages(t.images,(function(){void 0!==e&&e(l)})),a=this.parseTextures(t.textures,s),o=this.parseMaterials(t.materials,a),l=this.parseObject(t.object,r,o,a,n),c=this.parseSkeletons(t.skeletons,l);if(this.bindSkeletons(l,c),void 0!==e){let t=!1;for(const e in s)if(s[e]instanceof HTMLImageElement){t=!0;break}!1===t&&e(l)}return l}async parseAsync(t){const e=this.parseAnimations(t.animations),n=this.parseShapes(t.shapes),i=this.parseGeometries(t.geometries,n),r=await this.parseImagesAsync(t.images),s=this.parseTextures(t.textures,r),a=this.parseMaterials(t.materials,s),o=this.parseObject(t.object,i,a,s,e),l=this.parseSkeletons(t.skeletons,o);return this.bindSkeletons(o,l),o}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new Fl).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse((function(t){t.isBone&&(i[t.uuid]=t)})),void 0!==t)for(let e=0,r=t.length;e<r;e++){const r=(new ra).fromJSON(t[e],i);n[r.uuid]=r}return n}parseGeometries(t,e){const n={};if(void 0!==t){const i=new lc;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case\"BufferGeometry\":case\"InstancedBufferGeometry\":s=i.parse(a);break;case\"Geometry\":console.error(\"THREE.ObjectLoader: The legacy Geometry type is no longer supported.\");break;default:a.type in Ko?s=Ko[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${a.type}\"`)}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),!0===s.isBufferGeometry&&void 0!==a.userData&&(s.userData=a.userData),n[a.uuid]=s}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const r=new rc;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];if(\"MultiMaterial\"===s.type){const t=[];for(let e=0;e<s.materials.length;e++){const i=s.materials[e];void 0===n[i.uuid]&&(n[i.uuid]=r.parse(i)),t.push(n[i.uuid])}i[s.uuid]=t}else void 0===n[s.uuid]&&(n[s.uuid]=r.parse(s)),i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=t[n],r=wl.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this,i={};let r;function s(t){if(\"string\"==typeof t){const e=t;return function(t){return n.manager.itemStart(t),r.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t),n.manager.itemEnd(t)}))}(/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:fn(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new El(e);r=new Pl(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e],r=n.url;if(Array.isArray(r)){i[n.uuid]=[];for(let t=0,e=r.length;t<e;t++){const e=s(r[t]);null!==e&&(e instanceof HTMLImageElement?i[n.uuid].push(e):i[n.uuid].push(new ea(e.data,e.width,e.height)))}}else{const t=s(n.url);null!==t&&(i[n.uuid]=t)}}}return i}async parseImagesAsync(t){const e=this,n={};let i;async function r(t){if(\"string\"==typeof t){const n=t,r=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:fn(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){i=new Pl(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e],s=i.url;if(Array.isArray(s)){n[i.uuid]=[];for(let t=0,e=s.length;t<e;t++){const e=s[t],a=await r(e);null!==a&&(a instanceof HTMLImageElement?n[i.uuid].push(a):n[i.uuid].push(new ea(a.data,a.width,a.height)))}}else{const t=await r(i.url);null!==t&&(n[i.uuid]=t)}}}return n}parseTextures(t,e){function n(t,e){return\"number\"==typeof t?t:(console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\",t),e[t])}const i={};if(void 0!==t)for(let r=0,s=t.length;r<s;r++){const s=t[r];let a;void 0===s.image&&console.warn('THREE.ObjectLoader: No \"image\" specified for',s.uuid),void 0===e[s.image]&&console.warn(\"THREE.ObjectLoader: Undefined image\",s.image);const o=e[s.image];Array.isArray(o)?(a=new Kn(o),6===o.length&&(a.needsUpdate=!0)):(a=o&&o.data?new ea(o.data,o.width,o.height):new Mt(o),o&&(a.needsUpdate=!0)),a.uuid=s.uuid,void 0!==s.name&&(a.name=s.name),void 0!==s.mapping&&(a.mapping=n(s.mapping,cc)),void 0!==s.offset&&a.offset.fromArray(s.offset),void 0!==s.repeat&&a.repeat.fromArray(s.repeat),void 0!==s.center&&a.center.fromArray(s.center),void 0!==s.rotation&&(a.rotation=s.rotation),void 0!==s.wrap&&(a.wrapS=n(s.wrap[0],hc),a.wrapT=n(s.wrap[1],hc)),void 0!==s.format&&(a.format=s.format),void 0!==s.type&&(a.type=s.type),void 0!==s.encoding&&(a.encoding=s.encoding),void 0!==s.minFilter&&(a.minFilter=n(s.minFilter,uc)),void 0!==s.magFilter&&(a.magFilter=n(s.magFilter,uc)),void 0!==s.anisotropy&&(a.anisotropy=s.anisotropy),void 0!==s.flipY&&(a.flipY=s.flipY),void 0!==s.premultiplyAlpha&&(a.premultiplyAlpha=s.premultiplyAlpha),void 0!==s.unpackAlignment&&(a.unpackAlignment=s.unpackAlignment),i[s.uuid]=a}return i}parseObject(t,e,n,i,r){let s,a,o;function l(t){return void 0===e[t]&&console.warn(\"THREE.ObjectLoader: Undefined geometry\",t),e[t]}function c(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];void 0===n[r]&&console.warn(\"THREE.ObjectLoader: Undefined material\",r),e.push(n[r])}return e}return void 0===n[t]&&console.warn(\"THREE.ObjectLoader: Undefined material\",t),n[t]}}function h(t){return void 0===i[t]&&console.warn(\"THREE.ObjectLoader: Undefined texture\",t),i[t]}switch(t.type){case\"Scene\":s=new Ts,void 0!==t.background&&(Number.isInteger(t.background)?s.background=new Qe(t.background):s.background=h(t.background)),void 0!==t.environment&&(s.environment=h(t.environment)),void 0!==t.fog&&(\"Fog\"===t.fog.type?s.fog=new Ss(t.fog.color,t.fog.near,t.fog.far):\"FogExp2\"===t.fog.type&&(s.fog=new ws(t.fog.color,t.fog.density)));break;case\"PerspectiveCamera\":s=new Jn(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(s.focus=t.focus),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.filmGauge&&(s.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(s.filmOffset=t.filmOffset),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case\"OrthographicCamera\":s=new Ql(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case\"AmbientLight\":s=new tc(t.color,t.intensity);break;case\"DirectionalLight\":s=new $l(t.color,t.intensity);break;case\"PointLight\":s=new Zl(t.color,t.intensity,t.distance,t.decay);break;case\"RectAreaLight\":s=new ec(t.color,t.intensity,t.width,t.height);break;case\"SpotLight\":s=new jl(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case\"HemisphereLight\":s=new Hl(t.color,t.groundColor,t.intensity);break;case\"LightProbe\":s=(new ic).fromJSON(t);break;case\"SkinnedMesh\":a=l(t.geometry),o=c(t.material),s=new $s(a,o),void 0!==t.bindMode&&(s.bindMode=t.bindMode),void 0!==t.bindMatrix&&s.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(s.skeleton=t.skeleton);break;case\"Mesh\":a=l(t.geometry),o=c(t.material),s=new Gn(a,o);break;case\"InstancedMesh\":a=l(t.geometry),o=c(t.material);const e=t.count,n=t.instanceMatrix,i=t.instanceColor;s=new ca(a,o,e),s.instanceMatrix=new en(new Float32Array(n.array),16),void 0!==i&&(s.instanceColor=new en(new Float32Array(i.array),i.itemSize));break;case\"LOD\":s=new Xs;break;case\"Line\":s=new ga(l(t.geometry),c(t.material));break;case\"LineLoop\":s=new _a(l(t.geometry),c(t.material));break;case\"LineSegments\":s=new xa(l(t.geometry),c(t.material));break;case\"PointCloud\":case\"Points\":s=new Ea(l(t.geometry),c(t.material));break;case\"Sprite\":s=new Vs(c(t.material));break;case\"Group\":s=new gs;break;case\"Bone\":s=new ta;break;default:s=new Pe}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(s.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(s.matrixAutoUpdate=t.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(s.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.frustumCulled&&(s.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(s.renderOrder=t.renderOrder),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.layers&&(s.layers.mask=t.layers),void 0!==t.children){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if(\"LOD\"===t.type){void 0!==t.autoUpdate&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=s.getObjectByProperty(\"uuid\",n.object);void 0!==i&&s.addLevel(i,n.distance)}}return s}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse((function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\",t.skeleton):t.bind(n,t.bindMatrix)}}))}setTexturePath(t){return console.warn(\"THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().\"),this.setResourcePath(t)}},t.ObjectSpaceNormalMap=1,t.OctahedronBufferGeometry=Go,t.OctahedronGeometry=Go,t.OneFactor=201,t.OneMinusDstAlphaFactor=207,t.OneMinusDstColorFactor=209,t.OneMinusSrcAlphaFactor=205,t.OneMinusSrcColorFactor=203,t.OrthographicCamera=Ql,t.PCFShadowMap=1,t.PCFSoftShadowMap=2,t.PMREMGenerator=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._blurMaterial=function(t){const e=new Float32Array(t),n=new Rt(0,1,0);return new tl({name:\"SphericalGaussianBlur\",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n},inputEncoding:{value:Bh[3e3]},outputEncoding:{value:Bh[3e3]}},vertexShader:tu(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t${eu()}\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include <cube_uv_reflection_fragment>\\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tgl_FragColor = linearToOutputTexel( gl_FragColor );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:0,depthTest:!1,depthWrite:!1})}(Nh),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Vh=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=$h(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=Kh(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t<Hh.length;t++)Hh[t].dispose()}_cleanup(t){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(Vh),t.scissorTest=!1,Qh(t,0,0,t.width,t.height)}_fromTexture(t){Vh=this._renderer.getRenderTarget();const e=this._allocateTargets(t);return this._textureToCubeUV(t,e),this._applyPMREM(e),this._cleanup(e),e}_allocateTargets(t){const e={magFilter:p,minFilter:p,generateMipmaps:!1,type:x,format:1023,encoding:Yh(t)?t.encoding:Z,depthBuffer:!1},n=Zh(e);return n.depthBuffer=!t,this._pingPongRenderTarget=Zh(e),n}_compileMaterial(t){const e=new Gn(Hh[0],t);this._renderer.compile(e,Oh)}_sceneToCubeUV(t,e,n,i){const r=new Jn(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.outputEncoding,h=o.toneMapping;o.getClearColor(kh),o.toneMapping=0,o.outputEncoding=X,o.autoClear=!1;let u=!1;const d=t.background;if(d){if(d.isColor){zh.color.copy(d).convertSRGBToLinear(),t.background=null;const e=Xh(zh.color);zh.opacity=e,u=!0}}else{zh.color.copy(kh).convertSRGBToLinear();const t=Xh(zh.color);zh.opacity=t,u=!0}for(let e=0;e<6;e++){const n=e%3;0==n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1==n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e])),Qh(i,n*Ph,e>2?Ph:0,Ph,Ph),o.setRenderTarget(i),u&&o.render(Fh,r),o.render(t,r)}o.toneMapping=h,o.outputEncoding=c,o.autoClear=l}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=$h()):null==this._equirectShader&&(this._equirectShader=Kh());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,r=new Gn(Hh[0],i),s=i.uniforms;s.envMap.value=t,t.isCubeTexture||s.texelSize.value.set(1/t.image.width,1/t.image.height),s.inputEncoding.value=Bh[t.encoding],s.outputEncoding.value=Bh[e.texture.encoding],Qh(e,0,0,3*Ph,2*Ph),n.setRenderTarget(e),n.render(r,Oh)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;e<Ih;e++){const n=Math.sqrt(Gh[e]*Gh[e]-Gh[e-1]*Gh[e-1]),i=qh[(e-1)%qh.length];this._blur(t,e-1,e,n,i)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,\"latitudinal\",r),this._halfBlur(s,t,n,n,i,\"longitudinal\",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer,l=this._blurMaterial;\"latitudinal\"!==s&&\"longitudinal\"!==s&&console.error(\"blur direction must be either latitudinal or longitudinal!\");const c=new Gn(Hh[i],l),h=l.uniforms,u=Uh[n]-1,d=isFinite(r)?Math.PI/(2*u):2*Math.PI/39,p=r/d,m=isFinite(r)?1+Math.floor(3*p):Nh;m>Nh&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;t<Nh;++t){const e=t/p,n=Math.exp(-e*e/2);f.push(n),0==t?g+=n:t<m&&(g+=2*n)}for(let t=0;t<f.length;t++)f[t]=f[t]/g;h.envMap.value=t.texture,h.samples.value=m,h.weights.value=f,h.latitudinal.value=\"latitudinal\"===s,a&&(h.poleAxis.value=a),h.dTheta.value=d,h.mipInt.value=8-n,h.inputEncoding.value=Bh[t.texture.encoding],h.outputEncoding.value=Bh[t.texture.encoding];const v=Uh[i];Qh(e,3*Math.max(0,Ph-2*v),(0===i?0:2*Ph)+2*v*(i>4?i-8+4:0),3*v,2*v),o.setRenderTarget(e),o.render(c,Oh)}},t.ParametricBufferGeometry=ko,t.ParametricGeometry=ko,t.Particle=function(t){return console.warn(\"THREE.Particle has been renamed to THREE.Sprite.\"),new Vs(t)},t.ParticleBasicMaterial=function(t){return console.warn(\"THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.\"),new ba(t)},t.ParticleSystem=function(t,e){return console.warn(\"THREE.ParticleSystem has been renamed to THREE.Points.\"),new Ea(t,e)},t.ParticleSystemMaterial=function(t){return console.warn(\"THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.\"),new ba(t)},t.Path=zl,t.PerspectiveCamera=Jn,t.Plane=ii,t.PlaneBufferGeometry=ci,t.PlaneGeometry=ci,t.PlaneHelper=class extends ga{constructor(t,e=1,n=16776960){const i=n,r=new wn;r.setAttribute(\"position\",new un([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),super(r,new ha({color:i,toneMapped:!1})),this.type=\"PlaneHelper\",this.plane=t,this.size=e;const s=new wn;s.setAttribute(\"position\",new un([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),s.computeBoundingSphere(),this.add(new Gn(s,new Ke({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){let e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),super.updateMatrixWorld(t)}},t.PointCloud=function(t,e){return console.warn(\"THREE.PointCloud has been renamed to THREE.Points.\"),new Ea(t,e)},t.PointCloudMaterial=function(t){return console.warn(\"THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.\"),new ba(t)},t.PointLight=Zl,t.PointLightHelper=class extends Gn{constructor(t,e,n){super(new jo(e,4,2),new Ke({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.light.updateMatrixWorld(),this.color=n,this.type=\"PointLightHelper\",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},t.Points=Ea,t.PointsMaterial=ba,t.PolarGridHelper=class extends xa{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new Qe(r),s=new Qe(s);const a=[],o=[];for(let n=0;n<=e;n++){const i=n/e*(2*Math.PI),l=Math.sin(i)*t,c=Math.cos(i)*t;a.push(0,0,0),a.push(l,0,c);const h=1&n?r:s;o.push(h.r,h.g,h.b),o.push(h.r,h.g,h.b)}for(let e=0;e<=n;e++){const l=1&e?r:s,c=t-t/n*e;for(let t=0;t<i;t++){let e=t/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c;a.push(n,0,r),o.push(l.r,l.g,l.b),e=(t+1)/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c,a.push(n,0,r),o.push(l.r,l.g,l.b)}}const l=new wn;l.setAttribute(\"position\",new un(a,3)),l.setAttribute(\"color\",new un(o,3));super(l,new ha({vertexColors:!0,toneMapped:!1})),this.type=\"PolarGridHelper\"}},t.PolyhedronBufferGeometry=Ba,t.PolyhedronGeometry=Ba,t.PositionalAudio=class extends Rc{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel=\"HRTF\",this.panner.connect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(Cc,Pc,Dc),Ic.set(0,0,1).applyQuaternion(Pc);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(Cc.x,t),e.positionY.linearRampToValueAtTime(Cc.y,t),e.positionZ.linearRampToValueAtTime(Cc.z,t),e.orientationX.linearRampToValueAtTime(Ic.x,t),e.orientationY.linearRampToValueAtTime(Ic.y,t),e.orientationZ.linearRampToValueAtTime(Ic.z,t)}else e.setPosition(Cc.x,Cc.y,Cc.z),e.setOrientation(Ic.x,Ic.y,Ic.z)}},t.PropertyBinding=qc,t.PropertyMixer=Bc,t.QuadraticBezierCurve=ro,t.QuadraticBezierCurve3=so,t.Quaternion=Lt,t.QuaternionKeyframeTrack=_l,t.QuaternionLinearInterpolant=xl,t.REVISION=e,t.RGBADepthPacking=3201,t.RGBAFormat=E,t.RGBAIntegerFormat=1033,t.RGBA_ASTC_10x10_Format=37819,t.RGBA_ASTC_10x5_Format=37816,t.RGBA_ASTC_10x6_Format=37817,t.RGBA_ASTC_10x8_Format=37818,t.RGBA_ASTC_12x10_Format=37820,t.RGBA_ASTC_12x12_Format=37821,t.RGBA_ASTC_4x4_Format=37808,t.RGBA_ASTC_5x4_Format=37809,t.RGBA_ASTC_5x5_Format=37810,t.RGBA_ASTC_6x5_Format=37811,t.RGBA_ASTC_6x6_Format=37812,t.RGBA_ASTC_8x5_Format=37813,t.RGBA_ASTC_8x6_Format=37814,t.RGBA_ASTC_8x8_Format=37815,t.RGBA_BPTC_Format=36492,t.RGBA_ETC2_EAC_Format=O,t.RGBA_PVRTC_2BPPV1_Format=z,t.RGBA_PVRTC_4BPPV1_Format=B,t.RGBA_S3TC_DXT1_Format=C,t.RGBA_S3TC_DXT3_Format=P,t.RGBA_S3TC_DXT5_Format=D,t.RGBDEncoding=$,t.RGBEEncoding=Z,t.RGBEFormat=1023,t.RGBFormat=T,t.RGBIntegerFormat=1032,t.RGBM16Encoding=K,t.RGBM7Encoding=Q,t.RGB_ETC1_Format=36196,t.RGB_ETC2_Format=F,t.RGB_PVRTC_2BPPV1_Format=N,t.RGB_PVRTC_4BPPV1_Format=I,t.RGB_S3TC_DXT1_Format=R,t.RGFormat=1030,t.RGIntegerFormat=1031,t.RawShaderMaterial=tl,t.Ray=se,t.Raycaster=class{constructor(t,e,n=0,i=1/0){this.ray=new se(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new ve,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error(\"THREE.Raycaster: Unsupported camera type: \"+e.type)}intersectObject(t,e=!1,n=[]){return th(t,this,n,e),n.sort($c),n}intersectObjects(t,e=!1,n=[]){for(let i=0,r=t.length;i<r;i++)th(t[i],this,n,e);return n.sort($c),n}},t.RectAreaLight=ec,t.RedFormat=1028,t.RedIntegerFormat=1029,t.ReinhardToneMapping=2,t.RepeatWrapping=h,t.ReplaceStencilOp=7681,t.ReverseSubtractEquation=102,t.RingBufferGeometry=Vo,t.RingGeometry=Vo,t.SRGB8_ALPHA8_ASTC_10x10_Format=37851,t.SRGB8_ALPHA8_ASTC_10x5_Format=37848,t.SRGB8_ALPHA8_ASTC_10x6_Format=37849,t.SRGB8_ALPHA8_ASTC_10x8_Format=37850,t.SRGB8_ALPHA8_ASTC_12x10_Format=37852,t.SRGB8_ALPHA8_ASTC_12x12_Format=37853,t.SRGB8_ALPHA8_ASTC_4x4_Format=37840,t.SRGB8_ALPHA8_ASTC_5x4_Format=37841,t.SRGB8_ALPHA8_ASTC_5x5_Format=37842,t.SRGB8_ALPHA8_ASTC_6x5_Format=37843,t.SRGB8_ALPHA8_ASTC_6x6_Format=37844,t.SRGB8_ALPHA8_ASTC_8x5_Format=37845,t.SRGB8_ALPHA8_ASTC_8x6_Format=37846,t.SRGB8_ALPHA8_ASTC_8x8_Format=37847,t.Scene=Ts,t.SceneUtils=nu,t.ShaderChunk=hi,t.ShaderLib=di,t.ShaderMaterial=Xn,t.ShadowMaterial=$o,t.Shape=Fl,t.ShapeBufferGeometry=Wo,t.ShapeGeometry=Wo,t.ShapePath=pc,t.ShapeUtils=No,t.ShortType=1011,t.Skeleton=ra,t.SkeletonHelper=uh,t.SkinnedMesh=$s,t.SmoothShading=2,t.Sphere=Qt,t.SphereBufferGeometry=jo,t.SphereGeometry=jo,t.Spherical=class{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(ht(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}},t.SphericalHarmonics3=nc,t.SplineCurve=ao,t.SpotLight=jl,t.SpotLightHelper=class extends Pe{constructor(t,e){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;const n=new wn,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t<n;t++,e++){const r=t/n*Math.PI*2,s=e/n*Math.PI*2;i.push(Math.cos(r),Math.sin(r),1,Math.cos(s),Math.sin(s),1)}n.setAttribute(\"position\",new un(i,3));const r=new ha({fog:!1,toneMapped:!1});this.cone=new xa(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();const t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),oh.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(oh),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}},t.Sprite=Vs,t.SpriteMaterial=Rs,t.SrcAlphaFactor=204,t.SrcAlphaSaturateFactor=210,t.SrcColorFactor=202,t.StaticCopyUsage=35046,t.StaticDrawUsage=et,t.StaticReadUsage=35045,t.StereoCamera=class{constructor(){this.type=\"StereoCamera\",this.aspect=1,this.eyeSep=.064,this.cameraL=new Jn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Jn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep;const n=t.projectionMatrix.clone(),i=e.eyeSep/2,r=i*e.near/e.focus,s=e.near*Math.tan(ot*e.fov*.5)/e.zoom;let a,o;Mc.elements[12]=-i,bc.elements[12]=i,a=-s*e.aspect+r,o=s*e.aspect+r,n.elements[0]=2*e.near/(o-a),n.elements[8]=(o+a)/(o-a),this.cameraL.projectionMatrix.copy(n),a=-s*e.aspect-r,o=s*e.aspect-r,n.elements[0]=2*e.near/(o-a),n.elements[8]=(o+a)/(o-a),this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(Mc),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(bc)}},t.StreamCopyUsage=35042,t.StreamDrawUsage=35040,t.StreamReadUsage=35041,t.StringKeyframeTrack=bl,t.SubtractEquation=101,t.SubtractiveBlending=3,t.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},t.TangentSpaceNormalMap=0,t.TetrahedronBufferGeometry=qo,t.TetrahedronGeometry=qo,t.TextBufferGeometry=Xo,t.TextGeometry=Xo,t.Texture=Mt,t.TextureLoader=Nl,t.TorusBufferGeometry=Yo,t.TorusGeometry=Yo,t.TorusKnotBufferGeometry=Jo,t.TorusKnotGeometry=Jo,t.Triangle=ke,t.TriangleFanDrawMode=2,t.TriangleStripDrawMode=1,t.TrianglesDrawMode=0,t.TubeBufferGeometry=Zo,t.TubeGeometry=Zo,t.UVMapping=i,t.Uint16Attribute=function(t,e){return console.warn(\"THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.\"),new on(t,e)},t.Uint16BufferAttribute=on,t.Uint32Attribute=function(t,e){return console.warn(\"THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.\"),new cn(t,e)},t.Uint32BufferAttribute=cn,t.Uint8Attribute=function(t,e){return console.warn(\"THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.\"),new rn(t,e)},t.Uint8BufferAttribute=rn,t.Uint8ClampedAttribute=function(t,e){return console.warn(\"THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.\"),new sn(t,e)},t.Uint8ClampedBufferAttribute=sn,t.Uniform=Zc,t.UniformsLib=ui,t.UniformsUtils=qn,t.UnsignedByteType=x,t.UnsignedInt248Type=S,t.UnsignedIntType=b,t.UnsignedShort4444Type=1017,t.UnsignedShort5551Type=1018,t.UnsignedShort565Type=1019,t.UnsignedShortType=_,t.VSMShadowMap=3,t.Vector2=vt,t.Vector3=Rt,t.Vector4=St,t.VectorKeyframeTrack=Ml,t.Vertex=function(t,e,n){return console.warn(\"THREE.Vertex has been removed. Use THREE.Vector3 instead.\"),new Rt(t,e,n)},t.VertexColors=2,t.VideoTexture=La,t.WebGL1Renderer=Ms,t.WebGLCubeRenderTarget=$n,t.WebGLMultipleRenderTargets=Et,t.WebGLMultisampleRenderTarget=At,t.WebGLRenderTarget=Tt,t.WebGLRenderTargetCube=function(t,e,n){return console.warn(\"THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).\"),new $n(t,n)},t.WebGLRenderer=bs,t.WebGLUtils=ms,t.WireframeGeometry=Qo,t.WireframeHelper=function(t,e){return console.warn(\"THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.\"),new xa(new Qo(t.geometry),new ha({color:void 0!==e?e:16777215}))},t.WrapAroundEnding=W,t.XHRLoader=function(t){return console.warn(\"THREE.XHRLoader has been renamed to THREE.FileLoader.\"),new Cl(t)},t.ZeroCurvatureEnding=k,t.ZeroFactor=200,t.ZeroSlopeEnding=V,t.ZeroStencilOp=0,t.sRGBEncoding=Y,Object.defineProperty(t,\"__esModule\",{value:!0})}\n",
       "//));\n",
       "\n",
       "  );\n",
       "}\n",
       "\n",
       "    // Project site:     https://github.com/vasturiano/3d-force-graph\n",
       "// Code source:      https://unpkg.com/3d-force-graph@1.70.5/dist/3d-force-graph.min.js - accessed on 19.11.2021\n",
       "// Original license: MIT\n",
       "// Code changes:     Commented out outermost functions\n",
       "//                   Wrapped all into a require define function\n",
       "\n",
       "if(!require.defined(\"gravis-3d-force-graph\")){\n",
       "  define(\"gravis-3d-force-graph\", [\"exports\"],\n",
       "\n",
       "// Version 1.70.5 3d-force-graph - https://github.com/vasturiano/3d-force-graph\n",
       "// !function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\n",
       "// \"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).ForceGraph3D=e()}(this,(\n",
       "function(){\"use strict\";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function e(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?t(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||function(t,e){if(!t)return;if(\"string\"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(\".graph-info-msg {\\n  top: 50%;\\n  width: 100%;\\n  text-align: center;\\n  color: lavender;\\n  opacity: 0.7;\\n  font-size: 22px;\\n  position: absolute;\\n  font-family: Sans-serif;\\n}\\n\\n.scene-container .clickable {\\n  cursor: pointer;\\n}\\n\\n.scene-container .grabbable {\\n  cursor: move;\\n  cursor: grab;\\n  cursor: -moz-grab;\\n  cursor: -webkit-grab;\\n}\\n\\n.scene-container .grabbable:active {\\n  cursor: grabbing;\\n  cursor: -moz-grabbing;\\n  cursor: -webkit-grabbing;\\n}\");const o={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},a=0,s=1,l=2,c=3,h=100,u=1e3,d=1001,p=1002,f=1003,m=1006,g=1008,v=1009,y=1012,x=1014,_=1015,b=1016,w=1020,M=1022,S=1023,E=1026,T=1027,A=2300,L=2301,C=2302,P=2400,R=2401,D=2402,I=2500,N=3e3,O=7680,k=35044,z=35048,B=\"300 es\";class F{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,r=n.length;e<r;e++)n[e].call(this,t);t.target=null}}}const U=[];for(let t=0;t<256;t++)U[t]=(t<16?\"0\":\"\")+t.toString(16);const H=Math.PI/180,V=180/Math.PI;function G(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return(U[255&t]+U[t>>8&255]+U[t>>16&255]+U[t>>24&255]+\"-\"+U[255&e]+U[e>>8&255]+\"-\"+U[e>>16&15|64]+U[e>>24&255]+\"-\"+U[63&n|128]+U[n>>8&255]+\"-\"+U[n>>16&255]+U[n>>24&255]+U[255&r]+U[r>>8&255]+U[r>>16&255]+U[r>>24&255]).toUpperCase()}function j(t,e,n){return Math.max(e,Math.min(n,t))}function W(t,e,n){return(1-n)*t+n*e}function q(t){return 0==(t&t-1)&&0!==t}function X(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}class Y{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6],this.y=r[1]*e+r[4]*n+r[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),r=Math.sin(e),i=this.x-t.x,o=this.y-t.y;return this.x=i*n-o*r+t.x,this.y=i*r+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}Y.prototype.isVector2=!0;class Z{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,r,i,o,a,s,l){const c=this.elements;return c[0]=t,c[1]=r,c[2]=a,c[3]=e,c[4]=i,c[5]=s,c[6]=n,c[7]=o,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,r=e.elements,i=this.elements,o=n[0],a=n[3],s=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],f=r[0],m=r[3],g=r[6],v=r[1],y=r[4],x=r[7],_=r[2],b=r[5],w=r[8];return i[0]=o*f+a*v+s*_,i[3]=o*m+a*y+s*b,i[6]=o*g+a*x+s*w,i[1]=l*f+c*v+h*_,i[4]=l*m+c*y+h*b,i[7]=l*g+c*x+h*w,i[2]=u*f+d*v+p*_,i[5]=u*m+d*y+p*b,i[8]=u*g+d*x+p*w,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8];return e*o*c-e*a*l-n*i*c+n*a*s+r*i*l-r*o*s}invert(){const t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8],h=c*o-a*l,u=a*s-c*i,d=l*i-o*s,p=e*h+n*u+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=h*f,t[1]=(r*l-c*n)*f,t[2]=(a*n-r*o)*f,t[3]=u*f,t[4]=(c*e-r*s)*f,t[5]=(r*i-a*e)*f,t[6]=d*f,t[7]=(n*s-l*e)*f,t[8]=(o*e-n*i)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,r,i,o,a){const s=Math.cos(i),l=Math.sin(i);return this.set(n*s,n*l,-n*(s*o+l*a)+o+t,-r*l,r*s,-r*(-l*o+s*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),r=this.elements,i=r[0],o=r[3],a=r[6],s=r[1],l=r[4],c=r[7];return r[0]=e*i+n*s,r[3]=e*o+n*l,r[6]=e*a+n*c,r[1]=-n*i+e*s,r[4]=-n*o+e*l,r[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}let J;Z.prototype.isMatrix3=!0;class ${static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if(\"undefined\"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===J&&(J=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")),J.width=t.width,J.height=t.height;const n=J.getContext(\"2d\");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=J}return e.width>2048||e.height>2048?(console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",t),e.toDataURL(\"image/jpeg\",.6)):e.toDataURL(\"image/png\")}}let Q=0;class K extends F{constructor(t=K.DEFAULT_IMAGE,e=K.DEFAULT_MAPPING,n=1001,r=1001,i=1006,o=1008,a=1023,s=1009,l=1,c=3e3){super(),Object.defineProperty(this,\"id\",{value:Q++}),this.uuid=G(),this.name=\"\",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=r,this.magFilter=i,this.minFilter=o,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=s,this.offset=new Y(0,0),this.repeat=new Y(1,1),this.center=new Y(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Z,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||\"string\"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const r=this.image;if(void 0===r.uuid&&(r.uuid=G()),!e&&void 0===t.images[r.uuid]){let e;if(Array.isArray(r)){e=[];for(let t=0,n=r.length;t<n;t++)r[t].isDataTexture?e.push(tt(r[t].image)):e.push(tt(r[t]))}else e=tt(r);t.images[r.uuid]={uuid:r.uuid,url:e}}n.image=r.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case u:t.x=t.x-Math.floor(t.x);break;case d:t.x=t.x<0?0:1;break;case p:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case u:t.y=t.y-Math.floor(t.y);break;case d:t.y=t.y<0?0:1;break;case p:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function tt(t){return\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap?$.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn(\"THREE.Texture: Unable to serialize Texture.\"),{})}K.DEFAULT_IMAGE=void 0,K.DEFAULT_MAPPING=300,K.prototype.isTexture=!0;class et{constructor(t=0,e=0,n=0,r=1){this.x=t,this.y=e,this.z=n,this.w=r}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,r){return this.x=t,this.y=e,this.z=n,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,r=this.z,i=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*r+o[12]*i,this.y=o[1]*e+o[5]*n+o[9]*r+o[13]*i,this.z=o[2]*e+o[6]*n+o[10]*r+o[14]*i,this.w=o[3]*e+o[7]*n+o[11]*r+o[15]*i,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,r,i;const o=.01,a=.1,s=t.elements,l=s[0],c=s[4],h=s[8],u=s[1],d=s[5],p=s[9],f=s[2],m=s[6],g=s[10];if(Math.abs(c-u)<o&&Math.abs(h-f)<o&&Math.abs(p-m)<o){if(Math.abs(c+u)<a&&Math.abs(h+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,s=(d+1)/2,v=(g+1)/2,y=(c+u)/4,x=(h+f)/4,_=(p+m)/4;return t>s&&t>v?t<o?(n=0,r=.707106781,i=.707106781):(n=Math.sqrt(t),r=y/n,i=x/n):s>v?s<o?(n=.707106781,r=0,i=.707106781):(r=Math.sqrt(s),n=y/r,i=_/r):v<o?(n=.707106781,r=.707106781,i=0):(i=Math.sqrt(v),n=x/i,r=_/i),this.set(n,r,i,e),this}let v=Math.sqrt((m-p)*(m-p)+(h-f)*(h-f)+(u-c)*(u-c));return Math.abs(v)<.001&&(v=1),this.x=(m-p)/v,this.y=(h-f)/v,this.z=(u-c)/v,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}et.prototype.isVector4=!0;class nt extends F{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new et(0,0,t,e),this.scissorTest=!1,this.viewport=new et(0,0,t,e),this.texture=new K(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:m,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}nt.prototype.isWebGLRenderTarget=!0;(class extends nt{constructor(t,e,n){super(t,e);const r=this.texture;this.texture=[];for(let t=0;t<n;t++)this.texture[t]=r.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let r=0,i=this.texture.length;r<i;r++)this.texture[r].image.width=t,this.texture[r].image.height=e,this.texture[r].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}).prototype.isWebGLMultipleRenderTargets=!0;class rt extends nt{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}rt.prototype.isWebGLMultisampleRenderTarget=!0;class it{constructor(t=0,e=0,n=0,r=1){this._x=t,this._y=e,this._z=n,this._w=r}static slerp(t,e,n,r){return console.warn(\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\"),n.slerpQuaternions(t,e,r)}static slerpFlat(t,e,n,r,i,o,a){let s=n[r+0],l=n[r+1],c=n[r+2],h=n[r+3];const u=i[o+0],d=i[o+1],p=i[o+2],f=i[o+3];if(0===a)return t[e+0]=s,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=f);if(h!==f||s!==u||l!==d||c!==p){let t=1-a;const e=s*u+l*d+c*p+h*f,n=e>=0?1:-1,r=1-e*e;if(r>Number.EPSILON){const i=Math.sqrt(r),o=Math.atan2(i,e*n);t=Math.sin(t*o)/i,a=Math.sin(a*o)/i}const i=a*n;if(s=s*t+u*i,l=l*t+d*i,c=c*t+p*i,h=h*t+f*i,t===1-a){const t=1/Math.sqrt(s*s+l*l+c*c+h*h);s*=t,l*=t,c*=t,h*=t}}t[e]=s,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,r,i,o){const a=n[r],s=n[r+1],l=n[r+2],c=n[r+3],h=i[o],u=i[o+1],d=i[o+2],p=i[o+3];return t[e]=a*p+c*h+s*d-l*u,t[e+1]=s*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-s*h,t[e+3]=c*p-a*h-s*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");const n=t._x,r=t._y,i=t._z,o=t._order,a=Math.cos,s=Math.sin,l=a(n/2),c=a(r/2),h=a(i/2),u=s(n/2),d=s(r/2),p=s(i/2);switch(o){case\"XYZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"YXZ\":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"ZXY\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case\"ZYX\":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case\"YZX\":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case\"XZY\":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+o)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],r=e[4],i=e[8],o=e[1],a=e[5],s=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-s)*t,this._y=(i-l)*t,this._z=(o-r)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-s)/t,this._x=.25*t,this._y=(r+o)/t,this._z=(i+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(i-l)/t,this._x=(r+o)/t,this._y=.25*t,this._z=(s+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(o-r)/t,this._x=(i+l)/t,this._y=(s+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(j(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const r=Math.min(1,e/n);return this.slerp(t,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,r=t._y,i=t._z,o=t._w,a=e._x,s=e._y,l=e._z,c=e._w;return this._x=n*c+o*a+r*l-i*s,this._y=r*c+o*s+i*a-n*l,this._z=i*c+o*l+n*s-r*a,this._w=o*c-n*a-r*s-i*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,r=this._y,i=this._z,o=this._w;let a=o*t._w+n*t._x+r*t._y+i*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=r,this._z=i,this;const s=1-a*a;if(s<=Number.EPSILON){const t=1-e;return this._w=t*o+e*this._w,this._x=t*n+e*this._x,this._y=t*r+e*this._y,this._z=t*i+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(s),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=o*h+this._w*u,this._x=n*h+this._x*u,this._y=r*h+this._y*u,this._z=i*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}it.prototype.isQuaternion=!0;class ot{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),this.applyQuaternion(st.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(st.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,r=this.z,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6]*r,this.y=i[1]*e+i[4]*n+i[7]*r,this.z=i[2]*e+i[5]*n+i[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,r=this.z,i=t.elements,o=1/(i[3]*e+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*e+i[4]*n+i[8]*r+i[12])*o,this.y=(i[1]*e+i[5]*n+i[9]*r+i[13])*o,this.z=(i[2]*e+i[6]*n+i[10]*r+i[14])*o,this}applyQuaternion(t){const e=this.x,n=this.y,r=this.z,i=t.x,o=t.y,a=t.z,s=t.w,l=s*e+o*r-a*n,c=s*n+a*e-i*r,h=s*r+i*n-o*e,u=-i*e-o*n-a*r;return this.x=l*s+u*-i+c*-a-h*-o,this.y=c*s+u*-o+h*-i-l*-a,this.z=h*s+u*-a+l*-o-c*-i,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,r=this.z,i=t.elements;return this.x=i[0]*e+i[4]*n+i[8]*r,this.y=i[1]*e+i[5]*n+i[9]*r,this.z=i[2]*e+i[6]*n+i[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,r=t.y,i=t.z,o=e.x,a=e.y,s=e.z;return this.x=r*s-i*a,this.y=i*o-n*s,this.z=n*a-r*o,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return at.copy(this).projectOnVector(t),this.sub(at)}reflect(t){return this.sub(at.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(j(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const r=Math.sin(e)*t;return this.x=r*Math.sin(n),this.y=Math.cos(e)*t,this.z=r*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}ot.prototype.isVector3=!0;const at=new ot,st=new it;class lt{constructor(t=new ot(1/0,1/0,1/0),e=new ot(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,a=-1/0;for(let s=0,l=t.length;s<l;s+=3){const l=t[s],c=t[s+1],h=t[s+2];l<e&&(e=l),c<n&&(n=c),h<r&&(r=h),l>i&&(i=l),c>o&&(o=c),h>a&&(a=h)}return this.min.set(e,n,r),this.max.set(i,o,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,a=-1/0;for(let s=0,l=t.count;s<l;s++){const l=t.getX(s),c=t.getY(s),h=t.getZ(s);l<e&&(e=l),c<n&&(n=c),h<r&&(r=h),l>i&&(i=l),c>o&&(o=c),h>a&&(a=h)}return this.min.set(e,n,r),this.max.set(i,o,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=ht.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),ut.copy(e.boundingBox),ut.applyMatrix4(t.matrixWorld),this.union(ut));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,ht),ht.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(yt),xt.subVectors(this.max,yt),dt.subVectors(t.a,yt),pt.subVectors(t.b,yt),ft.subVectors(t.c,yt),mt.subVectors(pt,dt),gt.subVectors(ft,pt),vt.subVectors(dt,ft);let e=[0,-mt.z,mt.y,0,-gt.z,gt.y,0,-vt.z,vt.y,mt.z,0,-mt.x,gt.z,0,-gt.x,vt.z,0,-vt.x,-mt.y,mt.x,0,-gt.y,gt.x,0,-vt.y,vt.x,0];return!!wt(e,dt,pt,ft,xt)&&(e=[1,0,0,0,1,0,0,0,1],!!wt(e,dt,pt,ft,xt)&&(_t.crossVectors(mt,gt),e=[_t.x,_t.y,_t.z],wt(e,dt,pt,ft,xt)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return ht.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(ht).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(ct[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ct[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ct[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ct[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ct[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ct[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ct[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ct[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ct)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}lt.prototype.isBox3=!0;const ct=[new ot,new ot,new ot,new ot,new ot,new ot,new ot,new ot],ht=new ot,ut=new lt,dt=new ot,pt=new ot,ft=new ot,mt=new ot,gt=new ot,vt=new ot,yt=new ot,xt=new ot,_t=new ot,bt=new ot;function wt(t,e,n,r,i){for(let o=0,a=t.length-3;o<=a;o+=3){bt.fromArray(t,o);const a=i.x*Math.abs(bt.x)+i.y*Math.abs(bt.y)+i.z*Math.abs(bt.z),s=e.dot(bt),l=n.dot(bt),c=r.dot(bt);if(Math.max(-Math.max(s,l,c),Math.min(s,l,c))>a)return!1}return!0}const Mt=new lt,St=new ot,Et=new ot,Tt=new ot;class At{constructor(t=new ot,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Mt.setFromPoints(t).getCenter(n);let r=0;for(let e=0,i=t.length;e<i;e++)r=Math.max(r,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(r),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Tt.subVectors(t,this.center);const e=Tt.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Tt.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return Et.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(St.copy(t.center).add(Et)),this.expandByPoint(St.copy(t.center).sub(Et)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Lt=new ot,Ct=new ot,Pt=new ot,Rt=new ot,Dt=new ot,It=new ot,Nt=new ot;class Ot{constructor(t=new ot,e=new ot(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Lt)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Lt.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Lt.copy(this.direction).multiplyScalar(e).add(this.origin),Lt.distanceToSquared(t))}distanceSqToSegment(t,e,n,r){Ct.copy(t).add(e).multiplyScalar(.5),Pt.copy(e).sub(t).normalize(),Rt.copy(this.origin).sub(Ct);const i=.5*t.distanceTo(e),o=-this.direction.dot(Pt),a=Rt.dot(this.direction),s=-Rt.dot(Pt),l=Rt.lengthSq(),c=Math.abs(1-o*o);let h,u,d,p;if(c>0)if(h=o*s-a,u=o*a-s,p=i*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+o*u+2*a)+u*(o*h+u+2*s)+l}else u=i,h=Math.max(0,-(o*u+a)),d=-h*h+u*(u+2*s)+l;else u=-i,h=Math.max(0,-(o*u+a)),d=-h*h+u*(u+2*s)+l;else u<=-p?(h=Math.max(0,-(-o*i+a)),u=h>0?-i:Math.min(Math.max(-i,-s),i),d=-h*h+u*(u+2*s)+l):u<=p?(h=0,u=Math.min(Math.max(-i,-s),i),d=u*(u+2*s)+l):(h=Math.max(0,-(o*i+a)),u=h>0?i:Math.min(Math.max(-i,-s),i),d=-h*h+u*(u+2*s)+l);else u=o>0?-i:i,h=Math.max(0,-(o*u+a)),d=-h*h+u*(u+2*s)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),r&&r.copy(Pt).multiplyScalar(u).add(Ct),d}intersectSphere(t,e){Lt.subVectors(t.center,this.origin);const n=Lt.dot(this.direction),r=Lt.dot(Lt)-n*n,i=t.radius*t.radius;if(r>i)return null;const o=Math.sqrt(i-r),a=n-o,s=n+o;return a<0&&s<0?null:a<0?this.at(s,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,r,i,o,a,s;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,r=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,r=(t.min.x-u.x)*l),c>=0?(i=(t.min.y-u.y)*c,o=(t.max.y-u.y)*c):(i=(t.max.y-u.y)*c,o=(t.min.y-u.y)*c),n>o||i>r?null:((i>n||n!=n)&&(n=i),(o<r||r!=r)&&(r=o),h>=0?(a=(t.min.z-u.z)*h,s=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,s=(t.min.z-u.z)*h),n>s||a>r?null:((a>n||n!=n)&&(n=a),(s<r||r!=r)&&(r=s),r<0?null:this.at(n>=0?n:r,e)))}intersectsBox(t){return null!==this.intersectBox(t,Lt)}intersectTriangle(t,e,n,r,i){Dt.subVectors(e,t),It.subVectors(n,t),Nt.crossVectors(Dt,It);let o,a=this.direction.dot(Nt);if(a>0){if(r)return null;o=1}else{if(!(a<0))return null;o=-1,a=-a}Rt.subVectors(this.origin,t);const s=o*this.direction.dot(It.crossVectors(Rt,It));if(s<0)return null;const l=o*this.direction.dot(Dt.cross(Rt));if(l<0)return null;if(s+l>a)return null;const c=-o*Rt.dot(Nt);return c<0?null:this.at(c/a,i)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class kt{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}set(t,e,n,r,i,o,a,s,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=r,g[1]=i,g[5]=o,g[9]=a,g[13]=s,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new kt).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,r=1/zt.setFromMatrixColumn(t,0).length(),i=1/zt.setFromMatrixColumn(t,1).length(),o=1/zt.setFromMatrixColumn(t,2).length();return e[0]=n[0]*r,e[1]=n[1]*r,e[2]=n[2]*r,e[3]=0,e[4]=n[4]*i,e[5]=n[5]*i,e[6]=n[6]*i,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||console.error(\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");const e=this.elements,n=t.x,r=t.y,i=t.z,o=Math.cos(n),a=Math.sin(n),s=Math.cos(r),l=Math.sin(r),c=Math.cos(i),h=Math.sin(i);if(\"XYZ\"===t.order){const t=o*c,n=o*h,r=a*c,i=a*h;e[0]=s*c,e[4]=-s*h,e[8]=l,e[1]=n+r*l,e[5]=t-i*l,e[9]=-a*s,e[2]=i-t*l,e[6]=r+n*l,e[10]=o*s}else if(\"YXZ\"===t.order){const t=s*c,n=s*h,r=l*c,i=l*h;e[0]=t+i*a,e[4]=r*a-n,e[8]=o*l,e[1]=o*h,e[5]=o*c,e[9]=-a,e[2]=n*a-r,e[6]=i+t*a,e[10]=o*s}else if(\"ZXY\"===t.order){const t=s*c,n=s*h,r=l*c,i=l*h;e[0]=t-i*a,e[4]=-o*h,e[8]=r+n*a,e[1]=n+r*a,e[5]=o*c,e[9]=i-t*a,e[2]=-o*l,e[6]=a,e[10]=o*s}else if(\"ZYX\"===t.order){const t=o*c,n=o*h,r=a*c,i=a*h;e[0]=s*c,e[4]=r*l-n,e[8]=t*l+i,e[1]=s*h,e[5]=i*l+t,e[9]=n*l-r,e[2]=-l,e[6]=a*s,e[10]=o*s}else if(\"YZX\"===t.order){const t=o*s,n=o*l,r=a*s,i=a*l;e[0]=s*c,e[4]=i-t*h,e[8]=r*h+n,e[1]=h,e[5]=o*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+r,e[10]=t-i*h}else if(\"XZY\"===t.order){const t=o*s,n=o*l,r=a*s,i=a*l;e[0]=s*c,e[4]=-h,e[8]=l*c,e[1]=t*h+i,e[5]=o*c,e[9]=n*h-r,e[2]=r*h-n,e[6]=a*c,e[10]=i*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Ft,t,Ut)}lookAt(t,e,n){const r=this.elements;return Gt.subVectors(t,e),0===Gt.lengthSq()&&(Gt.z=1),Gt.normalize(),Ht.crossVectors(n,Gt),0===Ht.lengthSq()&&(1===Math.abs(n.z)?Gt.x+=1e-4:Gt.z+=1e-4,Gt.normalize(),Ht.crossVectors(n,Gt)),Ht.normalize(),Vt.crossVectors(Gt,Ht),r[0]=Ht.x,r[4]=Vt.x,r[8]=Gt.x,r[1]=Ht.y,r[5]=Vt.y,r[9]=Gt.y,r[2]=Ht.z,r[6]=Vt.z,r[10]=Gt.z,this}multiply(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,r=e.elements,i=this.elements,o=n[0],a=n[4],s=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],b=r[0],w=r[4],M=r[8],S=r[12],E=r[1],T=r[5],A=r[9],L=r[13],C=r[2],P=r[6],R=r[10],D=r[14],I=r[3],N=r[7],O=r[11],k=r[15];return i[0]=o*b+a*E+s*C+l*I,i[4]=o*w+a*T+s*P+l*N,i[8]=o*M+a*A+s*R+l*O,i[12]=o*S+a*L+s*D+l*k,i[1]=c*b+h*E+u*C+d*I,i[5]=c*w+h*T+u*P+d*N,i[9]=c*M+h*A+u*R+d*O,i[13]=c*S+h*L+u*D+d*k,i[2]=p*b+f*E+m*C+g*I,i[6]=p*w+f*T+m*P+g*N,i[10]=p*M+f*A+m*R+g*O,i[14]=p*S+f*L+m*D+g*k,i[3]=v*b+y*E+x*C+_*I,i[7]=v*w+y*T+x*P+_*N,i[11]=v*M+y*A+x*R+_*O,i[15]=v*S+y*L+x*D+_*k,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],r=t[8],i=t[12],o=t[1],a=t[5],s=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+i*s*h-r*l*h-i*a*u+n*l*u+r*a*d-n*s*d)+t[7]*(+e*s*d-e*l*u+i*o*u-r*o*d+r*l*c-i*s*c)+t[11]*(+e*l*h-e*a*d-i*o*h+n*o*d+i*a*c-n*l*c)+t[15]*(-r*a*c-e*s*h+e*a*u+r*o*h-n*o*u+n*s*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const r=this.elements;return t.isVector3?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],v=h*m*l-f*u*l+f*s*d-a*m*d-h*s*g+a*u*g,y=p*u*l-c*m*l-p*s*d+o*m*d+c*s*g-o*u*g,x=c*f*l-p*h*l+p*a*d-o*f*d-c*a*g+o*h*g,_=p*h*s-c*f*s-p*a*u+o*f*u+c*a*m-o*h*m,b=e*v+n*y+r*x+i*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/b;return t[0]=v*w,t[1]=(f*u*i-h*m*i-f*r*d+n*m*d+h*r*g-n*u*g)*w,t[2]=(a*m*i-f*s*i+f*r*l-n*m*l-a*r*g+n*s*g)*w,t[3]=(h*s*i-a*u*i-h*r*l+n*u*l+a*r*d-n*s*d)*w,t[4]=y*w,t[5]=(c*m*i-p*u*i+p*r*d-e*m*d-c*r*g+e*u*g)*w,t[6]=(p*s*i-o*m*i-p*r*l+e*m*l+o*r*g-e*s*g)*w,t[7]=(o*u*i-c*s*i+c*r*l-e*u*l-o*r*d+e*s*d)*w,t[8]=x*w,t[9]=(p*h*i-c*f*i-p*n*d+e*f*d+c*n*g-e*h*g)*w,t[10]=(o*f*i-p*a*i+p*n*l-e*f*l-o*n*g+e*a*g)*w,t[11]=(c*a*i-o*h*i-c*n*l+e*h*l+o*n*d-e*a*d)*w,t[12]=_*w,t[13]=(c*f*r-p*h*r+p*n*u-e*f*u-c*n*m+e*h*m)*w,t[14]=(p*a*r-o*f*r-p*n*s+e*f*s+o*n*m-e*a*m)*w,t[15]=(o*h*r-c*a*r+c*n*s-e*h*s-o*n*u+e*a*u)*w,this}scale(t){const e=this.elements,n=t.x,r=t.y,i=t.z;return e[0]*=n,e[4]*=r,e[8]*=i,e[1]*=n,e[5]*=r,e[9]*=i,e[2]*=n,e[6]*=r,e[10]*=i,e[3]*=n,e[7]*=r,e[11]*=i,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],r=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,r))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),r=Math.sin(e),i=1-n,o=t.x,a=t.y,s=t.z,l=i*o,c=i*a;return this.set(l*o+n,l*a-r*s,l*s+r*a,0,l*a+r*s,c*a+n,c*s-r*o,0,l*s-r*a,c*s+r*o,i*s*s+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,r,i,o){return this.set(1,n,i,0,t,1,o,0,e,r,1,0,0,0,0,1),this}compose(t,e,n){const r=this.elements,i=e._x,o=e._y,a=e._z,s=e._w,l=i+i,c=o+o,h=a+a,u=i*l,d=i*c,p=i*h,f=o*c,m=o*h,g=a*h,v=s*l,y=s*c,x=s*h,_=n.x,b=n.y,w=n.z;return r[0]=(1-(f+g))*_,r[1]=(d+x)*_,r[2]=(p-y)*_,r[3]=0,r[4]=(d-x)*b,r[5]=(1-(u+g))*b,r[6]=(m+v)*b,r[7]=0,r[8]=(p+y)*w,r[9]=(m-v)*w,r[10]=(1-(u+f))*w,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}decompose(t,e,n){const r=this.elements;let i=zt.set(r[0],r[1],r[2]).length();const o=zt.set(r[4],r[5],r[6]).length(),a=zt.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),t.x=r[12],t.y=r[13],t.z=r[14],Bt.copy(this);const s=1/i,l=1/o,c=1/a;return Bt.elements[0]*=s,Bt.elements[1]*=s,Bt.elements[2]*=s,Bt.elements[4]*=l,Bt.elements[5]*=l,Bt.elements[6]*=l,Bt.elements[8]*=c,Bt.elements[9]*=c,Bt.elements[10]*=c,e.setFromRotationMatrix(Bt),n.x=i,n.y=o,n.z=a,this}makePerspective(t,e,n,r,i,o){void 0===o&&console.warn(\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\");const a=this.elements,s=2*i/(e-t),l=2*i/(n-r),c=(e+t)/(e-t),h=(n+r)/(n-r),u=-(o+i)/(o-i),d=-2*o*i/(o-i);return a[0]=s,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,r,i,o){const a=this.elements,s=1/(e-t),l=1/(n-r),c=1/(o-i),h=(e+t)*s,u=(n+r)*l,d=(o+i)*c;return a[0]=2*s,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}kt.prototype.isMatrix4=!0;const zt=new ot,Bt=new kt,Ft=new ot(0,0,0),Ut=new ot(1,1,1),Ht=new ot,Vt=new ot,Gt=new ot,jt=new kt,Wt=new it;class qt{constructor(t=0,e=0,n=0,r=qt.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=r}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,r=this._order){return this._x=t,this._y=e,this._z=n,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const r=t.elements,i=r[0],o=r[4],a=r[8],s=r[1],l=r[5],c=r[9],h=r[2],u=r[6],d=r[10];switch(e){case\"XYZ\":this._y=Math.asin(j(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-o,i)):(this._x=Math.atan2(u,l),this._z=0);break;case\"YXZ\":this._x=Math.asin(-j(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(s,l)):(this._y=Math.atan2(-h,i),this._z=0);break;case\"ZXY\":this._x=Math.asin(j(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(s,i));break;case\"ZYX\":this._y=Math.asin(-j(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(s,i)):(this._x=0,this._z=Math.atan2(-o,l));break;case\"YZX\":this._z=Math.asin(j(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,i)):(this._x=0,this._y=Math.atan2(a,d));break;case\"XZY\":this._z=Math.asin(-j(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,i)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return jt.makeRotationFromQuaternion(t),this.setFromRotationMatrix(jt,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Wt.setFromEuler(this),this.setFromQuaternion(Wt,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new ot(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}qt.prototype.isEuler=!0,qt.DefaultOrder=\"XYZ\",qt.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"];class Xt{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let Yt=0;const Zt=new ot,Jt=new it,$t=new kt,Qt=new ot,Kt=new ot,te=new ot,ee=new it,ne=new ot(1,0,0),re=new ot(0,1,0),ie=new ot(0,0,1),oe={type:\"added\"},ae={type:\"removed\"};class se extends F{constructor(){super(),Object.defineProperty(this,\"id\",{value:Yt++}),this.uuid=G(),this.name=\"\",this.type=\"Object3D\",this.parent=null,this.children=[],this.up=se.DefaultUp.clone();const t=new ot,e=new qt,n=new it,r=new ot(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new kt},normalMatrix:{value:new Z}}),this.matrix=new kt,this.matrixWorld=new kt,this.matrixAutoUpdate=se.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Xt,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return Jt.setFromAxisAngle(t,e),this.quaternion.multiply(Jt),this}rotateOnWorldAxis(t,e){return Jt.setFromAxisAngle(t,e),this.quaternion.premultiply(Jt),this}rotateX(t){return this.rotateOnAxis(ne,t)}rotateY(t){return this.rotateOnAxis(re,t)}rotateZ(t){return this.rotateOnAxis(ie,t)}translateOnAxis(t,e){return Zt.copy(t).applyQuaternion(this.quaternion),this.position.add(Zt.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(ne,t)}translateY(t){return this.translateOnAxis(re,t)}translateZ(t){return this.translateOnAxis(ie,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4($t.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Qt.copy(t):Qt.set(t,e,n);const r=this.parent;this.updateWorldMatrix(!0,!1),Kt.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?$t.lookAt(Kt,Qt,this.up):$t.lookAt(Qt,Kt,this.up),this.quaternion.setFromRotationMatrix($t),r&&($t.extractRotation(r.matrixWorld),Jt.setFromRotationMatrix($t),this.quaternion.premultiply(Jt.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(oe)):console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(ae)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(ae)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),$t.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),$t.multiply(t.parent.matrixWorld)),t.applyMatrix4($t),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty(\"id\",t)}getObjectByName(t){return this.getObjectByProperty(\"name\",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,r=this.children.length;n<r;n++){const r=this.children[n].getObjectByProperty(t,e);if(void 0!==r)return r}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Kt,t,te),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Kt,ee,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,r=e.length;n<r;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,r=e.length;n<r;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,r=e.length;n<r;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||\"string\"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:\"Object\",generator:\"Object3D.toJSON\"});const r={};function i(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(r.uuid=this.uuid,r.type=this.type,\"\"!==this.name&&(r.name=this.name),!0===this.castShadow&&(r.castShadow=!0),!0===this.receiveShadow&&(r.receiveShadow=!0),!1===this.visible&&(r.visible=!1),!1===this.frustumCulled&&(r.frustumCulled=!1),0!==this.renderOrder&&(r.renderOrder=this.renderOrder),\"{}\"!==JSON.stringify(this.userData)&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type=\"InstancedMesh\",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(r.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,r=n.length;e<r;e++){const r=n[e];i(t.shapes,r)}else i(t.shapes,n)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(i(t.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,r=this.material.length;n<r;n++)e.push(i(t.materials,this.material[n]));r.material=e}else r.material=i(t.materials,this.material);if(this.children.length>0){r.children=[];for(let e=0;e<this.children.length;e++)r.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){r.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];r.animations.push(i(t.animations,n))}}if(e){const e=o(t.geometries),r=o(t.materials),i=o(t.textures),a=o(t.images),s=o(t.shapes),l=o(t.skeletons),c=o(t.animations);e.length>0&&(n.geometries=e),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),a.length>0&&(n.images=a),s.length>0&&(n.shapes=s),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=r,n;function o(t){const e=[];for(const n in t){const r=t[n];delete r.metadata,e.push(r)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}se.DefaultUp=new ot(0,1,0),se.DefaultMatrixAutoUpdate=!0,se.prototype.isObject3D=!0;const le=new ot,ce=new ot,he=new ot,ue=new ot,de=new ot,pe=new ot,fe=new ot,me=new ot,ge=new ot,ve=new ot;class ye{constructor(t=new ot,e=new ot,n=new ot){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,r){r.subVectors(n,e),le.subVectors(t,e),r.cross(le);const i=r.lengthSq();return i>0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(t,e,n,r,i){le.subVectors(r,e),ce.subVectors(n,e),he.subVectors(t,e);const o=le.dot(le),a=le.dot(ce),s=le.dot(he),l=ce.dot(ce),c=ce.dot(he),h=o*l-a*a;if(0===h)return i.set(-2,-1,-1);const u=1/h,d=(l*s-a*c)*u,p=(o*c-a*s)*u;return i.set(1-d-p,p,d)}static containsPoint(t,e,n,r){return this.getBarycoord(t,e,n,r,ue),ue.x>=0&&ue.y>=0&&ue.x+ue.y<=1}static getUV(t,e,n,r,i,o,a,s){return this.getBarycoord(t,e,n,r,ue),s.set(0,0),s.addScaledVector(i,ue.x),s.addScaledVector(o,ue.y),s.addScaledVector(a,ue.z),s}static isFrontFacing(t,e,n,r){return le.subVectors(n,e),ce.subVectors(t,e),le.cross(ce).dot(r)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,r){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[r]),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return le.subVectors(this.c,this.b),ce.subVectors(this.a,this.b),.5*le.cross(ce).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ye.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ye.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,r,i){return ye.getUV(t,this.a,this.b,this.c,e,n,r,i)}containsPoint(t){return ye.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ye.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,r=this.b,i=this.c;let o,a;de.subVectors(r,n),pe.subVectors(i,n),me.subVectors(t,n);const s=de.dot(me),l=pe.dot(me);if(s<=0&&l<=0)return e.copy(n);ge.subVectors(t,r);const c=de.dot(ge),h=pe.dot(ge);if(c>=0&&h<=c)return e.copy(r);const u=s*h-c*l;if(u<=0&&s>=0&&c<=0)return o=s/(s-c),e.copy(n).addScaledVector(de,o);ve.subVectors(t,i);const d=de.dot(ve),p=pe.dot(ve);if(p>=0&&d<=p)return e.copy(i);const f=d*l-s*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(pe,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return fe.subVectors(i,r),a=(h-c)/(h-c+(d-p)),e.copy(r).addScaledVector(fe,a);const g=1/(m+f+u);return o=f*g,a=u*g,e.copy(n).addScaledVector(de,o).addScaledVector(pe,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let xe=0;class _e extends F{constructor(){super(),Object.defineProperty(this,\"id\",{value:xe++}),this.uuid=G(),this.name=\"\",this.type=\"Material\",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=h,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=O,this.stencilZFail=O,this.stencilZPass=O,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}onBuild(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(\"THREE.Material: '\"+e+\"' parameter is undefined.\");continue}if(\"shading\"===e){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===n;continue}const r=this[e];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[e]=n:console.warn(\"THREE.\"+this.type+\": '\"+e+\"' is not a property of this material.\")}}toJSON(t){const e=void 0===t||\"string\"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};function r(t){const e=[];for(const n in t){const r=t[n];delete r.metadata,e.push(r)}return e}if(n.uuid=this.uuid,n.type=this.type,\"\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.morphNormals&&(n.morphNormals=!0),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=r(t.textures),i=r(t.images);e.length>0&&(n.textures=e),i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let r=0;r!==t;++r)n[r]=e[r].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(t){!0===t&&this.version++}}_e.prototype.isMaterial=!0;const be={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},we={h:0,s:0,l:0},Me={h:0,s:0,l:0};function Se(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function Ee(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Te(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class Ae{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=function(t,e){return(t%e+e)%e}(t,1),e=j(e,0,1),n=j(n,0,1),0===e)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+e):n+e-n*e,i=2*n-r;this.r=Se(i,r,t+1/3),this.g=Se(i,r,t),this.b=Se(i,r,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}let n;if(n=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let t;const r=n[1],i=n[2];switch(r){case\"rgb\":case\"rgba\":if(t=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(i))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(i))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case\"hsl\":case\"hsla\":if(t=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(i)){const n=parseFloat(t[1])/360,r=parseInt(t[2],10)/100,i=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,r,i)}}}else if(n=/^\\#([A-Fa-f\\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=be[t.toLowerCase()];return void 0!==e?this.setHex(e):console.warn(\"THREE.Color: Unknown color \"+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=Ee(t.r),this.g=Ee(t.g),this.b=Ee(t.b),this}copyLinearToSRGB(t){return this.r=Te(t.r),this.g=Te(t.g),this.b=Te(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\"000000\"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,r=this.b,i=Math.max(e,n,r),o=Math.min(e,n,r);let a,s;const l=(o+i)/2;if(o===i)a=0,s=0;else{const t=i-o;switch(s=l<=.5?t/(i+o):t/(2-i-o),i){case e:a=(n-r)/t+(n<r?6:0);break;case n:a=(r-e)/t+2;break;case r:a=(e-n)/t+4}a/=6}return t.h=a,t.s=s,t.l=l,t}getStyle(){return\"rgb(\"+(255*this.r|0)+\",\"+(255*this.g|0)+\",\"+(255*this.b|0)+\")\"}offsetHSL(t,e,n){return this.getHSL(we),we.h+=t,we.s+=e,we.l+=n,this.setHSL(we.h,we.s,we.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(we),t.getHSL(Me);const n=W(we.h,Me.h,e),r=W(we.s,Me.s,e),i=W(we.l,Me.l,e);return this.setHSL(n,r,i),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}Ae.NAMES=be,Ae.prototype.isColor=!0,Ae.prototype.r=1,Ae.prototype.g=1,Ae.prototype.b=1;class Le extends _e{constructor(t){super(),this.type=\"MeshBasicMaterial\",this.color=new Ae(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this}}Le.prototype.isMeshBasicMaterial=!0;const Ce=new ot,Pe=new Y;class Re{constructor(t,e,n){if(Array.isArray(t))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.name=\"\",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=k,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let r=0,i=this.itemSize;r<i;r++)this.array[t+r]=e.array[n+r];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyColorsArray(): color is undefined\",r),i=new Ae),e[n++]=i.r,e[n++]=i.g,e[n++]=i.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\",r),i=new Y),e[n++]=i.x,e[n++]=i.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\",r),i=new ot),e[n++]=i.x,e[n++]=i.y,e[n++]=i.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let r=0,i=t.length;r<i;r++){let i=t[r];void 0===i&&(console.warn(\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\",r),i=new et),e[n++]=i.x,e[n++]=i.y,e[n++]=i.z,e[n++]=i.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)Pe.fromBufferAttribute(this,e),Pe.applyMatrix3(t),this.setXY(e,Pe.x,Pe.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)Ce.fromBufferAttribute(this,e),Ce.applyMatrix3(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)Ce.x=this.getX(e),Ce.y=this.getY(e),Ce.z=this.getZ(e),Ce.applyMatrix4(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)Ce.x=this.getX(e),Ce.y=this.getY(e),Ce.z=this.getZ(e),Ce.applyNormalMatrix(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)Ce.x=this.getX(e),Ce.y=this.getY(e),Ce.z=this.getZ(e),Ce.transformDirection(t),this.setXYZ(e,Ce.x,Ce.y,Ce.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=r,this}setXYZW(t,e,n,r,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=r,this.array[t+3]=i,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return\"\"!==this.name&&(t.name=this.name),this.usage!==k&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}Re.prototype.isBufferAttribute=!0;class De extends Re{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Ie extends Re{constructor(t,e,n){super(new Uint32Array(t),e,n)}}(class extends Re{constructor(t,e,n){super(new Uint16Array(t),e,n)}}).prototype.isFloat16BufferAttribute=!0;class Ne extends Re{constructor(t,e,n){super(new Float32Array(t),e,n)}}function Oe(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,r=t.length;n<r;++n)t[n]>e&&(e=t[n]);return e}let ke=0;const ze=new kt,Be=new se,Fe=new ot,Ue=new lt,He=new lt,Ve=new ot;class Ge extends F{constructor(){super(),Object.defineProperty(this,\"id\",{value:ke++}),this.uuid=G(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(Oe(t)>65535?Ie:De)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new Z).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const r=this.attributes.tangent;return void 0!==r&&(r.transformDirection(t),r.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return ze.makeRotationFromQuaternion(t),this.applyMatrix4(ze),this}rotateX(t){return ze.makeRotationX(t),this.applyMatrix4(ze),this}rotateY(t){return ze.makeRotationY(t),this.applyMatrix4(ze),this}rotateZ(t){return ze.makeRotationZ(t),this.applyMatrix4(ze),this}translate(t,e,n){return ze.makeTranslation(t,e,n),this.applyMatrix4(ze),this}scale(t,e,n){return ze.makeScale(t,e,n),this.applyMatrix4(ze),this}lookAt(t){return Be.lookAt(t),Be.updateMatrix(),this.applyMatrix4(Be.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Fe).negate(),this.translate(Fe.x,Fe.y,Fe.z),this}setFromPoints(t){const e=[];for(let n=0,r=t.length;n<r;n++){const r=t[n];e.push(r.x,r.y,r.z||0)}return this.setAttribute(\"position\",new Ne(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new lt);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingBox.set(new ot(-1/0,-1/0,-1/0),new ot(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];Ue.setFromBufferAttribute(n),this.morphTargetsRelative?(Ve.addVectors(this.boundingBox.min,Ue.min),this.boundingBox.expandByPoint(Ve),Ve.addVectors(this.boundingBox.max,Ue.max),this.boundingBox.expandByPoint(Ve)):(this.boundingBox.expandByPoint(Ue.min),this.boundingBox.expandByPoint(Ue.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new At);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".',this),void this.boundingSphere.set(new ot,1/0);if(t){const n=this.boundingSphere.center;if(Ue.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];He.setFromBufferAttribute(n),this.morphTargetsRelative?(Ve.addVectors(Ue.min,He.min),Ue.expandByPoint(Ve),Ve.addVectors(Ue.max,He.max),Ue.expandByPoint(Ve)):(Ue.expandByPoint(He.min),Ue.expandByPoint(He.max))}Ue.getCenter(n);let r=0;for(let e=0,i=t.count;e<i;e++)Ve.fromBufferAttribute(t,e),r=Math.max(r,n.distanceToSquared(Ve));if(e)for(let i=0,o=e.length;i<o;i++){const o=e[i],a=this.morphTargetsRelative;for(let e=0,i=o.count;e<i;e++)Ve.fromBufferAttribute(o,e),a&&(Fe.fromBufferAttribute(t,e),Ve.add(Fe)),r=Math.max(r,n.distanceToSquared(Ve))}this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeFaceNormals(){}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");const n=t.array,r=e.position.array,i=e.normal.array,o=e.uv.array,a=r.length/3;void 0===e.tangent&&this.setAttribute(\"tangent\",new Re(new Float32Array(4*a),4));const s=e.tangent.array,l=[],c=[];for(let t=0;t<a;t++)l[t]=new ot,c[t]=new ot;const h=new ot,u=new ot,d=new ot,p=new Y,f=new Y,m=new Y,g=new ot,v=new ot;function y(t,e,n){h.fromArray(r,3*t),u.fromArray(r,3*e),d.fromArray(r,3*n),p.fromArray(o,2*t),f.fromArray(o,2*e),m.fromArray(o,2*n),u.sub(h),d.sub(h),f.sub(p),m.sub(p);const i=1/(f.x*m.y-m.x*f.y);isFinite(i)&&(g.copy(u).multiplyScalar(m.y).addScaledVector(d,-f.y).multiplyScalar(i),v.copy(d).multiplyScalar(f.x).addScaledVector(u,-m.x).multiplyScalar(i),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(v),c[e].add(v),c[n].add(v))}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let t=0,e=x.length;t<e;++t){const e=x[t],r=e.start;for(let t=r,i=r+e.count;t<i;t+=3)y(n[t+0],n[t+1],n[t+2])}const _=new ot,b=new ot,w=new ot,M=new ot;function S(t){w.fromArray(i,3*t),M.copy(w);const e=l[t];_.copy(e),_.sub(w.multiplyScalar(w.dot(e))).normalize(),b.crossVectors(M,e);const n=b.dot(c[t])<0?-1:1;s[4*t]=_.x,s[4*t+1]=_.y,s[4*t+2]=_.z,s[4*t+3]=n}for(let t=0,e=x.length;t<e;++t){const e=x[t],r=e.start;for(let t=r,i=r+e.count;t<i;t+=3)S(n[t+0]),S(n[t+1]),S(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute(\"position\");if(void 0!==e){let n=this.getAttribute(\"normal\");if(void 0===n)n=new Re(new Float32Array(3*e.count),3),this.setAttribute(\"normal\",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const r=new ot,i=new ot,o=new ot,a=new ot,s=new ot,l=new ot,c=new ot,h=new ot;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),f=t.getX(u+2);r.fromBufferAttribute(e,d),i.fromBufferAttribute(e,p),o.fromBufferAttribute(e,f),c.subVectors(o,i),h.subVectors(r,i),c.cross(h),a.fromBufferAttribute(n,d),s.fromBufferAttribute(n,p),l.fromBufferAttribute(n,f),a.add(c),s.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,s.x,s.y,s.z),n.setXYZ(f,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3)r.fromBufferAttribute(e,t+0),i.fromBufferAttribute(e,t+1),o.fromBufferAttribute(e,t+2),c.subVectors(o,i),h.subVectors(r,i),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void console.error(\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\",t);void 0===e&&(e=0,console.warn(\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\"));const n=this.attributes;for(const r in n){if(void 0===t.attributes[r])continue;const i=n[r].array,o=t.attributes[r],a=o.array,s=o.itemSize*e,l=Math.min(a.length,i.length-s);for(let t=0,e=s;t<l;t++,e++)i[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Ve.fromBufferAttribute(t,e),Ve.normalize(),t.setXYZ(e,Ve.x,Ve.y,Ve.z)}toNonIndexed(){function t(t,e){const n=t.array,r=t.itemSize,i=t.normalized,o=new n.constructor(e.length*r);let a=0,s=0;for(let i=0,l=e.length;i<l;i++){a=t.isInterleavedBufferAttribute?e[i]*t.data.stride+t.offset:e[i]*r;for(let t=0;t<r;t++)o[s++]=n[a++]}return new Re(o,r,i)}if(null===this.index)return console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\"),this;const e=new Ge,n=this.index.array,r=this.attributes;for(const i in r){const o=t(r[i],n);e.setAttribute(i,o)}const i=this.morphAttributes;for(const r in i){const o=[],a=i[r];for(let e=0,r=a.length;e<r;e++){const r=t(a[e],n);o.push(r)}e.morphAttributes[r]=o}e.morphTargetsRelative=this.morphTargetsRelative;const o=this.groups;for(let t=0,n=o.length;t<n;t++){const n=o[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};if(t.uuid=this.uuid,t.type=this.type,\"\"!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const r=n[e];t.data.attributes[e]=r.toJSON(t.data)}const r={};let i=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],o=[];for(let e=0,r=n.length;e<r;e++){const r=n[e];o.push(r.toJSON(t.data))}o.length>0&&(r[e]=o,i=!0)}i&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new Ge).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const r=t.attributes;for(const t in r){const n=r[t];this.setAttribute(t,n.clone(e))}const i=t.morphAttributes;for(const t in i){const n=[],r=i[t];for(let t=0,i=r.length;t<i;t++)n.push(r[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const o=t.groups;for(let t=0,e=o.length;t<e;t++){const e=o[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const s=t.boundingSphere;return null!==s&&(this.boundingSphere=s.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:\"dispose\"})}}Ge.prototype.isBufferGeometry=!0;const je=new kt,We=new Ot,qe=new At,Xe=new ot,Ye=new ot,Ze=new ot,Je=new ot,$e=new ot,Qe=new ot,Ke=new ot,tn=new ot,en=new ot,nn=new Y,rn=new Y,on=new Y,an=new ot,sn=new ot;class ln extends se{constructor(t=new Ge,e=new Le){super(),this.type=\"Mesh\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}raycast(t,e){const n=this.geometry,r=this.material,i=this.matrixWorld;if(void 0===r)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),qe.copy(n.boundingSphere),qe.applyMatrix4(i),!1===t.ray.intersectsSphere(qe))return;if(je.copy(i).invert(),We.copy(t.ray).applyMatrix4(je),null!==n.boundingBox&&!1===We.intersectsBox(n.boundingBox))return;let o;if(n.isBufferGeometry){const i=n.index,a=n.attributes.position,s=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==i)if(Array.isArray(r))for(let n=0,p=u.length;n<p;n++){const p=u[n],f=r[p.materialIndex];for(let n=Math.max(p.start,d.start),r=Math.min(p.start+p.count,d.start+d.count);n<r;n+=3){const r=i.getX(n),u=i.getX(n+1),d=i.getX(n+2);o=cn(this,f,t,We,a,s,l,c,h,r,u,d),o&&(o.faceIndex=Math.floor(n/3),o.face.materialIndex=p.materialIndex,e.push(o))}}else{for(let n=Math.max(0,d.start),u=Math.min(i.count,d.start+d.count);n<u;n+=3){const u=i.getX(n),d=i.getX(n+1),p=i.getX(n+2);o=cn(this,r,t,We,a,s,l,c,h,u,d,p),o&&(o.faceIndex=Math.floor(n/3),e.push(o))}}else if(void 0!==a)if(Array.isArray(r))for(let n=0,i=u.length;n<i;n++){const i=u[n],p=r[i.materialIndex];for(let n=Math.max(i.start,d.start),r=Math.min(i.start+i.count,d.start+d.count);n<r;n+=3){o=cn(this,p,t,We,a,s,l,c,h,n,n+1,n+2),o&&(o.faceIndex=Math.floor(n/3),o.face.materialIndex=i.materialIndex,e.push(o))}}else{for(let n=Math.max(0,d.start),i=Math.min(a.count,d.start+d.count);n<i;n+=3){o=cn(this,r,t,We,a,s,l,c,h,n,n+1,n+2),o&&(o.faceIndex=Math.floor(n/3),e.push(o))}}}else n.isGeometry&&console.error(\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}function cn(t,e,n,r,i,o,a,s,l,c,h,u){Xe.fromBufferAttribute(i,c),Ye.fromBufferAttribute(i,h),Ze.fromBufferAttribute(i,u);const d=t.morphTargetInfluences;if(e.morphTargets&&o&&d){Ke.set(0,0,0),tn.set(0,0,0),en.set(0,0,0);for(let t=0,e=o.length;t<e;t++){const e=d[t],n=o[t];0!==e&&(Je.fromBufferAttribute(n,c),$e.fromBufferAttribute(n,h),Qe.fromBufferAttribute(n,u),a?(Ke.addScaledVector(Je,e),tn.addScaledVector($e,e),en.addScaledVector(Qe,e)):(Ke.addScaledVector(Je.sub(Xe),e),tn.addScaledVector($e.sub(Ye),e),en.addScaledVector(Qe.sub(Ze),e)))}Xe.add(Ke),Ye.add(tn),Ze.add(en)}t.isSkinnedMesh&&(t.boneTransform(c,Xe),t.boneTransform(h,Ye),t.boneTransform(u,Ze));const p=function(t,e,n,r,i,o,a,s){let l;if(l=1===e.side?r.intersectTriangle(a,o,i,!0,s):r.intersectTriangle(i,o,a,2!==e.side,s),null===l)return null;sn.copy(s),sn.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(sn);return c<n.near||c>n.far?null:{distance:c,point:sn.clone(),object:t}}(t,e,n,r,Xe,Ye,Ze,an);if(p){s&&(nn.fromBufferAttribute(s,c),rn.fromBufferAttribute(s,h),on.fromBufferAttribute(s,u),p.uv=ye.getUV(an,Xe,Ye,Ze,nn,rn,on,new Y)),l&&(nn.fromBufferAttribute(l,c),rn.fromBufferAttribute(l,h),on.fromBufferAttribute(l,u),p.uv2=ye.getUV(an,Xe,Ye,Ze,nn,rn,on,new Y));const t={a:c,b:h,c:u,normal:new ot,materialIndex:0};ye.getNormal(Xe,Ye,Ze,t.normal),p.face=t}return p}ln.prototype.isMesh=!0;class hn extends Ge{constructor(t=1,e=1,n=1,r=1,i=1,o=1){super(),this.type=\"BoxGeometry\",this.parameters={width:t,height:e,depth:n,widthSegments:r,heightSegments:i,depthSegments:o};const a=this;r=Math.floor(r),i=Math.floor(i),o=Math.floor(o);const s=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,r,i,o,p,f,m,g,v){const y=o/m,x=p/g,_=o/2,b=p/2,w=f/2,M=m+1,S=g+1;let E=0,T=0;const A=new ot;for(let o=0;o<S;o++){const a=o*x-b;for(let s=0;s<M;s++){const u=s*y-_;A[t]=u*r,A[e]=a*i,A[n]=w,l.push(A.x,A.y,A.z),A[t]=0,A[e]=0,A[n]=f>0?1:-1,c.push(A.x,A.y,A.z),h.push(s/m),h.push(1-o/g),E+=1}}for(let t=0;t<g;t++)for(let e=0;e<m;e++){const n=u+e+M*t,r=u+e+M*(t+1),i=u+(e+1)+M*(t+1),o=u+(e+1)+M*t;s.push(n,r,o),s.push(r,i,o),T+=6}a.addGroup(d,T,v),d+=T,u+=E}p(\"z\",\"y\",\"x\",-1,-1,n,e,t,o,i,0),p(\"z\",\"y\",\"x\",1,-1,n,e,-t,o,i,1),p(\"x\",\"z\",\"y\",1,1,t,n,e,r,o,2),p(\"x\",\"z\",\"y\",1,-1,t,n,-e,r,o,3),p(\"x\",\"y\",\"z\",1,-1,t,e,n,r,i,4),p(\"x\",\"y\",\"z\",-1,-1,t,e,-n,r,i,5),this.setIndex(s),this.setAttribute(\"position\",new Ne(l,3)),this.setAttribute(\"normal\",new Ne(c,3)),this.setAttribute(\"uv\",new Ne(h,2))}static fromJSON(t){return new hn(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function un(t){const e={};for(const n in t){e[n]={};for(const r in t[n]){const i=t[n][r];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?e[n][r]=i.clone():Array.isArray(i)?e[n][r]=i.slice():e[n][r]=i}}return e}function dn(t){const e={};for(let n=0;n<t.length;n++){const r=un(t[n]);for(const t in r)e[t]=r[t]}return e}const pn={clone:un,merge:dn};class fn extends _e{constructor(t){super(),this.type=\"ShaderMaterial\",this.defines={},this.uniforms={},this.vertexShader=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",this.fragmentShader=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\"),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=un(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const r=this.uniforms[n].value;r&&r.isTexture?e.uniforms[n]={type:\"t\",value:r.toJSON(t).uuid}:r&&r.isColor?e.uniforms[n]={type:\"c\",value:r.getHex()}:r&&r.isVector2?e.uniforms[n]={type:\"v2\",value:r.toArray()}:r&&r.isVector3?e.uniforms[n]={type:\"v3\",value:r.toArray()}:r&&r.isVector4?e.uniforms[n]={type:\"v4\",value:r.toArray()}:r&&r.isMatrix3?e.uniforms[n]={type:\"m3\",value:r.toArray()}:r&&r.isMatrix4?e.uniforms[n]={type:\"m4\",value:r.toArray()}:e.uniforms[n]={value:r}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}fn.prototype.isShaderMaterial=!0;class mn extends se{constructor(){super(),this.type=\"Camera\",this.matrixWorldInverse=new kt,this.projectionMatrix=new kt,this.projectionMatrixInverse=new kt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}mn.prototype.isCamera=!0;class gn extends mn{constructor(t=50,e=1,n=.1,r=2e3){super(),this.type=\"PerspectiveCamera\",this.fov=t,this.zoom=1,this.near=n,this.far=r,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*V*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*H*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*V*Math.atan(Math.tan(.5*H*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,r,i,o){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*H*this.fov)/this.zoom,n=2*e,r=this.aspect*n,i=-.5*r;const o=this.view;if(null!==this.view&&this.view.enabled){const t=o.fullWidth,a=o.fullHeight;i+=o.offsetX*r/t,e-=o.offsetY*n/a,r*=o.width/t,n*=o.height/a}const a=this.filmOffset;0!==a&&(i+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}gn.prototype.isPerspectiveCamera=!0;const vn=90;class yn extends se{constructor(t,e,n){if(super(),this.type=\"CubeCamera\",!0!==n.isWebGLCubeRenderTarget)return void console.error(\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\");this.renderTarget=n;const r=new gn(vn,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new ot(1,0,0)),this.add(r);const i=new gn(vn,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new ot(-1,0,0)),this.add(i);const o=new gn(vn,1,t,e);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new ot(0,1,0)),this.add(o);const a=new gn(vn,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new ot(0,-1,0)),this.add(a);const s=new gn(vn,1,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new ot(0,0,1)),this.add(s);const l=new gn(vn,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new ot(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[r,i,o,a,s,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,r),t.setRenderTarget(n,1),t.render(e,i),t.setRenderTarget(n,2),t.render(e,o),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,s),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class xn extends K{constructor(t,e,n,r,i,o,a,s,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:301,n,r,i,o,a=void 0!==a?a:M,s,l,c),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}xn.prototype.isCubeTexture=!0;class _n extends nt{constructor(t,e,n){Number.isInteger(e)&&(console.warn(\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\"),e=n),super(t,t,e),e=e||{},this.texture=new xn(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:m,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=S,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"},r=new hn(5,5,5),i=new fn({name:\"CubemapFromEquirect\",uniforms:un(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});i.uniforms.tEquirect.value=e;const o=new ln(r,i),a=e.minFilter;e.minFilter===g&&(e.minFilter=m);return new yn(1,10,this).update(t,o),e.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(t,e,n,r){const i=t.getRenderTarget();for(let i=0;i<6;i++)t.setRenderTarget(this,i),t.clear(e,n,r);t.setRenderTarget(i)}}_n.prototype.isWebGLCubeRenderTarget=!0;const bn=new ot,wn=new ot,Mn=new Z;class Sn{constructor(t=new ot(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,r){return this.normal.set(t,e,n),this.constant=r,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const r=bn.subVectors(n,e).cross(wn.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(bn),r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const i=-(t.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:e.copy(n).multiplyScalar(i).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Mn.getNormalMatrix(t),r=this.coplanarPoint(bn).applyMatrix4(t),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Sn.prototype.isPlane=!0;const En=new At,Tn=new ot;class An{constructor(t=new Sn,e=new Sn,n=new Sn,r=new Sn,i=new Sn,o=new Sn){this.planes=[t,e,n,r,i,o]}set(t,e,n,r,i,o){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(r),a[4].copy(i),a[5].copy(o),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-r,h-s,f-u,y-m).normalize(),e[1].setComponents(a+r,h+s,f+u,y+m).normalize(),e[2].setComponents(a+i,h+l,f+d,y+g).normalize(),e[3].setComponents(a-i,h-l,f-d,y-g).normalize(),e[4].setComponents(a-o,h-c,f-p,y-v).normalize(),e[5].setComponents(a+o,h+c,f+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),En.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(En)}intersectsSprite(t){return En.center.set(0,0,0),En.radius=.7071067811865476,En.applyMatrix4(t.matrixWorld),this.intersectsSphere(En)}intersectsSphere(t){const e=this.planes,n=t.center,r=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<r)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const r=e[n];if(Tn.x=r.normal.x>0?t.max.x:t.min.x,Tn.y=r.normal.y>0?t.max.y:t.min.y,Tn.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(Tn)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Ln(){let t=null,e=!1,n=null,r=null;function i(e,o){n(e,o),r=t.requestAnimationFrame(i)}return{start:function(){!0!==e&&null!==n&&(r=t.requestAnimationFrame(i),e=!0)},stop:function(){t.cancelAnimationFrame(r),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function Cn(t,e){const n=e.isWebGL2,r=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),r.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=r.get(e);n&&(t.deleteBuffer(n.buffer),r.delete(e))},update:function(e,i){if(e.isGLBufferAttribute){const t=r.get(e);return void((!t||t.version<e.version)&&r.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const o=r.get(e);void 0===o?r.set(e,function(e,r){const i=e.array,o=e.usage,a=t.createBuffer();t.bindBuffer(r,a),t.bufferData(r,i,o),e.onUploadCallback();let s=5126;return i instanceof Float32Array?s=5126:i instanceof Float64Array?console.warn(\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\"):i instanceof Uint16Array?e.isFloat16BufferAttribute?n?s=5131:console.warn(\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\"):s=5123:i instanceof Int16Array?s=5122:i instanceof Uint32Array?s=5125:i instanceof Int32Array?s=5124:i instanceof Int8Array?s=5120:(i instanceof Uint8Array||i instanceof Uint8ClampedArray)&&(s=5121),{buffer:a,type:s,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version}}(e,i)):o.version<e.version&&(!function(e,r,i){const o=r.array,a=r.updateRange;t.bindBuffer(i,e),-1===a.count?t.bufferSubData(i,0,o):(n?t.bufferSubData(i,a.offset*o.BYTES_PER_ELEMENT,o,a.offset,a.count):t.bufferSubData(i,a.offset*o.BYTES_PER_ELEMENT,o.subarray(a.offset,a.offset+a.count)),a.count=-1)}(o.buffer,e,i),o.version=e.version)}}}class Pn extends Ge{constructor(t=1,e=1,n=1,r=1){super(),this.type=\"PlaneGeometry\",this.parameters={width:t,height:e,widthSegments:n,heightSegments:r};const i=t/2,o=e/2,a=Math.floor(n),s=Math.floor(r),l=a+1,c=s+1,h=t/a,u=e/s,d=[],p=[],f=[],m=[];for(let t=0;t<c;t++){const e=t*u-o;for(let n=0;n<l;n++){const r=n*h-i;p.push(r,-e,0),f.push(0,0,1),m.push(n/a),m.push(1-t/s)}}for(let t=0;t<s;t++)for(let e=0;e<a;e++){const n=e+l*t,r=e+l*(t+1),i=e+1+l*(t+1),o=e+1+l*t;d.push(n,r,o),d.push(r,i,o)}this.setIndex(d),this.setAttribute(\"position\",new Ne(p,3)),this.setAttribute(\"normal\",new Ne(f,3)),this.setAttribute(\"uv\",new Ne(m,2))}static fromJSON(t){return new Pn(t.width,t.height,t.widthSegments,t.heightSegments)}}const Rn={alphamap_fragment:\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\",alphamap_pars_fragment:\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",alphatest_fragment:\"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\",aomap_fragment:\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\",aomap_pars_fragment:\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\",begin_vertex:\"vec3 transformed = vec3( position );\",beginnormal_vertex:\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\",bsdfs:\"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\\n}\\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n#else\\n\\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t}\\n\\treturn 1.0;\\n#endif\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\treturn specularColor * brdf.x + brdf.y;\\n}\\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\tvec3 FssEss = F * brdf.x + brdf.y;\\n\\tfloat Ess = brdf.x + brdf.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\",bumpmap_pars_fragment:\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\",color_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",color_pars_fragment:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_pars_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\",color_vertex:\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\",common:\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\",cube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\t\\tvec2 f = fract( uv );\\n\\t\\tuv += 0.5 - f;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x += texelSize;\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.y += texelSize;\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x -= texelSize;\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\treturn mix( tm, bm, f.y );\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\",defaultnormal_vertex:\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\",displacementmap_pars_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\",displacementmap_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\",encodings_fragment:\"gl_FragColor = linearToOutputTexel( gl_FragColor );\",encodings_pars_fragment:\"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\",envmap_fragment:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifndef ENVMAP_TYPE_CUBE_UV\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\",envmap_common_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\",envmap_pars_fragment:\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\",envmap_pars_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\",envmap_physical_pars_fragment:\"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\",envmap_vertex:\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\",fog_vertex:\"#ifdef USE_FOG\\n\\tfogDepth = - mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\",fog_pars_fragment:\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\",gradientmap_pars_fragment:\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\",lightmap_fragment:\"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n#endif\",lightmap_pars_fragment:\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",lights_lambert_vertex:\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\",lights_pars_begin:\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\",lights_toon_fragment:\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\",lights_toon_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\",lights_phong_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\",lights_physical_fragment:\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\",lights_physical_pars_fragment:\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularRoughness;\\n\\tvec3 specularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(    0, 1,    0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\",lights_fragment_begin:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\",lights_fragment_maps:\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\",lights_fragment_end:\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\",logdepthbuf_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\",map_particle_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\",map_particle_pars_fragment:\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n#endif\",morphtarget_pars_vertex:\"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",morphtarget_vertex:\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\",normal_fragment_begin:\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\",normal_fragment_maps:\"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\",clearcoat_normal_fragment_begin:\"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\",clearcoat_normal_fragment_maps:\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\",clearcoat_pars_fragment:\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\",packing:\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\",premultiplied_alpha_fragment:\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\",project_vertex:\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\",dithering_fragment:\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\",dithering_pars_fragment:\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\",roughnessmap_pars_fragment:\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",shadowmap_pars_fragment:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\",shadowmap_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\",skinbase_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\",skinning_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\",skinnormal_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\",tonemapping_pars_fragment:\"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(  1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,  1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\",transmission_fragment:\"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSNMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition.xyz / vWorldPosition.w;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tfloat ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );\\n\\tvec3 transmission = transmissionFactor * getIBLVolumeRefraction(\\n\\t\\tnormal, v, roughnessFactor, material.diffuseColor, totalSpecular,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );\\n#endif\",transmission_pars_fragment:\"#ifdef USE_TRANSMISSION\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec4 vWorldPosition;\\n\\tvec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) {\\n\\t\\tvec3 refractionVector = refract(-v, normalize(n), 1.0 / ior);\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length(vec3(modelMatrix[0].xyz));\\n\\t\\tmodelScale.y = length(vec3(modelMatrix[1].xyz));\\n\\t\\tmodelScale.z = length(vec3(modelMatrix[2].xyz));\\n\\t\\treturn normalize(refractionVector) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness(float roughness, float ior) {\\n\\t\\treturn roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0);\\n\\t}\\n\\tvec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) {\\n\\t\\tfloat framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior);\\n\\t\\treturn texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb;\\n\\t}\\n\\tvec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) {\\n\\t\\tif (attenuationDistance == 0.0) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp(-attenuationCoefficient * transmissionDistance);\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor,\\n\\t\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\n\\t\\tvec3 attenuationColor, float attenuationDistance) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix);\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0);\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior);\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance);\\n\\t\\treturn (1.0 - specularColor) * attenuatedColor * baseColor;\\n\\t}\\n#endif\",uv_pars_fragment:\"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\",uv_pars_vertex:\"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\",uv_vertex:\"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\",uv2_pars_fragment:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_pars_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\",uv2_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\",background_frag:\"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",background_vert:\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\",cube_frag:\"#include <envmap_common_pars_fragment>\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",cube_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\",depth_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\",distanceRGBA_frag:\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\",distanceRGBA_vert:\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\",equirect_frag:\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\",equirect_vert:\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\",linedashed_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\",meshbasic_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshbasic_vert:\"#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_ENVMAP\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshlambert_frag:\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include <lightmap_fragment>\\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshmatcap_frag:\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshmatcap_vert:\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#ifndef FLAT_SHADED\\n\\t\\tvNormal = normalize( transformedNormal );\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\",meshtoon_frag:\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshtoon_vert:\"#define TOON\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",meshphysical_frag:\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define REFLECTIVITY\\n\\t#define CLEARCOAT\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform vec3 attenuationColor;\\n\\tuniform float attenuationDistance;\\n#endif\\n#ifdef REFLECTIVITY\\n\\tuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\n#include <transmission_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\",meshphysical_vert:\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec4 vWorldPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition;\\n#endif\\n}\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\",points_vert:\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\",shadow_frag:\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",shadow_vert:\"#include <common>\\n#include <fog_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\",sprite_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\",sprite_vert:\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\"},Dn={common:{diffuse:{value:new Ae(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Z},uv2Transform:{value:new Z},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Y(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ae(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ae(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Z}},sprite:{diffuse:{value:new Ae(16777215)},opacity:{value:1},center:{value:new Y(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Z}}},In={basic:{uniforms:dn([Dn.common,Dn.specularmap,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.fog]),vertexShader:Rn.meshbasic_vert,fragmentShader:Rn.meshbasic_frag},lambert:{uniforms:dn([Dn.common,Dn.specularmap,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)}}]),vertexShader:Rn.meshlambert_vert,fragmentShader:Rn.meshlambert_frag},phong:{uniforms:dn([Dn.common,Dn.specularmap,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)},specular:{value:new Ae(1118481)},shininess:{value:30}}]),vertexShader:Rn.meshphong_vert,fragmentShader:Rn.meshphong_frag},standard:{uniforms:dn([Dn.common,Dn.envmap,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.roughnessmap,Dn.metalnessmap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Rn.meshphysical_vert,fragmentShader:Rn.meshphysical_frag},toon:{uniforms:dn([Dn.common,Dn.aomap,Dn.lightmap,Dn.emissivemap,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.gradientmap,Dn.fog,Dn.lights,{emissive:{value:new Ae(0)}}]),vertexShader:Rn.meshtoon_vert,fragmentShader:Rn.meshtoon_frag},matcap:{uniforms:dn([Dn.common,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,Dn.fog,{matcap:{value:null}}]),vertexShader:Rn.meshmatcap_vert,fragmentShader:Rn.meshmatcap_frag},points:{uniforms:dn([Dn.points,Dn.fog]),vertexShader:Rn.points_vert,fragmentShader:Rn.points_frag},dashed:{uniforms:dn([Dn.common,Dn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Rn.linedashed_vert,fragmentShader:Rn.linedashed_frag},depth:{uniforms:dn([Dn.common,Dn.displacementmap]),vertexShader:Rn.depth_vert,fragmentShader:Rn.depth_frag},normal:{uniforms:dn([Dn.common,Dn.bumpmap,Dn.normalmap,Dn.displacementmap,{opacity:{value:1}}]),vertexShader:Rn.normal_vert,fragmentShader:Rn.normal_frag},sprite:{uniforms:dn([Dn.sprite,Dn.fog]),vertexShader:Rn.sprite_vert,fragmentShader:Rn.sprite_frag},background:{uniforms:{uvTransform:{value:new Z},t2D:{value:null}},vertexShader:Rn.background_vert,fragmentShader:Rn.background_frag},cube:{uniforms:dn([Dn.envmap,{opacity:{value:1}}]),vertexShader:Rn.cube_vert,fragmentShader:Rn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Rn.equirect_vert,fragmentShader:Rn.equirect_frag},distanceRGBA:{uniforms:dn([Dn.common,Dn.displacementmap,{referencePosition:{value:new ot},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Rn.distanceRGBA_vert,fragmentShader:Rn.distanceRGBA_frag},shadow:{uniforms:dn([Dn.lights,Dn.fog,{color:{value:new Ae(0)},opacity:{value:1}}]),vertexShader:Rn.shadow_vert,fragmentShader:Rn.shadow_frag}};function Nn(t,e,n,r,i){const o=new Ae(0);let a,s,l=0,c=null,h=0,u=null;function d(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,i)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),l=e,d(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(t){l=t,d(o,l)},render:function(n,i){let p=!1,f=!0===i.isScene?i.background:null;f&&f.isTexture&&(f=e.get(f));const m=t.xr,g=m.getSession&&m.getSession();g&&\"additive\"===g.environmentBlendMode&&(f=null),null===f?d(o,l):f&&f.isColor&&(d(f,1),p=!0),(t.autoClear||p)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||306===f.mapping)?(void 0===s&&(s=new ln(new hn(1,1,1),new fn({name:\"BackgroundCubeMaterial\",uniforms:un(In.cube.uniforms),vertexShader:In.cube.vertexShader,fragmentShader:In.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),s.geometry.deleteAttribute(\"normal\"),s.geometry.deleteAttribute(\"uv\"),s.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(s.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}}),r.update(s)),s.material.uniforms.envMap.value=f,s.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f._needsFlipEnvMap?-1:1,c===f&&h===f.version&&u===t.toneMapping||(s.material.needsUpdate=!0,c=f,h=f.version,u=t.toneMapping),n.unshift(s,s.geometry,s.material,0,0,null)):f&&f.isTexture&&(void 0===a&&(a=new ln(new Pn(2,2),new fn({name:\"BackgroundMaterial\",uniforms:un(In.background.uniforms),vertexShader:In.background.vertexShader,fragmentShader:In.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute(\"normal\"),Object.defineProperty(a.material,\"map\",{get:function(){return this.uniforms.t2D.value}}),r.update(a)),a.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),a.material.uniforms.uvTransform.value.copy(f.matrix),c===f&&h===f.version&&u===t.toneMapping||(a.material.needsUpdate=!0,c=f,h=f.version,u=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function On(t,e,n,r){const i=t.getParameter(34921),o=r.isWebGL2?null:e.get(\"OES_vertex_array_object\"),a=r.isWebGL2||null!==o,s={},l=d(null);let c=l;function h(e){return r.isWebGL2?t.bindVertexArray(e):o.bindVertexArrayOES(e)}function u(e){return r.isWebGL2?t.deleteVertexArray(e):o.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],r=[];for(let t=0;t<i;t++)e[t]=0,n[t]=0,r[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:r,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function f(t){m(t,0)}function m(n,i){const o=c.newAttributes,a=c.enabledAttributes,s=c.attributeDivisors;if(o[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),s[n]!==i){(r.isWebGL2?t:e.get(\"ANGLE_instanced_arrays\"))[r.isWebGL2?\"vertexAttribDivisor\":\"vertexAttribDivisorANGLE\"](n,i),s[n]=i}}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let r=0,i=n.length;r<i;r++)n[r]!==e[r]&&(t.disableVertexAttribArray(r),n[r]=0)}function v(e,n,i,o,a,s){!0!==r.isWebGL2||5124!==i&&5125!==i?t.vertexAttribPointer(e,n,i,o,a,s):t.vertexAttribIPointer(e,n,i,a,s)}function y(){x(),c!==l&&(c=l,h(c.object))}function x(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(i,l,u,y,x){let _=!1;if(a){const e=function(e,n,i){const a=!0===i.wireframe;let l=s[e.id];void 0===l&&(l={},s[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[a];void 0===h&&(h=d(r.isWebGL2?t.createVertexArray():o.createVertexArrayOES()),c[a]=h);return h}(y,u,l);c!==e&&(c=e,h(c.object)),_=function(t,e){const n=c.attributes,r=t.attributes;let i=0;for(const t in r){const e=n[t],o=r[t];if(void 0===e)return!0;if(e.attribute!==o)return!0;if(e.data!==o.data)return!0;i++}return c.attributesNum!==i||c.index!==e}(y,x),_&&function(t,e){const n={},r=t.attributes;let i=0;for(const t in r){const e=r[t],o={};o.attribute=e,e.data&&(o.data=e.data),n[t]=o,i++}c.attributes=n,c.attributesNum=i,c.index=e}(y,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===u.id&&c.wireframe===t||(c.geometry=y.id,c.program=u.id,c.wireframe=t,_=!0)}!0===i.isInstancedMesh&&(_=!0),null!==x&&n.update(x,34963),_&&(!function(i,o,a,s){if(!1===r.isWebGL2&&(i.isInstancedMesh||s.isInstancedBufferGeometry)&&null===e.get(\"ANGLE_instanced_arrays\"))return;p();const l=s.attributes,c=a.getAttributes(),h=o.defaultAttributeValues;for(const e in c){const r=c[e];if(r>=0){const o=l[e];if(void 0!==o){const e=o.normalized,i=o.itemSize,a=n.get(o);if(void 0===a)continue;const l=a.buffer,c=a.type,h=a.bytesPerElement;if(o.isInterleavedBufferAttribute){const n=o.data,a=n.stride,u=o.offset;n&&n.isInstancedInterleavedBuffer?(m(r,n.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=n.meshPerAttribute*n.count)):f(r),t.bindBuffer(34962,l),v(r,i,c,e,a*h,u*h)}else o.isInstancedBufferAttribute?(m(r,o.meshPerAttribute),void 0===s._maxInstanceCount&&(s._maxInstanceCount=o.meshPerAttribute*o.count)):f(r),t.bindBuffer(34962,l),v(r,i,c,e,0,0)}else if(\"instanceMatrix\"===e){const e=n.get(i.instanceMatrix);if(void 0===e)continue;const o=e.buffer,a=e.type;m(r+0,1),m(r+1,1),m(r+2,1),m(r+3,1),t.bindBuffer(34962,o),t.vertexAttribPointer(r+0,4,a,!1,64,0),t.vertexAttribPointer(r+1,4,a,!1,64,16),t.vertexAttribPointer(r+2,4,a,!1,64,32),t.vertexAttribPointer(r+3,4,a,!1,64,48)}else if(\"instanceColor\"===e){const e=n.get(i.instanceColor);if(void 0===e)continue;const o=e.buffer,a=e.type;m(r,1),t.bindBuffer(34962,o),t.vertexAttribPointer(r,3,a,!1,12,0)}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(r,n);break;case 3:t.vertexAttrib3fv(r,n);break;case 4:t.vertexAttrib4fv(r,n);break;default:t.vertexAttrib1fv(r,n)}}}}g()}(i,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in s){const e=s[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete s[t]}},releaseStatesOfGeometry:function(t){if(void 0===s[t.id])return;const e=s[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete s[t.id]},releaseStatesOfProgram:function(t){for(const e in s){const n=s[e];if(void 0===n[t.id])continue;const r=n[t.id];for(const t in r)u(r[t].object),delete r[t];delete n[t.id]}},initAttributes:p,enableAttribute:f,disableUnusedAttributes:g}}function kn(t,e,n,r){const i=r.isWebGL2;let o;this.setMode=function(t){o=t},this.render=function(e,r){t.drawArrays(o,e,r),n.update(r,o,1)},this.renderInstances=function(r,a,s){if(0===s)return;let l,c;if(i)l=t,c=\"drawArraysInstanced\";else if(l=e.get(\"ANGLE_instanced_arrays\"),c=\"drawArraysInstancedANGLE\",null===l)return void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");l[c](o,r,a,s),n.update(a,o,s)}}function zn(t,e,n){let r;function i(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?\"mediump\":\"lowp\"}const o=\"undefined\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||\"undefined\"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:\"highp\";const s=i(a);s!==a&&(console.warn(\"THREE.WebGLRenderer:\",a,\"not supported, using\",s,\"instead.\"),a=s);const l=o||e.has(\"WEBGL_draw_buffers\"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),f=t.getParameter(34921),m=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=o||e.has(\"OES_texture_float\");return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===e.has(\"EXT_texture_filter_anisotropic\")){const n=e.get(\"EXT_texture_filter_anisotropic\");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:i,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:o?t.getParameter(36183):0}}function Bn(t){const e=this;let n=null,r=0,i=!1,o=!1;const a=new Sn,s=new Z,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=r>0),e.numPlanes=r,e.numIntersection=0}function h(t,n,r,i){const o=null!==t?t.length:0;let c=null;if(0!==o){if(c=l.value,!0!==i||null===c){const e=r+4*o,i=n.matrixWorldInverse;s.getNormalMatrix(i),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=r;e!==o;++e,n+=4)a.copy(t[e]).applyMatrix4(i,s),a.normal.toArray(c,n),c[n+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=o,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,o){const a=0!==t.length||e||0!==r||i;return i=e,n=h(t,o,0),r=t.length,a},this.beginShadows=function(){o=!0,h(null)},this.endShadows=function(){o=!1,c()},this.setState=function(e,a,s){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,f=t.get(e);if(!i||null===u||0===u.length||o&&!p)o?h(null):c();else{const t=o?0:r,e=4*t;let i=f.clippingState||null;l.value=i,i=h(u,a,e,s);for(let t=0;t!==e;++t)i[t]=n[t];f.clippingState=i,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function Fn(t){let e=new WeakMap;function n(t,e){return 303===e?t.mapping=301:304===e&&(t.mapping=302),t}function r(t){const n=t.target;n.removeEventListener(\"dispose\",r);const i=e.get(n);void 0!==i&&(e.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture){const o=i.mapping;if(303===o||304===o){if(e.has(i)){return n(e.get(i).texture,i.mapping)}{const o=i.image;if(o&&o.height>0){const a=t.getRenderTarget(),s=new _n(o.height/2);return s.fromEquirectangularTexture(t,i),e.set(i,s),t.setRenderTarget(a),i.addEventListener(\"dispose\",r),n(s.texture,i.mapping)}return null}}}return i},dispose:function(){e=new WeakMap}}}function Un(t){const e={};function n(n){if(void 0!==e[n])return e[n];let r;switch(n){case\"WEBGL_depth_texture\":r=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":r=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":r=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":r=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:r=t.getExtension(n)}return e[n]=r,r}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n(\"EXT_color_buffer_float\"):(n(\"WEBGL_depth_texture\"),n(\"OES_texture_float\"),n(\"OES_texture_half_float\"),n(\"OES_texture_half_float_linear\"),n(\"OES_standard_derivatives\"),n(\"OES_element_index_uint\"),n(\"OES_vertex_array_object\"),n(\"ANGLE_instanced_arrays\")),n(\"OES_texture_float_linear\"),n(\"EXT_color_buffer_half_float\")},get:function(t){const e=n(t);return null===e&&console.warn(\"THREE.WebGLRenderer: \"+t+\" extension not supported.\"),e}}}function Hn(t,e,n,r){const i={},o=new WeakMap;function a(t){const s=t.target;null!==s.index&&e.remove(s.index);for(const t in s.attributes)e.remove(s.attributes[t]);s.removeEventListener(\"dispose\",a),delete i[s.id];const l=o.get(s);l&&(e.remove(l),o.delete(s)),r.releaseStatesOfGeometry(s),!0===s.isInstancedBufferGeometry&&delete s._maxInstanceCount,n.memory.geometries--}function s(t){const n=[],r=t.index,i=t.attributes.position;let a=0;if(null!==r){const t=r.array;a=r.version;for(let e=0,r=t.length;e<r;e+=3){const r=t[e+0],i=t[e+1],o=t[e+2];n.push(r,i,i,o,o,r)}}else{const t=i.array;a=i.version;for(let e=0,r=t.length/3-1;e<r;e+=3){const t=e+0,r=e+1,i=e+2;n.push(t,r,r,i,i,t)}}const s=new(Oe(n)>65535?Ie:De)(n,1);s.version=a;const l=o.get(t);l&&e.remove(l),o.set(t,s)}return{get:function(t,e){return!0===i[e.id]||(e.addEventListener(\"dispose\",a),i[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const r=t.morphAttributes;for(const t in r){const n=r[t];for(let t=0,r=n.length;t<r;t++)e.update(n[t],34962)}},getWireframeAttribute:function(t){const e=o.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&s(t)}else s(t);return o.get(t)}}}function Vn(t,e,n,r){const i=r.isWebGL2;let o,a,s;this.setMode=function(t){o=t},this.setIndex=function(t){a=t.type,s=t.bytesPerElement},this.render=function(e,r){t.drawElements(o,r,a,e*s),n.update(r,o,1)},this.renderInstances=function(r,l,c){if(0===c)return;let h,u;if(i)h=t,u=\"drawElementsInstanced\";else if(h=e.get(\"ANGLE_instanced_arrays\"),u=\"drawElementsInstancedANGLE\",null===h)return void console.error(\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");h[u](o,l,a,r*s,c),n.update(l,o,c)}}function Gn(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,r){switch(e.calls++,n){case 4:e.triangles+=r*(t/3);break;case 1:e.lines+=r*(t/2);break;case 3:e.lines+=r*(t-1);break;case 2:e.lines+=r*t;break;case 0:e.points+=r*t;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",n)}}}}function jn(t,e){return t[0]-e[0]}function Wn(t,e){return Math.abs(e[1])-Math.abs(t[1])}function qn(t){const e={},n=new Float32Array(8),r=[];for(let t=0;t<8;t++)r[t]=[t,0];return{update:function(i,o,a,s){const l=i.morphTargetInfluences,c=void 0===l?0:l.length;let h=e[o.id];if(void 0===h||h.length!==c){h=[];for(let t=0;t<c;t++)h[t]=[t,0];e[o.id]=h}for(let t=0;t<c;t++){const e=h[t];e[0]=t,e[1]=l[t]}h.sort(Wn);for(let t=0;t<8;t++)t<c&&h[t][1]?(r[t][0]=h[t][0],r[t][1]=h[t][1]):(r[t][0]=Number.MAX_SAFE_INTEGER,r[t][1]=0);r.sort(jn);const u=a.morphTargets&&o.morphAttributes.position,d=a.morphNormals&&o.morphAttributes.normal;let p=0;for(let t=0;t<8;t++){const e=r[t],i=e[0],a=e[1];i!==Number.MAX_SAFE_INTEGER&&a?(u&&o.getAttribute(\"morphTarget\"+t)!==u[i]&&o.setAttribute(\"morphTarget\"+t,u[i]),d&&o.getAttribute(\"morphNormal\"+t)!==d[i]&&o.setAttribute(\"morphNormal\"+t,d[i]),n[t]=a,p+=a):(u&&!0===o.hasAttribute(\"morphTarget\"+t)&&o.deleteAttribute(\"morphTarget\"+t),d&&!0===o.hasAttribute(\"morphNormal\"+t)&&o.deleteAttribute(\"morphNormal\"+t),n[t]=0)}const f=o.morphTargetsRelative?1:1-p;s.getUniforms().setValue(t,\"morphTargetBaseInfluence\",f),s.getUniforms().setValue(t,\"morphTargetInfluences\",n)}}}function Xn(t,e,n,r){let i=new WeakMap;function o(t){const e=t.target;e.removeEventListener(\"dispose\",o),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const a=r.render.frame,s=t.geometry,l=e.get(t,s);return i.get(l)!==a&&(e.update(l),i.set(l,a)),t.isInstancedMesh&&(!1===t.hasEventListener(\"dispose\",o)&&t.addEventListener(\"dispose\",o),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){i=new WeakMap}}}In.physical={uniforms:dn([In.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Y(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Ae(0)},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Y},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ae(0)}}]),vertexShader:Rn.meshphysical_vert,fragmentShader:Rn.meshphysical_frag};class Yn extends K{constructor(t=null,e=1,n=1,r=1){super(null),this.image={data:t,width:e,height:n,depth:r},this.magFilter=f,this.minFilter=f,this.wrapR=d,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Yn.prototype.isDataTexture2DArray=!0;class Zn extends K{constructor(t=null,e=1,n=1,r=1){super(null),this.image={data:t,width:e,height:n,depth:r},this.magFilter=f,this.minFilter=f,this.wrapR=d,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Zn.prototype.isDataTexture3D=!0;const Jn=new K,$n=new Yn,Qn=new Zn,Kn=new xn,tr=[],er=[],nr=new Float32Array(16),rr=new Float32Array(9),ir=new Float32Array(4);function or(t,e,n){const r=t[0];if(r<=0||r>0)return t;const i=e*n;let o=tr[i];if(void 0===o&&(o=new Float32Array(i),tr[i]=o),0!==e){r.toArray(o,0);for(let r=1,i=0;r!==e;++r)i+=n,t[r].toArray(o,i)}return o}function ar(t,e){if(t.length!==e.length)return!1;for(let n=0,r=t.length;n<r;n++)if(t[n]!==e[n])return!1;return!0}function sr(t,e){for(let n=0,r=e.length;n<r;n++)t[n]=e[n]}function lr(t,e){let n=er[e];void 0===n&&(n=new Int32Array(e),er[e]=n);for(let r=0;r!==e;++r)n[r]=t.allocateTextureUnit();return n}function cr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function hr(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(ar(n,e))return;t.uniform2fv(this.addr,e),sr(n,e)}}function ur(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(ar(n,e))return;t.uniform3fv(this.addr,e),sr(n,e)}}function dr(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(ar(n,e))return;t.uniform4fv(this.addr,e),sr(n,e)}}function pr(t,e){const n=this.cache,r=e.elements;if(void 0===r){if(ar(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),sr(n,e)}else{if(ar(n,r))return;ir.set(r),t.uniformMatrix2fv(this.addr,!1,ir),sr(n,r)}}function fr(t,e){const n=this.cache,r=e.elements;if(void 0===r){if(ar(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),sr(n,e)}else{if(ar(n,r))return;rr.set(r),t.uniformMatrix3fv(this.addr,!1,rr),sr(n,r)}}function mr(t,e){const n=this.cache,r=e.elements;if(void 0===r){if(ar(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),sr(n,e)}else{if(ar(n,r))return;nr.set(r),t.uniformMatrix4fv(this.addr,!1,nr),sr(n,r)}}function gr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function vr(t,e){const n=this.cache;ar(n,e)||(t.uniform2iv(this.addr,e),sr(n,e))}function yr(t,e){const n=this.cache;ar(n,e)||(t.uniform3iv(this.addr,e),sr(n,e))}function xr(t,e){const n=this.cache;ar(n,e)||(t.uniform4iv(this.addr,e),sr(n,e))}function _r(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function br(t,e){const n=this.cache;ar(n,e)||(t.uniform2uiv(this.addr,e),sr(n,e))}function wr(t,e){const n=this.cache;ar(n,e)||(t.uniform3uiv(this.addr,e),sr(n,e))}function Mr(t,e){const n=this.cache;ar(n,e)||(t.uniform4uiv(this.addr,e),sr(n,e))}function Sr(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.safeSetTexture2D(e||Jn,i)}function Er(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTexture3D(e||Qn,i)}function Tr(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.safeSetTextureCube(e||Kn,i)}function Ar(t,e,n){const r=this.cache,i=n.allocateTextureUnit();r[0]!==i&&(t.uniform1i(this.addr,i),r[0]=i),n.setTexture2DArray(e||$n,i)}function Lr(t,e){t.uniform1fv(this.addr,e)}function Cr(t,e){const n=or(e,this.size,2);t.uniform2fv(this.addr,n)}function Pr(t,e){const n=or(e,this.size,3);t.uniform3fv(this.addr,n)}function Rr(t,e){const n=or(e,this.size,4);t.uniform4fv(this.addr,n)}function Dr(t,e){const n=or(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Ir(t,e){const n=or(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function Nr(t,e){const n=or(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Or(t,e){t.uniform1iv(this.addr,e)}function kr(t,e){t.uniform2iv(this.addr,e)}function zr(t,e){t.uniform3iv(this.addr,e)}function Br(t,e){t.uniform4iv(this.addr,e)}function Fr(t,e){t.uniform1uiv(this.addr,e)}function Ur(t,e){t.uniform2uiv(this.addr,e)}function Hr(t,e){t.uniform3uiv(this.addr,e)}function Vr(t,e){t.uniform4uiv(this.addr,e)}function Gr(t,e,n){const r=e.length,i=lr(n,r);t.uniform1iv(this.addr,i);for(let t=0;t!==r;++t)n.safeSetTexture2D(e[t]||Jn,i[t])}function jr(t,e,n){const r=e.length,i=lr(n,r);t.uniform1iv(this.addr,i);for(let t=0;t!==r;++t)n.safeSetTextureCube(e[t]||Kn,i[t])}function Wr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return cr;case 35664:return hr;case 35665:return ur;case 35666:return dr;case 35674:return pr;case 35675:return fr;case 35676:return mr;case 5124:case 35670:return gr;case 35667:case 35671:return vr;case 35668:case 35672:return yr;case 35669:case 35673:return xr;case 5125:return _r;case 36294:return br;case 36295:return wr;case 36296:return Mr;case 35678:case 36198:case 36298:case 36306:case 35682:return Sr;case 35679:case 36299:case 36307:return Er;case 35680:case 36300:case 36308:case 36293:return Tr;case 36289:case 36303:case 36311:case 36292:return Ar}}(e.type)}function qr(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return Lr;case 35664:return Cr;case 35665:return Pr;case 35666:return Rr;case 35674:return Dr;case 35675:return Ir;case 35676:return Nr;case 5124:case 35670:return Or;case 35667:case 35671:return kr;case 35668:case 35672:return zr;case 35669:case 35673:return Br;case 5125:return Fr;case 36294:return Ur;case 36295:return Hr;case 36296:return Vr;case 35678:case 36198:case 36298:case 36306:case 35682:return Gr;case 35680:case 36300:case 36308:case 36293:return jr}}(e.type)}function Xr(t){this.id=t,this.seq=[],this.map={}}qr.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),sr(e,t)},Xr.prototype.setValue=function(t,e,n){const r=this.seq;for(let i=0,o=r.length;i!==o;++i){const o=r[i];o.setValue(t,e[o.id],n)}};const Yr=/(\\w+)(\\])?(\\[|\\.)?/g;function Zr(t,e){t.seq.push(e),t.map[e.id]=e}function Jr(t,e,n){const r=t.name,i=r.length;for(Yr.lastIndex=0;;){const o=Yr.exec(r),a=Yr.lastIndex;let s=o[1];const l=\"]\"===o[2],c=o[3];if(l&&(s|=0),void 0===c||\"[\"===c&&a+2===i){Zr(n,void 0===c?new Wr(s,t,e):new qr(s,t,e));break}{let t=n.map[s];void 0===t&&(t=new Xr(s),Zr(n,t)),n=t}}}function $r(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let r=0;r<n;++r){const n=t.getActiveUniform(e,r);Jr(n,t.getUniformLocation(e,n.name),this)}}function Qr(t,e,n){const r=t.createShader(e);return t.shaderSource(r,n),t.compileShader(r),r}$r.prototype.setValue=function(t,e,n,r){const i=this.map[e];void 0!==i&&i.setValue(t,n,r)},$r.prototype.setOptional=function(t,e,n){const r=e[n];void 0!==r&&this.setValue(t,n,r)},$r.upload=function(t,e,n,r){for(let i=0,o=e.length;i!==o;++i){const o=e[i],a=n[o.id];!1!==a.needsUpdate&&o.setValue(t,a.value,r)}},$r.seqWithValue=function(t,e){const n=[];for(let r=0,i=t.length;r!==i;++r){const i=t[r];i.id in e&&n.push(i)}return n};let Kr=0;function ti(t){switch(t){case N:return[\"Linear\",\"( value )\"];case 3001:return[\"sRGB\",\"( value )\"];case 3002:return[\"RGBE\",\"( value )\"];case 3004:return[\"RGBM\",\"( value, 7.0 )\"];case 3005:return[\"RGBM\",\"( value, 16.0 )\"];case 3006:return[\"RGBD\",\"( value, 256.0 )\"];case 3007:return[\"Gamma\",\"( value, float( GAMMA_FACTOR ) )\"];case 3003:return[\"LogLuv\",\"( value )\"];default:return console.warn(\"THREE.WebGLProgram: Unsupported encoding:\",t),[\"Linear\",\"( value )\"]}}function ei(t,e,n){const r=t.getShaderParameter(e,35713),i=t.getShaderInfoLog(e).trim();if(r&&\"\"===i)return\"\";return\"THREE.WebGLShader: gl.getShaderInfoLog() \"+n+\"\\n\"+i+function(t){const e=t.split(\"\\n\");for(let t=0;t<e.length;t++)e[t]=t+1+\": \"+e[t];return e.join(\"\\n\")}(t.getShaderSource(e))}function ni(t,e){const n=ti(e);return\"vec4 \"+t+\"( vec4 value ) { return \"+n[0]+\"ToLinear\"+n[1]+\"; }\"}function ri(t,e){const n=ti(e);return\"vec4 \"+t+\"( vec4 value ) { return LinearTo\"+n[0]+n[1]+\"; }\"}function ii(t,e){let n;switch(e){case 1:n=\"Linear\";break;case 2:n=\"Reinhard\";break;case 3:n=\"OptimizedCineon\";break;case 4:n=\"ACESFilmic\";break;case 5:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",e),n=\"Linear\"}return\"vec3 \"+t+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}function oi(t){return\"\"!==t}function ai(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function si(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const li=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function ci(t){return t.replace(li,hi)}function hi(t,e){const n=Rn[e];if(void 0===n)throw new Error(\"Can not resolve #include <\"+e+\">\");return ci(n)}const ui=/#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g,di=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function pi(t){return t.replace(di,mi).replace(ui,fi)}function fi(t,e,n,r){return console.warn(\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\"),mi(t,e,n,r)}function mi(t,e,n,r){let i=\"\";for(let t=parseInt(e);t<parseInt(n);t++)i+=r.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+t+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,t);return i}function gi(t){let e=\"precision \"+t.precision+\" float;\\nprecision \"+t.precision+\" int;\";return\"highp\"===t.precision?e+=\"\\n#define HIGH_PRECISION\":\"mediump\"===t.precision?e+=\"\\n#define MEDIUM_PRECISION\":\"lowp\"===t.precision&&(e+=\"\\n#define LOW_PRECISION\"),e}function vi(t,e,n,r){const i=t.getContext(),o=n.defines;let a=n.vertexShader,s=n.fragmentShader;const l=function(t){let e=\"SHADOWMAP_TYPE_BASIC\";return 1===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF\":2===t.shadowMapType?e=\"SHADOWMAP_TYPE_PCF_SOFT\":3===t.shadowMapType&&(e=\"SHADOWMAP_TYPE_VSM\"),e}(n),c=function(t){let e=\"ENVMAP_TYPE_CUBE\";if(t.envMap)switch(t.envMapMode){case 301:case 302:e=\"ENVMAP_TYPE_CUBE\";break;case 306:case 307:e=\"ENVMAP_TYPE_CUBE_UV\"}return e}(n),h=function(t){let e=\"ENVMAP_MODE_REFLECTION\";if(t.envMap)switch(t.envMapMode){case 302:case 307:e=\"ENVMAP_MODE_REFRACTION\"}return e}(n),u=function(t){let e=\"ENVMAP_BLENDING_NONE\";if(t.envMap)switch(t.combine){case 0:e=\"ENVMAP_BLENDING_MULTIPLY\";break;case 1:e=\"ENVMAP_BLENDING_MIX\";break;case 2:e=\"ENVMAP_BLENDING_ADD\"}return e}(n),d=t.gammaFactor>0?t.gammaFactor:1,p=n.isWebGL2?\"\":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||\"physical\"===t.shaderID?\"#extension GL_OES_standard_derivatives : enable\":\"\",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?\"#extension GL_EXT_frag_depth : enable\":\"\",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?\"#extension GL_EXT_draw_buffers : require\":\"\",(t.extensionShaderTextureLOD||t.envMap||t.transmission>0)&&t.rendererExtensionShaderTextureLod?\"#extension GL_EXT_shader_texture_lod : enable\":\"\"].filter(oi).join(\"\\n\")}(n),f=function(t){const e=[];for(const n in t){const r=t[n];!1!==r&&e.push(\"#define \"+n+\" \"+r)}return e.join(\"\\n\")}(o),m=i.createProgram();let g,v,y=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";n.isRawShaderMaterial?(g=[f].filter(oi).join(\"\\n\"),g.length>0&&(g+=\"\\n\"),v=[p,f].filter(oi).join(\"\\n\"),v.length>0&&(v+=\"\\n\")):(g=[gi(n),\"#define SHADER_NAME \"+n.shaderName,f,n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+d,\"#define MAX_BONES \"+n.maxBones,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&!1===n.flatShading?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(oi).join(\"\\n\"),v=[p,gi(n),\"#define SHADER_NAME \"+n.shaderName,f,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest+(n.alphaTest%1?\"\":\".0\"):\"\",\"#define GAMMA_FACTOR \"+d,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+c:\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+u:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",0!==n.toneMapping?\"#define TONE_MAPPING\":\"\",0!==n.toneMapping?Rn.tonemapping_pars_fragment:\"\",0!==n.toneMapping?ii(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",Rn.encodings_pars_fragment,n.map?ni(\"mapTexelToLinear\",n.mapEncoding):\"\",n.matcap?ni(\"matcapTexelToLinear\",n.matcapEncoding):\"\",n.envMap?ni(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMap?ni(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.lightMap?ni(\"lightMapTexelToLinear\",n.lightMapEncoding):\"\",ri(\"linearToOutputTexel\",n.outputEncoding),n.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(oi).join(\"\\n\")),a=ci(a),a=ai(a,n),a=si(a,n),s=ci(s),s=ai(s,n),s=si(s,n),a=pi(a),s=pi(s),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(y=\"#version 300 es\\n\",g=[\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+g,v=[\"#define varying in\",n.glslVersion===B?\"\":\"out highp vec4 pc_fragColor;\",n.glslVersion===B?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+v);const x=y+v+s,_=Qr(i,35633,y+g+a),b=Qr(i,35632,x);if(i.attachShader(m,_),i.attachShader(m,b),void 0!==n.index0AttributeName?i.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&i.bindAttribLocation(m,0,\"position\"),i.linkProgram(m),t.debug.checkShaderErrors){const t=i.getProgramInfoLog(m).trim(),e=i.getShaderInfoLog(_).trim(),n=i.getShaderInfoLog(b).trim();let r=!0,o=!0;if(!1===i.getProgramParameter(m,35714)){r=!1;const e=ei(i,_,\"vertex\"),n=ei(i,b,\"fragment\");console.error(\"THREE.WebGLProgram: shader error: \",i.getError(),\"35715\",i.getProgramParameter(m,35715),\"gl.getProgramInfoLog\",t,e,n)}else\"\"!==t?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",t):\"\"!==e&&\"\"!==n||(o=!1);o&&(this.diagnostics={runnable:r,programLog:t,vertexShader:{log:e,prefix:g},fragmentShader:{log:n,prefix:v}})}let w,M;return i.deleteShader(_),i.deleteShader(b),this.getUniforms=function(){return void 0===w&&(w=new $r(i,m)),w},this.getAttributes=function(){return void 0===M&&(M=function(t,e){const n={},r=t.getProgramParameter(e,35721);for(let i=0;i<r;i++){const r=t.getActiveAttrib(e,i).name;n[r]=t.getAttribLocation(e,r)}return n}(i,m)),M},this.destroy=function(){r.releaseStatesOfProgram(this),i.deleteProgram(m),this.program=void 0},this.name=n.shaderName,this.id=Kr++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=_,this.fragmentShader=b,this}function yi(t,e,n,r,i,o){const a=[],s=r.isWebGL2,l=r.logarithmicDepthBuffer,c=r.floatVertexTextures,h=r.maxVertexUniforms,u=r.vertexTextures;let d=r.precision;const p={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"},f=[\"precision\",\"isWebGL2\",\"supportsVertexTextures\",\"outputEncoding\",\"instancing\",\"instancingColor\",\"map\",\"mapEncoding\",\"matcap\",\"matcapEncoding\",\"envMap\",\"envMapMode\",\"envMapEncoding\",\"envMapCubeUV\",\"lightMap\",\"lightMapEncoding\",\"aoMap\",\"emissiveMap\",\"emissiveMapEncoding\",\"bumpMap\",\"normalMap\",\"objectSpaceNormalMap\",\"tangentSpaceNormalMap\",\"clearcoatMap\",\"clearcoatRoughnessMap\",\"clearcoatNormalMap\",\"displacementMap\",\"specularMap\",\"roughnessMap\",\"metalnessMap\",\"gradientMap\",\"alphaMap\",\"combine\",\"vertexColors\",\"vertexAlphas\",\"vertexTangents\",\"vertexUvs\",\"uvsVertexOnly\",\"fog\",\"useFog\",\"fogExp2\",\"flatShading\",\"sizeAttenuation\",\"logarithmicDepthBuffer\",\"skinning\",\"maxBones\",\"useVertexTexture\",\"morphTargets\",\"morphNormals\",\"premultipliedAlpha\",\"numDirLights\",\"numPointLights\",\"numSpotLights\",\"numHemiLights\",\"numRectAreaLights\",\"numDirLightShadows\",\"numPointLightShadows\",\"numSpotLightShadows\",\"shadowMapEnabled\",\"shadowMapType\",\"toneMapping\",\"physicallyCorrectLights\",\"alphaTest\",\"doubleSided\",\"flipSided\",\"numClippingPlanes\",\"numClipIntersection\",\"depthPacking\",\"dithering\",\"sheen\",\"transmission\",\"transmissionMap\",\"thicknessMap\"];function m(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?(console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\"),e=t.texture.encoding):e=N,e}return{getParameters:function(i,a,f,g,v){const y=g.fog,x=i.isMeshStandardMaterial?g.environment:null,_=e.get(i.envMap||x),b=p[i.type],w=v.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(c)return 1024;{const t=h,n=Math.floor((t-20)/4),r=Math.min(n,e.length);return r<e.length?(console.warn(\"THREE.WebGLRenderer: Skeleton has \"+e.length+\" bones. This GPU supports \"+r+\".\"),0):r}}(v):0;let M,S;if(null!==i.precision&&(d=r.getMaxPrecision(i.precision),d!==i.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",i.precision,\"not supported, using\",d,\"instead.\")),b){const t=In[b];M=t.vertexShader,S=t.fragmentShader}else M=i.vertexShader,S=i.fragmentShader;const E=t.getRenderTarget();return{isWebGL2:s,shaderID:b,shaderName:i.type,vertexShader:M,fragmentShader:S,defines:i.defines,isRawShaderMaterial:!0===i.isRawShaderMaterial,glslVersion:i.glslVersion,precision:d,instancing:!0===v.isInstancedMesh,instancingColor:!0===v.isInstancedMesh&&null!==v.instanceColor,supportsVertexTextures:u,outputEncoding:null!==E?m(E.texture):t.outputEncoding,map:!!i.map,mapEncoding:m(i.map),matcap:!!i.matcap,matcapEncoding:m(i.matcap),envMap:!!_,envMapMode:_&&_.mapping,envMapEncoding:m(_),envMapCubeUV:!!_&&(306===_.mapping||307===_.mapping),lightMap:!!i.lightMap,lightMapEncoding:m(i.lightMap),aoMap:!!i.aoMap,emissiveMap:!!i.emissiveMap,emissiveMapEncoding:m(i.emissiveMap),bumpMap:!!i.bumpMap,normalMap:!!i.normalMap,objectSpaceNormalMap:1===i.normalMapType,tangentSpaceNormalMap:0===i.normalMapType,clearcoatMap:!!i.clearcoatMap,clearcoatRoughnessMap:!!i.clearcoatRoughnessMap,clearcoatNormalMap:!!i.clearcoatNormalMap,displacementMap:!!i.displacementMap,roughnessMap:!!i.roughnessMap,metalnessMap:!!i.metalnessMap,specularMap:!!i.specularMap,alphaMap:!!i.alphaMap,gradientMap:!!i.gradientMap,sheen:!!i.sheen,transmission:!!i.transmission,transmissionMap:!!i.transmissionMap,thicknessMap:!!i.thicknessMap,combine:i.combine,vertexTangents:i.normalMap&&i.vertexTangents,vertexColors:i.vertexColors,vertexAlphas:!0===i.vertexColors&&v.geometry&&v.geometry.attributes.color&&4===v.geometry.attributes.color.itemSize,vertexUvs:!!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatMap||i.clearcoatRoughnessMap||i.clearcoatNormalMap||i.displacementMap||i.transmissionMap||i.thicknessMap),uvsVertexOnly:!(i.map||i.bumpMap||i.normalMap||i.specularMap||i.alphaMap||i.emissiveMap||i.roughnessMap||i.metalnessMap||i.clearcoatNormalMap||i.transmission||i.transmissionMap||i.thicknessMap||!i.displacementMap),fog:!!y,useFog:i.fog,fogExp2:y&&y.isFogExp2,flatShading:!!i.flatShading,sizeAttenuation:i.sizeAttenuation,logarithmicDepthBuffer:l,skinning:!0===v.isSkinnedMesh&&w>0,maxBones:w,useVertexTexture:c,morphTargets:i.morphTargets,morphNormals:i.morphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:i.dithering,shadowMapEnabled:t.shadowMap.enabled&&f.length>0,shadowMapType:t.shadowMap.type,toneMapping:i.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:i.premultipliedAlpha,alphaTest:i.alphaTest,doubleSided:2===i.side,flipSided:1===i.side,depthPacking:void 0!==i.depthPacking&&i.depthPacking,index0AttributeName:i.index0AttributeName,extensionDerivatives:i.extensions&&i.extensions.derivatives,extensionFragDepth:i.extensions&&i.extensions.fragDepth,extensionDrawBuffers:i.extensions&&i.extensions.drawBuffers,extensionShaderTextureLOD:i.extensions&&i.extensions.shaderTextureLOD,rendererExtensionFragDepth:s||n.has(\"EXT_frag_depth\"),rendererExtensionDrawBuffers:s||n.has(\"WEBGL_draw_buffers\"),rendererExtensionShaderTextureLod:s||n.has(\"EXT_shader_texture_lod\"),customProgramCacheKey:i.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<f.length;t++)n.push(e[f[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=p[t.type];let n;if(e){const t=In[e];n=pn.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let r;for(let t=0,e=a.length;t<e;t++){const e=a[t];if(e.cacheKey===n){r=e,++r.usedTimes;break}}return void 0===r&&(r=new vi(t,n,e,i),a.push(r)),r},releaseProgram:function(t){if(0==--t.usedTimes){const e=a.indexOf(t);a[e]=a[a.length-1],a.pop(),t.destroy()}},programs:a}}function xi(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,r){t.get(e)[n]=r},dispose:function(){t=new WeakMap}}}function _i(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function bi(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function wi(t){const e=[];let n=0;const r=[],i=[],o=[],a={id:-1};function s(r,i,o,s,l,c){let h=e[n];const u=t.get(o);return void 0===h?(h={id:r.id,object:r,geometry:i,material:o,program:u.program||a,groupOrder:s,renderOrder:r.renderOrder,z:l,group:c},e[n]=h):(h.id=r.id,h.object=r,h.geometry=i,h.material=o,h.program=u.program||a,h.groupOrder=s,h.renderOrder=r.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:r,transmissive:i,transparent:o,init:function(){n=0,r.length=0,i.length=0,o.length=0},push:function(t,e,n,a,l,c){const h=s(t,e,n,a,l,c);n.transmission>0?i.push(h):!0===n.transparent?o.push(h):r.push(h)},unshift:function(t,e,n,a,l,c){const h=s(t,e,n,a,l,c);n.transmission>0?i.unshift(h):!0===n.transparent?o.unshift(h):r.unshift(h)},finish:function(){for(let t=n,r=e.length;t<r;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){r.length>1&&r.sort(t||_i),i.length>1&&i.sort(e||bi),o.length>1&&o.sort(e||bi)}}}function Mi(t){let e=new WeakMap;return{get:function(n,r){let i;return!1===e.has(n)?(i=new wi(t),e.set(n,[i])):r>=e.get(n).length?(i=new wi(t),e.get(n).push(i)):i=e.get(n)[r],i},dispose:function(){e=new WeakMap}}}function Si(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":n={direction:new ot,color:new Ae};break;case\"SpotLight\":n={position:new ot,direction:new ot,color:new Ae,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new ot,color:new Ae,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new ot,skyColor:new Ae,groundColor:new Ae};break;case\"RectAreaLight\":n={color:new Ae,position:new ot,halfWidth:new ot,halfHeight:new ot}}return t[e.id]=n,n}}}let Ei=0;function Ti(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function Ai(t,e){const n=new Si,r=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case\"DirectionalLight\":case\"SpotLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y};break;case\"PointLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)i.probe.push(new ot);const o=new ot,a=new kt,s=new kt;return{setup:function(o){let a=0,s=0,l=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let c=0,h=0,u=0,d=0,p=0,f=0,m=0,g=0;o.sort(Ti);for(let t=0,e=o.length;t<e;t++){const e=o[t],v=e.color,y=e.intensity,x=e.distance,_=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)a+=v.r*y,s+=v.g*y,l+=v.b*y;else if(e.isLightProbe)for(let t=0;t<9;t++)i.probe[t].addScaledVector(e.sh.coefficients[t],y);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),e.castShadow){const t=e.shadow,n=r.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,i.directionalShadow[c]=n,i.directionalShadowMap[c]=_,i.directionalShadowMatrix[c]=e.shadow.matrix,f++}i.directional[c]=t,c++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(v).multiplyScalar(y),t.distance=x,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=r.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,i.spotShadow[u]=n,i.spotShadowMap[u]=_,i.spotShadowMatrix[u]=e.shadow.matrix,g++}i.spot[u]=t,u++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(v).multiplyScalar(y),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),i.rectArea[d]=t,d++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=r.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,i.pointShadow[h]=n,i.pointShadowMap[h]=_,i.pointShadowMatrix[h]=e.shadow.matrix,m++}i.point[h]=t,h++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(y),t.groundColor.copy(e.groundColor).multiplyScalar(y),i.hemi[p]=t,p++}}d>0&&(e.isWebGL2||!0===t.has(\"OES_texture_float_linear\")?(i.rectAreaLTC1=Dn.LTC_FLOAT_1,i.rectAreaLTC2=Dn.LTC_FLOAT_2):!0===t.has(\"OES_texture_half_float_linear\")?(i.rectAreaLTC1=Dn.LTC_HALF_1,i.rectAreaLTC2=Dn.LTC_HALF_2):console.error(\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\")),i.ambient[0]=a,i.ambient[1]=s,i.ambient[2]=l;const v=i.hash;v.directionalLength===c&&v.pointLength===h&&v.spotLength===u&&v.rectAreaLength===d&&v.hemiLength===p&&v.numDirectionalShadows===f&&v.numPointShadows===m&&v.numSpotShadows===g||(i.directional.length=c,i.spot.length=u,i.rectArea.length=d,i.point.length=h,i.hemi.length=p,i.directionalShadow.length=f,i.directionalShadowMap.length=f,i.pointShadow.length=m,i.pointShadowMap.length=m,i.spotShadow.length=g,i.spotShadowMap.length=g,i.directionalShadowMatrix.length=f,i.pointShadowMatrix.length=m,i.spotShadowMatrix.length=g,v.directionalLength=c,v.pointLength=h,v.spotLength=u,v.rectAreaLength=d,v.hemiLength=p,v.numDirectionalShadows=f,v.numPointShadows=m,v.numSpotShadows=g,i.version=Ei++)},setupView:function(t,e){let n=0,r=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),o.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(o),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=i.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),o.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(o),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=i.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),s.identity(),a.copy(d.matrixWorld),a.premultiply(u),s.extractRotation(a),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(s),t.halfHeight.applyMatrix4(s),c++}else if(d.isPointLight){const t=i.point[r];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),r++}else if(d.isHemisphereLight){const t=i.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:i}}function Li(t,e){const n=new Ai(t,e),r=[],i=[];return{init:function(){r.length=0,i.length=0},state:{lightsArray:r,shadowsArray:i,lights:n},setupLights:function(){n.setup(r)},setupLightsView:function(t){n.setupView(r,t)},pushLight:function(t){r.push(t)},pushShadow:function(t){i.push(t)}}}function Ci(t,e){let n=new WeakMap;return{get:function(r,i=0){let o;return!1===n.has(r)?(o=new Li(t,e),n.set(r,[o])):i>=n.get(r).length?(o=new Li(t,e),n.get(r).push(o)):o=n.get(r)[i],o},dispose:function(){n=new WeakMap}}}class Pi extends _e{constructor(t){super(),this.type=\"MeshDepthMaterial\",this.depthPacking=3200,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Pi.prototype.isMeshDepthMaterial=!0;class Ri extends _e{constructor(t){super(),this.type=\"MeshDistanceMaterial\",this.referencePosition=new ot,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}Ri.prototype.isMeshDistanceMaterial=!0;function Di(t,e,n){let r=new An;const i=new Y,o=new Y,a=new et,s=[],l=[],c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new fn({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new Y},radius:{value:4}},vertexShader:\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\",fragmentShader:\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\\n\\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean * HALF_SAMPLE_RATE;\\n\\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const g=new Ge;g.setAttribute(\"position\",new Re(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new ln(g,d),y=this;function x(n,r){const i=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(r,null,i,d,v,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(r,null,i,p,v,null)}function _(t){const e=t<<0;let n=s[e];return void 0===n&&(n=new Pi({depthPacking:3201,morphTargets:t}),s[e]=n),n}function b(t){const e=t<<0;let n=l[e];return void 0===n&&(n=new Ri({morphTargets:t}),l[e]=n),n}function w(e,n,r,i,o,a,s){let l=null,h=_,d=e.customDepthMaterial;if(!0===i.isPointLight&&(h=b,d=e.customDistanceMaterial),void 0===d){let t=!1;!0===r.morphTargets&&(t=n.morphAttributes&&n.morphAttributes.position&&n.morphAttributes.position.length>0),l=h(t)}else l=d;if(t.localClippingEnabled&&!0===r.clipShadows&&0!==r.clippingPlanes.length){const t=l.uuid,e=r.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let i=n[e];void 0===i&&(i=l.clone(),n[e]=i),l=i}return l.visible=r.visible,l.wireframe=r.wireframe,l.side=3===s?null!==r.shadowSide?r.shadowSide:r.side:null!==r.shadowSide?r.shadowSide:u[r.side],l.clipShadows=r.clipShadows,l.clippingPlanes=r.clippingPlanes,l.clipIntersection=r.clipIntersection,l.wireframeLinewidth=r.wireframeLinewidth,l.linewidth=r.linewidth,!0===i.isPointLight&&!0===l.isMeshDistanceMaterial&&(l.referencePosition.setFromMatrixPosition(i.matrixWorld),l.nearDistance=o,l.farDistance=a),l}function M(n,i,o,a,s){if(!1===n.visible)return;if(n.layers.test(i.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===s)&&(!n.frustumCulled||r.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,n.matrixWorld);const r=e.update(n),i=n.material;if(Array.isArray(i)){const e=r.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=i[c.materialIndex];if(h&&h.visible){const e=w(n,r,h,a,o.near,o.far,s);t.renderBufferDirect(o,null,r,e,n,c)}}}else if(i.visible){const e=w(n,r,i,a,o.near,o.far,s);t.renderBufferDirect(o,null,r,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)M(l[t],i,o,a,s)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,s){if(!1===y.enabled)return;if(!1===y.autoUpdate&&!1===y.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;i.copy(u.mapSize);const p=u.getFrameExtents();if(i.multiply(p),o.copy(u.mapSize),(i.x>h||i.y>h)&&(i.x>h&&(o.x=Math.floor(h/p.x),i.x=o.x*p.x,u.mapSize.x=o.x),i.y>h&&(o.y=Math.floor(h/p.y),i.y=o.y*p.y,u.mapSize.y=o.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:m,magFilter:m,format:S};u.map=new nt(i.x,i.y,t),u.map.texture.name=c.name+\".shadowMap\",u.mapPass=new nt(i.x,i.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:f,magFilter:f,format:S};u.map=new nt(i.x,i.y,t),u.map.texture.name=c.name+\".shadowMap\",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const g=u.getViewportCount();for(let t=0;t<g;t++){const e=u.getViewport(t);a.set(o.x*e.x,o.y*e.y,o.x*e.z,o.y*e.w),d.viewport(a),u.updateMatrices(c,t),r=u.getFrustum(),M(n,s,u.camera,c,this.type)}u.isPointLightShadow||3!==this.type||x(u,s),u.needsUpdate=!1}y.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function Ii(t,e,n){const r=n.isWebGL2;const i=new function(){let e=!1;const n=new et;let r=null;const i=new et(0,0,0,0);return{setMask:function(n){r===n||e||(t.colorMask(n,n,n,n),r=n)},setLocked:function(t){e=t},setClear:function(e,r,o,a,s){!0===s&&(e*=a,r*=a,o*=a),n.set(e,r,o,a),!1===i.equals(n)&&(t.clearColor(e,r,o,a),i.copy(n))},reset:function(){e=!1,r=null,i.set(-1,0,0,0)}}},o=new function(){let e=!1,n=null,r=null,i=null;return{setTest:function(t){t?B(2929):F(2929)},setMask:function(r){n===r||e||(t.depthMask(r),n=r)},setFunc:function(e){if(r!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);r=e}},setLocked:function(t){e=t},setClear:function(e){i!==e&&(t.clearDepth(e),i=e)},reset:function(){e=!1,n=null,r=null,i=null}}},a=new function(){let e=!1,n=null,r=null,i=null,o=null,a=null,s=null,l=null,c=null;return{setTest:function(t){e||(t?B(2960):F(2960))},setMask:function(r){n===r||e||(t.stencilMask(r),n=r)},setFunc:function(e,n,a){r===e&&i===n&&o===a||(t.stencilFunc(e,n,a),r=e,i=n,o=a)},setOp:function(e,n,r){a===e&&s===n&&l===r||(t.stencilOp(e,n,r),a=e,s=n,l=r)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,r=null,i=null,o=null,a=null,s=null,l=null,c=null}}};let s={},l=null,c={},u=null,d=!1,p=null,f=null,m=null,g=null,v=null,y=null,x=null,_=!1,b=null,w=null,M=null,S=null,E=null;const T=t.getParameter(35661);let A=!1,L=0;const C=t.getParameter(7938);-1!==C.indexOf(\"WebGL\")?(L=parseFloat(/^WebGL (\\d)/.exec(C)[1]),A=L>=1):-1!==C.indexOf(\"OpenGL ES\")&&(L=parseFloat(/^OpenGL ES (\\d)/.exec(C)[1]),A=L>=2);let P=null,R={};const D=t.getParameter(3088),I=t.getParameter(2978),N=(new et).fromArray(D),O=(new et).fromArray(I);function k(e,n,r){const i=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<r;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,i);return o}const z={};function B(e){!0!==s[e]&&(t.enable(e),s[e]=!0)}function F(e){!1!==s[e]&&(t.disable(e),s[e]=!1)}z[3553]=k(3553,3553,1),z[34067]=k(34067,34069,6),i.setClear(0,0,0,1),o.setClear(1),a.setClear(0),B(2929),o.setFunc(3),G(!1),j(1),B(2884),V(0);const U={[h]:32774,101:32778,102:32779};if(r)U[103]=32775,U[104]=32776;else{const t=e.get(\"EXT_blend_minmax\");null!==t&&(U[103]=t.MIN_EXT,U[104]=t.MAX_EXT)}const H={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function V(e,n,r,i,o,a,s,l){if(0!==e){if(!1===d&&(B(3042),d=!0),5===e)o=o||n,a=a||r,s=s||i,n===f&&o===v||(t.blendEquationSeparate(U[n],U[o]),f=n,v=o),r===m&&i===g&&a===y&&s===x||(t.blendFuncSeparate(H[r],H[i],H[a],H[s]),m=r,g=i,y=a,x=s),p=e,_=null;else if(e!==p||l!==_){if(f===h&&v===h||(t.blendEquation(32774),f=h,v=h),l)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",e)}m=null,g=null,y=null,x=null,p=e,_=l}}else!0===d&&(F(3042),d=!1)}function G(e){b!==e&&(e?t.frontFace(2304):t.frontFace(2305),b=e)}function j(e){0!==e?(B(2884),e!==w&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):F(2884),w=e}function W(e,n,r){e?(B(32823),S===n&&E===r||(t.polygonOffset(n,r),S=n,E=r)):F(32823)}function q(e){void 0===e&&(e=33984+T-1),P!==e&&(t.activeTexture(e),P=e)}return{buffers:{color:i,depth:o,stencil:a},enable:B,disable:F,bindFramebuffer:function(e,n){return null===n&&null!==l&&(n=l),c[e]!==n&&(t.bindFramebuffer(e,n),c[e]=n,r&&(36009===e&&(c[36160]=n),36160===e&&(c[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==l&&(t.bindFramebuffer(36160,e),l=e)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:V,setMaterial:function(t,e){2===t.side?F(2884):B(2884);let n=1===t.side;e&&(n=!n),G(n),1===t.blending&&!1===t.transparent?V(0):V(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),o.setFunc(t.depthFunc),o.setTest(t.depthTest),o.setMask(t.depthWrite),i.setMask(t.colorWrite);const r=t.stencilWrite;a.setTest(r),r&&(a.setMask(t.stencilWriteMask),a.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),a.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),W(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?B(32926):F(32926)},setFlipSided:G,setCullFace:j,setLineWidth:function(e){e!==M&&(A&&t.lineWidth(e),M=e)},setPolygonOffset:W,setScissorTest:function(t){t?B(3089):F(3089)},activeTexture:q,bindTexture:function(e,n){null===P&&q();let r=R[P];void 0===r&&(r={type:void 0,texture:void 0},R[P]=r),r.type===e&&r.texture===n||(t.bindTexture(e,n||z[e]),r.type=e,r.texture=n)},unbindTexture:function(){const e=R[P];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error(\"THREE.WebGLState:\",t)}},scissor:function(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function(e){!1===O.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),O.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===r&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),s={},P=null,R={},l=null,c={},u=null,d=!1,p=null,f=null,m=null,g=null,v=null,y=null,x=null,_=!1,b=null,w=null,M=null,S=null,E=null,N.set(0,0,t.canvas.width,t.canvas.height),O.set(0,0,t.canvas.width,t.canvas.height),i.reset(),o.reset(),a.reset()}}}function Ni(t,e,n,r,i,o,a){const s=i.isWebGL2,l=i.maxTextures,c=i.maxCubemapSize,h=i.maxTextureSize,v=i.maxSamples,A=new WeakMap;let L,C=!1;try{C=\"undefined\"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\"2d\")}catch(t){}function P(t,e){return C?new OffscreenCanvas(t,e):document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\")}function R(t,e,n,r){let i=1;if((t.width>r||t.height>r)&&(i=r/Math.max(t.width,t.height)),i<1||!0===e){if(\"undefined\"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||\"undefined\"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap){const r=e?X:Math.floor,o=r(i*t.width),a=r(i*t.height);void 0===L&&(L=P(o,a));const s=n?P(o,a):L;s.width=o,s.height=a;return s.getContext(\"2d\").drawImage(t,0,0,o,a),console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+t.width+\"x\"+t.height+\") to (\"+o+\"x\"+a+\").\"),s}return\"data\"in t&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+t.width+\"x\"+t.height+\").\"),t}return t}function D(t){return q(t.width)&&q(t.height)}function I(t,e){return t.generateMipmaps&&e&&t.minFilter!==f&&t.minFilter!==m}function N(e,n,i,o,a=1){t.generateMipmap(e);r.get(n).__maxMipLevel=Math.log2(Math.max(i,o,a))}function O(n,r,i){if(!1===s)return r;if(null!==n){if(void 0!==t[n])return t[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let o=r;return 6403===r&&(5126===i&&(o=33326),5131===i&&(o=33325),5121===i&&(o=33321)),6407===r&&(5126===i&&(o=34837),5131===i&&(o=34843),5121===i&&(o=32849)),6408===r&&(5126===i&&(o=34836),5131===i&&(o=34842),5121===i&&(o=32856)),33325!==o&&33326!==o&&34842!==o&&34836!==o||e.get(\"EXT_color_buffer_float\"),o}function k(t){return t===f||1004===t||1005===t?9728:9729}function z(e){const n=e.target;n.removeEventListener(\"dispose\",z),function(e){const n=r.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),r.remove(e)}(n),n.isVideoTexture&&A.delete(n),a.memory.textures--}function B(e){const n=e.target;n.removeEventListener(\"dispose\",B),function(e){const n=e.texture,i=r.get(e),o=r.get(n);if(!e)return;void 0!==o.__webglTexture&&(t.deleteTexture(o.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(i.__webglFramebuffer[e]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[e]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&t.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer&&t.deleteRenderbuffer(i.__webglColorRenderbuffer),i.__webglDepthRenderbuffer&&t.deleteRenderbuffer(i.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,i=n.length;e<i;e++){const i=r.get(n[e]);i.__webglTexture&&(t.deleteTexture(i.__webglTexture),a.memory.textures--),r.remove(n[e])}r.remove(n),r.remove(e)}(n)}let F=0;function U(t,e){const i=r.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;A.get(t)!==e&&(A.set(t,e),t.update())}(t),t.version>0&&i.__version!==t.version){const n=t.image;if(void 0===n)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\");else{if(!1!==n.complete)return void Y(i,t,e);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.activeTexture(33984+e),n.bindTexture(3553,i.__webglTexture)}function H(e,i){const a=r.get(e);e.version>0&&a.__version!==e.version?function(e,r,i){if(6!==r.image.length)return;W(e,r),n.activeTexture(33984+i),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const a=r&&(r.isCompressedTexture||r.image[0].isCompressedTexture),l=r.image[0]&&r.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?r.image[t].image:r.image[t]:R(r.image[t],!1,!0,c);const u=h[0],d=D(u)||s,p=o.convert(r.format),f=o.convert(r.type),m=O(r.internalFormat,p,f);let g;if(j(34067,r,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e<g.length;e++){const i=g[e];r.format!==S&&r.format!==M?null!==p?n.compressedTexImage2D(34069+t,e,m,i.width,i.height,0,i.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):n.texImage2D(34069+t,e,m,i.width,i.height,0,p,f,i.data)}}e.__maxMipLevel=g.length-1}else{g=r.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,m,h[t].width,h[t].height,0,p,f,h[t].data);for(let e=0;e<g.length;e++){const r=g[e].image[t].image;n.texImage2D(34069+t,e+1,m,r.width,r.height,0,p,f,r.data)}}else{n.texImage2D(34069+t,0,m,p,f,h[t]);for(let e=0;e<g.length;e++){const r=g[e];n.texImage2D(34069+t,e+1,m,p,f,r.image[t])}}e.__maxMipLevel=g.length}I(r,d)&&N(34067,r,u.width,u.height);e.__version=r.version,r.onUpdate&&r.onUpdate(r)}(a,e,i):(n.activeTexture(33984+i),n.bindTexture(34067,a.__webglTexture))}const V={[u]:10497,[d]:33071,[p]:33648},G={[f]:9728,1004:9984,1005:9986,[m]:9729,1007:9985,[g]:9987};function j(n,o,a){if(a?(t.texParameteri(n,10242,V[o.wrapS]),t.texParameteri(n,10243,V[o.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,V[o.wrapR]),t.texParameteri(n,10240,G[o.magFilter]),t.texParameteri(n,10241,G[o.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),o.wrapS===d&&o.wrapT===d||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\"),t.texParameteri(n,10240,k(o.magFilter)),t.texParameteri(n,10241,k(o.minFilter)),o.minFilter!==f&&o.minFilter!==m&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\")),!0===e.has(\"EXT_texture_filter_anisotropic\")){const a=e.get(\"EXT_texture_filter_anisotropic\");if(o.type===_&&!1===e.has(\"OES_texture_float_linear\"))return;if(!1===s&&o.type===b&&!1===e.has(\"OES_texture_half_float_linear\"))return;(o.anisotropy>1||r.get(o).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,i.getMaxAnisotropy())),r.get(o).__currentAnisotropy=o.anisotropy)}}function W(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",z),e.__webglTexture=t.createTexture(),a.memory.textures++)}function Y(e,r,i){let a=3553;r.isDataTexture2DArray&&(a=35866),r.isDataTexture3D&&(a=32879),W(e,r),n.activeTexture(33984+i),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,r.flipY),t.pixelStorei(37441,r.premultiplyAlpha),t.pixelStorei(3317,r.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!s&&(t.wrapS!==d||t.wrapT!==d||t.minFilter!==f&&t.minFilter!==m)}(r)&&!1===D(r.image),c=R(r.image,l,!1,h),u=D(c)||s,p=o.convert(r.format);let g,v=o.convert(r.type),b=O(r.internalFormat,p,v);j(a,r,u);const A=r.mipmaps;if(r.isDepthTexture)b=6402,s?b=r.type===_?36012:r.type===x?33190:r.type===w?35056:33189:r.type===_&&console.error(\"WebGLRenderer: Floating point depth texture requires WebGL2.\"),r.format===E&&6402===b&&r.type!==y&&r.type!==x&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),r.type=y,v=o.convert(r.type)),r.format===T&&6402===b&&(b=34041,r.type!==w&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),r.type=w,v=o.convert(r.type))),n.texImage2D(3553,0,b,c.width,c.height,0,p,v,null);else if(r.isDataTexture)if(A.length>0&&u){for(let t=0,e=A.length;t<e;t++)g=A[t],n.texImage2D(3553,t,b,g.width,g.height,0,p,v,g.data);r.generateMipmaps=!1,e.__maxMipLevel=A.length-1}else n.texImage2D(3553,0,b,c.width,c.height,0,p,v,c.data),e.__maxMipLevel=0;else if(r.isCompressedTexture){for(let t=0,e=A.length;t<e;t++)g=A[t],r.format!==S&&r.format!==M?null!==p?n.compressedTexImage2D(3553,t,b,g.width,g.height,0,g.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):n.texImage2D(3553,t,b,g.width,g.height,0,p,v,g.data);e.__maxMipLevel=A.length-1}else if(r.isDataTexture2DArray)n.texImage3D(35866,0,b,c.width,c.height,c.depth,0,p,v,c.data),e.__maxMipLevel=0;else if(r.isDataTexture3D)n.texImage3D(32879,0,b,c.width,c.height,c.depth,0,p,v,c.data),e.__maxMipLevel=0;else if(A.length>0&&u){for(let t=0,e=A.length;t<e;t++)g=A[t],n.texImage2D(3553,t,b,p,v,g);r.generateMipmaps=!1,e.__maxMipLevel=A.length-1}else n.texImage2D(3553,0,b,p,v,c),e.__maxMipLevel=0;I(r,u)&&N(a,r,c.width,c.height),e.__version=r.version,r.onUpdate&&r.onUpdate(r)}function Z(e,i,a,s,l){const c=o.convert(a.format),h=o.convert(a.type),u=O(a.internalFormat,c,h);32879===l||35866===l?n.texImage3D(l,0,u,i.width,i.height,i.depth,0,c,h,null):n.texImage2D(l,0,u,i.width,i.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,s,l,r.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function J(e,n,r){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let i=33189;if(r){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===_?i=36012:e.type===x&&(i=33190));const r=Q(n);t.renderbufferStorageMultisample(36161,r,i,n.width,n.height)}else t.renderbufferStorage(36161,i,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(r){const e=Q(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,i=o.convert(e.format),a=o.convert(e.type),s=O(e.internalFormat,i,a);if(r){const e=Q(n);t.renderbufferStorageMultisample(36161,e,s,n.width,n.height)}else t.renderbufferStorage(36161,s,n.width,n.height)}t.bindRenderbuffer(36161,null)}function $(e){const i=r.get(e),o=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(o)throw new Error(\"target.depthTexture not supported in Cube render targets\");!function(e,i){if(i&&i.isWebGLCubeRenderTarget)throw new Error(\"Depth Texture with cube render targets is not supported\");if(n.bindFramebuffer(36160,e),!i.depthTexture||!i.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");r.get(i.depthTexture).__webglTexture&&i.depthTexture.image.width===i.width&&i.depthTexture.image.height===i.height||(i.depthTexture.image.width=i.width,i.depthTexture.image.height=i.height,i.depthTexture.needsUpdate=!0),U(i.depthTexture,0);const o=r.get(i.depthTexture).__webglTexture;if(i.depthTexture.format===E)t.framebufferTexture2D(36160,36096,3553,o,0);else{if(i.depthTexture.format!==T)throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(36160,33306,3553,o,0)}}(i.__webglFramebuffer,e)}else if(o){i.__webglDepthbuffer=[];for(let r=0;r<6;r++)n.bindFramebuffer(36160,i.__webglFramebuffer[r]),i.__webglDepthbuffer[r]=t.createRenderbuffer(),J(i.__webglDepthbuffer[r],e,!1)}else n.bindFramebuffer(36160,i.__webglFramebuffer),i.__webglDepthbuffer=t.createRenderbuffer(),J(i.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function Q(t){return s&&t.isWebGLMultisampleRenderTarget?Math.min(v,t.samples):0}let K=!1,tt=!1;this.allocateTextureUnit=function(){const t=F;return t>=l&&console.warn(\"THREE.WebGLTextures: Trying to use \"+t+\" texture units while this GPU supports only \"+l),F+=1,t},this.resetTextureUnits=function(){F=0},this.setTexture2D=U,this.setTexture2DArray=function(t,e){const i=r.get(t);t.version>0&&i.__version!==t.version?Y(i,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,i.__webglTexture))},this.setTexture3D=function(t,e){const i=r.get(t);t.version>0&&i.__version!==t.version?Y(i,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,i.__webglTexture))},this.setTextureCube=H,this.setupRenderTarget=function(e){const l=e.texture,c=r.get(e),h=r.get(l);e.addEventListener(\"dispose\",B),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,a.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,f=l.isDataTexture3D||l.isDataTexture2DArray,m=D(e)||s;if(!s||l.format!==M||l.type!==_&&l.type!==b||(l.format=S,console.warn(\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(i.drawBuffers){const n=e.texture;for(let e=0,i=n.length;e<i;e++){const i=r.get(n[e]);void 0===i.__webglTexture&&(i.__webglTexture=t.createTexture(),a.memory.textures++)}}else console.warn(\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\");else if(p)if(s){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const r=o.convert(l.format),i=o.convert(l.type),a=O(l.internalFormat,r,i),s=Q(e);t.renderbufferStorageMultisample(36161,s,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),J(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\");if(u){n.bindTexture(34067,h.__webglTexture),j(34067,l,m);for(let t=0;t<6;t++)Z(c.__webglFramebuffer[t],e,l,36064,34069+t);I(l,m)&&N(34067,l,e.width,e.height),n.bindTexture(34067,null)}else if(d){const t=e.texture;for(let i=0,o=t.length;i<o;i++){const o=t[i],a=r.get(o);n.bindTexture(3553,a.__webglTexture),j(3553,o,m),Z(c.__webglFramebuffer,e,o,36064+i,3553),I(o,m)&&N(3553,o,e.width,e.height)}n.bindTexture(3553,null)}else{let t=3553;if(f)if(s){t=l.isDataTexture3D?32879:35866}else console.warn(\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\");n.bindTexture(t,h.__webglTexture),j(t,l,m),Z(c.__webglFramebuffer,e,l,36064,t),I(l,m)&&N(t,l,e.width,e.height,e.depth),n.bindTexture(t,null)}e.depthBuffer&&$(e)},this.updateRenderTargetMipmap=function(t){const e=D(t)||s,i=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let o=0,a=i.length;o<a;o++){const a=i[o];if(I(a,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,i=r.get(a).__webglTexture;n.bindTexture(e,i),N(e,a,t.width,t.height),n.bindTexture(e,null)}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(s){const i=e.width,o=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const s=r.get(e);n.bindFramebuffer(36008,s.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,s.__webglFramebuffer),t.blitFramebuffer(0,0,i,o,0,0,i,o,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,s.__webglMultisampledFramebuffer)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===K&&(console.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\"),K=!0),t=t.texture),U(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===tt&&(console.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),tt=!0),t=t.texture),H(t,e)}}function Oi(t,e,n){const r=n.isWebGL2;return{convert:function(t){let n;if(t===v)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===y)return 5123;if(1013===t)return 5124;if(t===x)return 5125;if(t===_)return 5126;if(t===b)return r?5131:(n=e.get(\"OES_texture_half_float\"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===M)return 6407;if(t===S)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===E)return 6402;if(t===T)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(33776===t||33777===t||33778===t||33779===t){if(n=e.get(\"WEBGL_compressed_texture_s3tc\"),null===n)return null;if(33776===t)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===t||35841===t||35842===t||35843===t){if(n=e.get(\"WEBGL_compressed_texture_pvrtc\"),null===n)return null;if(35840===t)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get(\"WEBGL_compressed_texture_etc1\"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((37492===t||37496===t)&&(n=e.get(\"WEBGL_compressed_texture_etc\"),null!==n)){if(37492===t)return n.COMPRESSED_RGB8_ETC2;if(37496===t)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get(\"WEBGL_compressed_texture_astc\"),null!==n?t:null):36492===t?(n=e.get(\"EXT_texture_compression_bptc\"),null!==n?t:null):t===w?r?34042:(n=e.get(\"WEBGL_depth_texture\"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class ki extends gn{constructor(t=[]){super(),this.cameras=t}}ki.prototype.isArrayCamera=!0;class zi extends se{constructor(){super(),this.type=\"Group\"}}zi.prototype.isGroup=!0;const Bi={type:\"move\"};class Fi{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new zi,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new zi,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new ot,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new ot),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new zi,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new ot,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new ot),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:\"disconnected\",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let r=null,i=null,o=null;const a=this._targetRay,s=this._grip,l=this._hand;if(t&&\"visible-blurred\"!==e.session.visibilityState)if(null!==a&&(r=e.getPose(t.targetRaySpace,n),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Bi))),l&&t.hand){o=!0;for(const r of t.hand.values()){const t=e.getJointPose(r,n);if(void 0===l.joints[r.jointName]){const t=new zi;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[r.jointName]=t,l.add(t)}const i=l.joints[r.jointName];null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.jointRadius=t.radius),i.visible=null!==t}const r=l.joints[\"index-finger-tip\"],i=l.joints[\"thumb-tip\"],a=r.position.distanceTo(i.position),s=.02,c=.005;l.inputState.pinching&&a>s+c?(l.inputState.pinching=!1,this.dispatchEvent({type:\"pinchend\",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=s-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:\"pinchstart\",handedness:t.handedness,target:this}))}else null!==s&&t.gripSpace&&(i=e.getPose(t.gripSpace,n),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==r),null!==s&&(s.visible=null!==i),null!==l&&(l.visible=null!==o),this}}class Ui extends F{constructor(t,e){super();const n=this,r=t.state;let i=null,o=1,a=null,s=\"local-floor\",l=null,c=null,h=null,u=null;const d=[],p=new Map,f=new gn;f.layers.enable(1),f.viewport=new et;const m=new gn;m.layers.enable(2),m.viewport=new et;const g=[f,m],v=new ki;v.layers.enable(1),v.layers.enable(2);let y=null,x=null;function _(t){const e=p.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function b(){p.forEach((function(t,e){t.disconnect(e)})),p.clear(),y=null,x=null,r.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),A.stop(),n.isPresenting=!1,n.dispatchEvent({type:\"sessionend\"})}function w(t){const e=i.inputSources;for(let t=0;t<d.length;t++)p.set(e[t],d[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],r=p.get(n);r&&(r.dispatchEvent({type:\"disconnected\",data:n}),p.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],r=p.get(n);r&&r.dispatchEvent({type:\"connected\",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=d[t];return void 0===e&&(e=new Fi,d[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=d[t];return void 0===e&&(e=new Fi,d[t]=e),e.getGripSpace()},this.getHand=function(t){let e=d[t];return void 0===e&&(e=new Fi,d[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){o=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")},this.setReferenceSpaceType=function(t){s=t,!0===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")},this.getReferenceSpace=function(){return a},this.getSession=function(){return i},this.setSession=async function(t){if(i=t,null!==i){i.addEventListener(\"select\",_),i.addEventListener(\"selectstart\",_),i.addEventListener(\"selectend\",_),i.addEventListener(\"squeeze\",_),i.addEventListener(\"squeezestart\",_),i.addEventListener(\"squeezeend\",_),i.addEventListener(\"end\",b),i.addEventListener(\"inputsourceschange\",w);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:o},r=new XRWebGLLayer(i,e,n);i.updateRenderState({baseLayer:r})}else{let n=0;t.depth&&(n=t.stencil?34041:6402);const r={colorFormat:t.alpha?6408:6407,depthFormat:n,scaleFactor:o};c=new XRWebGLBinding(i,e),u=c.createProjectionLayer(r),h=e.createFramebuffer(),i.updateRenderState({layers:[u]})}a=await i.requestReferenceSpace(s),A.setContext(i),A.start(),n.isPresenting=!0,n.dispatchEvent({type:\"sessionstart\"})}};const M=new ot,S=new ot;function E(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;v.near=m.near=f.near=t.near,v.far=m.far=f.far=t.far,y===v.near&&x===v.far||(i.updateRenderState({depthNear:v.near,depthFar:v.far}),y=v.near,x=v.far);const e=t.parent,n=v.cameras;E(v,e);for(let t=0;t<n.length;t++)E(n[t],e);v.matrixWorld.decompose(v.position,v.quaternion,v.scale),t.position.copy(v.position),t.quaternion.copy(v.quaternion),t.scale.copy(v.scale),t.matrix.copy(v.matrix),t.matrixWorld.copy(v.matrixWorld);const r=t.children;for(let t=0,e=r.length;t<e;t++)r[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){M.setFromMatrixPosition(e.matrixWorld),S.setFromMatrixPosition(n.matrixWorld);const r=M.distanceTo(S),i=e.projectionMatrix.elements,o=n.projectionMatrix.elements,a=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],c=(i[9]-1)/i[5],h=(i[8]-1)/i[0],u=(o[8]+1)/o[0],d=a*h,p=a*u,f=r/(-h+u),m=f*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f,v=s+f,y=d-m,x=p+(r-m),_=l*s/v*g,b=c*s/v*g;t.projectionMatrix.makePerspective(y,x,_,b,g,v)}(v,f,m):v.projectionMatrix.copy(f.projectionMatrix)},this.getCamera=function(){return v};let T=null;const A=new Ln;A.setAnimationLoop((function(t,n){if(l=n.getViewerPose(a),null!==l){const t=l.views,n=i.renderState.baseLayer;void 0===i.renderState.layers&&r.bindXRFramebuffer(n.framebuffer);let o=!1;t.length!==v.cameras.length&&(v.cameras.length=0,o=!0);for(let a=0;a<t.length;a++){const s=t[a];let l=null;if(void 0===i.renderState.layers)l=n.getViewport(s);else{const t=c.getViewSubImage(u,s);r.bindXRFramebuffer(h),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,36096,3553,t.depthStencilTexture,0),l=t.viewport}const d=g[a];d.matrix.fromArray(s.transform.matrix),d.projectionMatrix.fromArray(s.projectionMatrix),d.viewport.set(l.x,l.y,l.width,l.height),0===a&&v.matrix.copy(d.matrix),!0===o&&v.cameras.push(d)}}const o=i.inputSources;for(let t=0;t<d.length;t++){const e=d[t],r=o[t];e.update(r,n,a)}T&&T(t,n)})),this.setAnimationLoop=function(t){T=t},this.dispose=function(){}}}function Hi(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap);const r=t.get(n).envMap;if(r){e.envMap.value=r,e.flipEnvMap.value=r.isCubeTexture&&r._needsFlipEnvMap?-1:1,e.reflectivity.value=n.reflectivity,e.refractionRatio.value=n.refractionRatio;const i=t.get(r).__maxMipLevel;void 0!==i&&(e.maxMipLevel.value=i)}let i,o;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?i=n.map:n.specularMap?i=n.specularMap:n.displacementMap?i=n.displacementMap:n.normalMap?i=n.normalMap:n.bumpMap?i=n.bumpMap:n.roughnessMap?i=n.roughnessMap:n.metalnessMap?i=n.metalnessMap:n.alphaMap?i=n.alphaMap:n.emissiveMap?i=n.emissiveMap:n.clearcoatMap?i=n.clearcoatMap:n.clearcoatNormalMap?i=n.clearcoatNormalMap:n.clearcoatRoughnessMap&&(i=n.clearcoatRoughnessMap),void 0!==i&&(i.isWebGLRenderTarget&&(i=i.texture),!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix)),n.aoMap?o=n.aoMap:n.lightMap&&(o=n.lightMap),void 0!==o&&(o.isWebGLRenderTarget&&(o=o.texture),!0===o.matrixAutoUpdate&&o.updateMatrix(),e.uv2Transform.value.copy(o.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,r,i,o,a){r.isMeshBasicMaterial?e(t,r):r.isMeshLambertMaterial?(e(t,r),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,r)):r.isMeshToonMaterial?(e(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshPhongMaterial?(e(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshStandardMaterial?(e(t,r),r.isMeshPhysicalMaterial?function(t,e,r){n(t,e),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen);e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap);e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap);e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate());t.transmission.value=e.transmission,e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap);e.transmission>0&&(t.transmissionSamplerMap.value=r.texture,t.transmissionSamplerSize.value.set(r.width,r.height));t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap);t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)}(t,r,a):n(t,r)):r.isMeshMatcapMaterial?(e(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshDepthMaterial?(e(t,r),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isMeshDistanceMaterial?(e(t,r),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,r)):r.isMeshNormalMaterial?(e(t,r),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,r)):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,n,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*r,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let i;e.map?i=e.map:e.alphaMap&&(i=e.alphaMap);void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),t.uvTransform.value.copy(i.matrix))}(t,r,i,o):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Vi(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");return t.style.display=\"block\",t}(),n=void 0!==t.context?t.context:null,r=void 0!==t.alpha&&t.alpha,i=void 0===t.depth||t.depth,o=void 0===t.stencil||t.stencil,a=void 0!==t.antialias&&t.antialias,s=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:\"default\",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let u=null,p=null;const m=[],y=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=N,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const x=this;let w=!1,M=0,E=0,T=null,A=-1,L=null;const C=new et,P=new et;let R=null,D=e.width,I=e.height,O=1,k=null,z=null;const B=new et(0,0,D,I),F=new et(0,0,D,I);let U=!1;const H=[],V=new An;let G=!1,j=!1,W=null;const q=new kt,X=new ot,Y={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Z(){return null===T?O:1}let J,$,Q,K,tt,it,at,st,lt,ct,ht,ut,dt,pt,ft,mt,gt,vt,yt,xt,_t,bt,wt=n;function Mt(t,n){for(let r=0;r<t.length;r++){const i=t[r],o=e.getContext(i,n);if(null!==o)return o}return null}try{const t={alpha:r,depth:i,stencil:o,antialias:a,premultipliedAlpha:s,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener(\"webglcontextlost\",Tt,!1),e.addEventListener(\"webglcontextrestored\",At,!1),null===wt){const e=[\"webgl2\",\"webgl\",\"experimental-webgl\"];if(!0===x.isWebGL1Renderer&&e.shift(),wt=Mt(e,t),null===wt)throw Mt(e)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}void 0===wt.getShaderPrecisionFormat&&(wt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error(\"THREE.WebGLRenderer: \"+t.message),t}function St(){J=new Un(wt),$=new zn(wt,J,t),J.init($),_t=new Oi(wt,J,$),Q=new Ii(wt,J,$),H[0]=1029,K=new Gn(wt),tt=new xi,it=new Ni(wt,J,Q,tt,$,_t,K),at=new Fn(x),st=new Cn(wt,$),bt=new On(wt,J,st,$),lt=new Hn(wt,st,K,bt),ct=new Xn(wt,lt,st,K),vt=new qn(wt),ft=new Bn(tt),ht=new yi(x,at,J,$,bt,ft),ut=new Hi(tt),dt=new Mi(tt),pt=new Ci(J,$),gt=new Nn(x,at,Q,ct,s),mt=new Di(x,ct,$),yt=new kn(wt,J,K,$),xt=new Vn(wt,J,K,$),K.programs=ht.programs,x.capabilities=$,x.extensions=J,x.properties=tt,x.renderLists=dt,x.shadowMap=mt,x.state=Q,x.info=K}St();const Et=new Ui(x,wt);function Tt(t){t.preventDefault(),console.log(\"THREE.WebGLRenderer: Context Lost.\"),w=!0}function At(){console.log(\"THREE.WebGLRenderer: Context Restored.\"),w=!1;const t=K.autoReset,e=mt.enabled,n=mt.autoUpdate,r=mt.needsUpdate,i=mt.type;St(),K.autoReset=t,mt.enabled=e,mt.autoUpdate=n,mt.needsUpdate=r,mt.type=i}function Lt(t){const e=t.target;e.removeEventListener(\"dispose\",Lt),function(t){(function(t){const e=tt.get(t).programs;void 0!==e&&e.forEach((function(t){ht.releaseProgram(t)}))})(t),tt.remove(t)}(e)}this.xr=Et,this.getContext=function(){return wt},this.getContextAttributes=function(){return wt.getContextAttributes()},this.forceContextLoss=function(){const t=J.get(\"WEBGL_lose_context\");t&&t.loseContext()},this.forceContextRestore=function(){const t=J.get(\"WEBGL_lose_context\");t&&t.restoreContext()},this.getPixelRatio=function(){return O},this.setPixelRatio=function(t){void 0!==t&&(O=t,this.setSize(D,I,!1))},this.getSize=function(t){return t.set(D,I)},this.setSize=function(t,n,r){Et.isPresenting?console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\"):(D=t,I=n,e.width=Math.floor(t*O),e.height=Math.floor(n*O),!1!==r&&(e.style.width=t+\"px\",e.style.height=n+\"px\"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(D*O,I*O).floor()},this.setDrawingBufferSize=function(t,n,r){D=t,I=n,O=r,e.width=Math.floor(t*r),e.height=Math.floor(n*r),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(C)},this.getViewport=function(t){return t.copy(B)},this.setViewport=function(t,e,n,r){t.isVector4?B.set(t.x,t.y,t.z,t.w):B.set(t,e,n,r),Q.viewport(C.copy(B).multiplyScalar(O).floor())},this.getScissor=function(t){return t.copy(F)},this.setScissor=function(t,e,n,r){t.isVector4?F.set(t.x,t.y,t.z,t.w):F.set(t,e,n,r),Q.scissor(P.copy(F).multiplyScalar(O).floor())},this.getScissorTest=function(){return U},this.setScissorTest=function(t){Q.setScissorTest(U=t)},this.setOpaqueSort=function(t){k=t},this.setTransparentSort=function(t){z=t},this.getClearColor=function(t){return t.copy(gt.getClearColor())},this.setClearColor=function(){gt.setClearColor.apply(gt,arguments)},this.getClearAlpha=function(){return gt.getClearAlpha()},this.setClearAlpha=function(){gt.setClearAlpha.apply(gt,arguments)},this.clear=function(t,e,n){let r=0;(void 0===t||t)&&(r|=16384),(void 0===e||e)&&(r|=256),(void 0===n||n)&&(r|=1024),wt.clear(r)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(\"webglcontextlost\",Tt,!1),e.removeEventListener(\"webglcontextrestored\",At,!1),dt.dispose(),pt.dispose(),tt.dispose(),at.dispose(),ct.dispose(),bt.dispose(),Et.dispose(),Et.removeEventListener(\"sessionstart\",Pt),Et.removeEventListener(\"sessionend\",Rt),W&&(W.dispose(),W=null),Dt.stop()},this.renderBufferImmediate=function(t,e){bt.initAttributes();const n=tt.get(t);t.hasPositions&&!n.position&&(n.position=wt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=wt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=wt.createBuffer()),t.hasColors&&!n.color&&(n.color=wt.createBuffer());const r=e.getAttributes();t.hasPositions&&(wt.bindBuffer(34962,n.position),wt.bufferData(34962,t.positionArray,35048),bt.enableAttribute(r.position),wt.vertexAttribPointer(r.position,3,5126,!1,0,0)),t.hasNormals&&(wt.bindBuffer(34962,n.normal),wt.bufferData(34962,t.normalArray,35048),bt.enableAttribute(r.normal),wt.vertexAttribPointer(r.normal,3,5126,!1,0,0)),t.hasUvs&&(wt.bindBuffer(34962,n.uv),wt.bufferData(34962,t.uvArray,35048),bt.enableAttribute(r.uv),wt.vertexAttribPointer(r.uv,2,5126,!1,0,0)),t.hasColors&&(wt.bindBuffer(34962,n.color),wt.bufferData(34962,t.colorArray,35048),bt.enableAttribute(r.color),wt.vertexAttribPointer(r.color,3,5126,!1,0,0)),bt.disableUnusedAttributes(),wt.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,r,i,o){null===e&&(e=Y);const a=i.isMesh&&i.matrixWorld.determinant()<0,s=Ft(t,e,r,i);Q.setMaterial(r,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===r.wireframe&&(l=lt.getWireframeAttribute(n),u=2),(r.morphTargets||r.morphNormals)&&vt.update(i,n,r,s),bt.setup(i,r,s,n,l);let d=yt;null!==l&&(h=st.get(l),d=xt,d.setIndex(h));const p=null!==l?l.count:c.count,f=n.drawRange.start*u,m=n.drawRange.count*u,g=null!==o?o.start*u:0,v=null!==o?o.count*u:1/0,y=Math.max(f,g),x=Math.min(p,f+m,g+v)-1,_=Math.max(0,x-y+1);if(0!==_){if(i.isMesh)!0===r.wireframe?(Q.setLineWidth(r.wireframeLinewidth*Z()),d.setMode(1)):d.setMode(4);else if(i.isLine){let t=r.linewidth;void 0===t&&(t=1),Q.setLineWidth(t*Z()),i.isLineSegments?d.setMode(1):i.isLineLoop?d.setMode(2):d.setMode(3)}else i.isPoints?d.setMode(0):i.isSprite&&d.setMode(4);if(i.isInstancedMesh)d.renderInstances(y,_,i.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,_,t)}else d.render(y,_)}},this.compile=function(t,e){p=pt.get(t),p.init(),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(p.pushLight(t),t.castShadow&&p.pushShadow(t))})),p.setupLights(),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let r=0;r<n.length;r++){zt(n[r],t,e)}else zt(n,t,e)}))};let Ct=null;function Pt(){Dt.stop()}function Rt(){Dt.start()}const Dt=new Ln;function It(t,e,n,r){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)p.pushLight(t),t.castShadow&&p.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||V.intersectsSprite(t)){r&&X.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q);const e=ct.update(t),i=t.material;i.visible&&u.push(t,e,i,n,X.z,null)}}else if(t.isImmediateRenderObject)r&&X.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q),u.push(t,null,t.material,n,X.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==K.render.frame&&(t.skeleton.update(),t.skeleton.frame=K.render.frame),!t.frustumCulled||V.intersectsObject(t))){r&&X.setFromMatrixPosition(t.matrixWorld).applyMatrix4(q);const e=ct.update(t),i=t.material;if(Array.isArray(i)){const r=e.groups;for(let o=0,a=r.length;o<a;o++){const a=r[o],s=i[a.materialIndex];s&&s.visible&&u.push(t,e,s,n,X.z,a)}}else i.visible&&u.push(t,e,i,n,X.z,null)}const i=t.children;for(let t=0,o=i.length;t<o;t++)It(i[t],e,n,r)}function Nt(t,e,n){const r=!0===e.isScene?e.overrideMaterial:null;for(let i=0,o=t.length;i<o;i++){const o=t[i],a=o.object,s=o.geometry,l=null===r?o.material:r,c=o.group;if(n.isArrayCamera){const t=n.cameras;for(let n=0,r=t.length;n<r;n++){const r=t[n];a.layers.test(r.layers)&&(Q.viewport(C.copy(r.viewport)),p.setupLightsView(r),Ot(a,e,r,s,l,c))}}else Ot(a,e,n,s,l,c)}}function Ot(t,e,n,r,i,o){if(t.onBeforeRender(x,e,n,r,i,o),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){const r=Ft(n,e,i,t);Q.setMaterial(i),bt.reset(),function(t,e){t.render((function(t){x.renderBufferImmediate(t,e)}))}(t,r)}else!0===i.transparent&&2===i.side?(i.side=1,i.needsUpdate=!0,x.renderBufferDirect(n,e,r,i,t,o),i.side=0,i.needsUpdate=!0,x.renderBufferDirect(n,e,r,i,t,o),i.side=2):x.renderBufferDirect(n,e,r,i,t,o);t.onAfterRender(x,e,n,r,i,o)}function zt(t,e,n){!0!==e.isScene&&(e=Y);const r=tt.get(t),i=p.state.lights,o=p.state.shadowsArray,a=i.state.version,s=ht.getParameters(t,i.state,o,e,n),l=ht.getProgramCacheKey(s);let c=r.programs;r.environment=t.isMeshStandardMaterial?e.environment:null,r.fog=e.fog,r.envMap=at.get(t.envMap||r.environment),void 0===c&&(t.addEventListener(\"dispose\",Lt),c=new Map,r.programs=c);let h=c.get(l);if(void 0!==h){if(r.currentProgram===h&&r.lightsStateVersion===a)return Bt(t,s),h}else s.uniforms=ht.getUniforms(t),t.onBuild(s,x),t.onBeforeCompile(s,x),h=ht.acquireProgram(s,l),c.set(l,h),r.uniforms=s.uniforms;const u=r.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ft.uniform),Bt(t,s),r.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),r.lightsStateVersion=a,r.needsLights&&(u.ambientLightColor.value=i.state.ambient,u.lightProbe.value=i.state.probe,u.directionalLights.value=i.state.directional,u.directionalLightShadows.value=i.state.directionalShadow,u.spotLights.value=i.state.spot,u.spotLightShadows.value=i.state.spotShadow,u.rectAreaLights.value=i.state.rectArea,u.ltc_1.value=i.state.rectAreaLTC1,u.ltc_2.value=i.state.rectAreaLTC2,u.pointLights.value=i.state.point,u.pointLightShadows.value=i.state.pointShadow,u.hemisphereLights.value=i.state.hemi,u.directionalShadowMap.value=i.state.directionalShadowMap,u.directionalShadowMatrix.value=i.state.directionalShadowMatrix,u.spotShadowMap.value=i.state.spotShadowMap,u.spotShadowMatrix.value=i.state.spotShadowMatrix,u.pointShadowMap.value=i.state.pointShadowMap,u.pointShadowMatrix.value=i.state.pointShadowMatrix);const d=h.getUniforms(),f=$r.seqWithValue(d.seq,u);return r.currentProgram=h,r.uniformsList=f,h}function Bt(t,e){const n=tt.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas}function Ft(t,e,n,r){!0!==e.isScene&&(e=Y),it.resetTextureUnits();const i=e.fog,o=n.isMeshStandardMaterial?e.environment:null,a=null===T?x.outputEncoding:T.texture.encoding,s=at.get(n.envMap||o),l=!0===n.vertexColors&&r.geometry&&r.geometry.attributes.color&&4===r.geometry.attributes.color.itemSize,c=tt.get(n),h=p.state.lights;if(!0===G&&(!0===j||t!==L)){const e=t===L&&n.id===A;ft.setState(n,t,e)}let u=!1;n.version===c.__version?c.needsLights&&c.lightsStateVersion!==h.state.version||c.outputEncoding!==a||r.isInstancedMesh&&!1===c.instancing?u=!0:r.isInstancedMesh||!0!==c.instancing?r.isSkinnedMesh&&!1===c.skinning?u=!0:r.isSkinnedMesh||!0!==c.skinning?c.envMap!==s||n.fog&&c.fog!==i?u=!0:void 0===c.numClippingPlanes||c.numClippingPlanes===ft.numPlanes&&c.numIntersection===ft.numIntersection?c.vertexAlphas!==l&&(u=!0):u=!0:u=!0:u=!0:(u=!0,c.__version=n.version);let d=c.currentProgram;!0===u&&(d=zt(n,e,r));let f=!1,m=!1,g=!1;const v=d.getUniforms(),y=c.uniforms;if(Q.useProgram(d.program)&&(f=!0,m=!0,g=!0),n.id!==A&&(A=n.id,m=!0),f||L!==t){if(v.setValue(wt,\"projectionMatrix\",t.projectionMatrix),$.logarithmicDepthBuffer&&v.setValue(wt,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),L!==t&&(L=t,m=!0,g=!0),n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshStandardMaterial||n.envMap){const e=v.map.cameraPosition;void 0!==e&&e.setValue(wt,X.setFromMatrixPosition(t.matrixWorld))}(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial)&&v.setValue(wt,\"isOrthographic\",!0===t.isOrthographicCamera),(n.isMeshPhongMaterial||n.isMeshToonMaterial||n.isMeshLambertMaterial||n.isMeshBasicMaterial||n.isMeshStandardMaterial||n.isShaderMaterial||n.isShadowMaterial||r.isSkinnedMesh)&&v.setValue(wt,\"viewMatrix\",t.matrixWorldInverse)}if(r.isSkinnedMesh){v.setOptional(wt,r,\"bindMatrix\"),v.setOptional(wt,r,\"bindMatrixInverse\");const t=r.skeleton;t&&($.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),v.setValue(wt,\"boneTexture\",t.boneTexture,it),v.setValue(wt,\"boneTextureSize\",t.boneTextureSize)):v.setOptional(wt,t,\"boneMatrices\"))}var _,b;return(m||c.receiveShadow!==r.receiveShadow)&&(c.receiveShadow=r.receiveShadow,v.setValue(wt,\"receiveShadow\",r.receiveShadow)),m&&(v.setValue(wt,\"toneMappingExposure\",x.toneMappingExposure),c.needsLights&&(b=g,(_=y).ambientLightColor.needsUpdate=b,_.lightProbe.needsUpdate=b,_.directionalLights.needsUpdate=b,_.directionalLightShadows.needsUpdate=b,_.pointLights.needsUpdate=b,_.pointLightShadows.needsUpdate=b,_.spotLights.needsUpdate=b,_.spotLightShadows.needsUpdate=b,_.rectAreaLights.needsUpdate=b,_.hemisphereLights.needsUpdate=b),i&&n.fog&&ut.refreshFogUniforms(y,i),ut.refreshMaterialUniforms(y,n,O,I,W),$r.upload(wt,c.uniformsList,y,it)),n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&($r.upload(wt,c.uniformsList,y,it),n.uniformsNeedUpdate=!1),n.isSpriteMaterial&&v.setValue(wt,\"center\",r.center),v.setValue(wt,\"modelViewMatrix\",r.modelViewMatrix),v.setValue(wt,\"normalMatrix\",r.normalMatrix),v.setValue(wt,\"modelMatrix\",r.matrixWorld),d}Dt.setAnimationLoop((function(t){Ct&&Ct(t)})),\"undefined\"!=typeof window&&Dt.setContext(window),this.setAnimationLoop=function(t){Ct=t,Et.setAnimationLoop(t),null===t?Dt.stop():Dt.start()},Et.addEventListener(\"sessionstart\",Pt),Et.addEventListener(\"sessionend\",Rt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");if(!0===w)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===Et.enabled&&!0===Et.isPresenting&&(!0===Et.cameraAutoUpdate&&Et.updateCamera(e),e=Et.getCamera()),!0===t.isScene&&t.onBeforeRender(x,t,e,T),p=pt.get(t,y.length),p.init(),y.push(p),q.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),V.setFromProjectionMatrix(q),j=this.localClippingEnabled,G=ft.init(this.clippingPlanes,j,e),u=dt.get(t,m.length),u.init(),m.push(u),It(t,e,0,x.sortObjects),u.finish(),!0===x.sortObjects&&u.sort(k,z),!0===G&&ft.beginShadows();const n=p.state.shadowsArray;mt.render(n,t,e),p.setupLights(),p.setupLightsView(e),!0===G&&ft.endShadows(),!0===this.info.autoReset&&this.info.reset(),gt.render(u,t);const r=u.opaque,i=u.transmissive,o=u.transparent;r.length>0&&Nt(r,t,e),i.length>0&&function(t,e,n,r){if(null===W){const t=!0===a&&!0===$.isWebGL2;W=new(t?rt:nt)(1024,1024,{generateMipmaps:!0,type:null!==_t.convert(b)?b:v,minFilter:g,magFilter:f,wrapS:d,wrapT:d})}const i=x.getRenderTarget();x.setRenderTarget(W),x.clear();const o=x.toneMapping;x.toneMapping=0,Nt(t,n,r),x.toneMapping=o,it.updateMultisampleRenderTarget(W),it.updateRenderTargetMipmap(W),x.setRenderTarget(i),Nt(e,n,r)}(r,i,t,e),o.length>0&&Nt(o,t,e),null!==T&&(it.updateMultisampleRenderTarget(T),it.updateRenderTargetMipmap(T)),!0===t.isScene&&t.onAfterRender(x,t,e),Q.buffers.depth.setTest(!0),Q.buffers.depth.setMask(!0),Q.buffers.color.setMask(!0),Q.setPolygonOffset(!1),bt.resetDefaultState(),A=-1,L=null,y.pop(),p=y.length>0?y[y.length-1]:null,m.pop(),u=m.length>0?m[m.length-1]:null},this.getActiveCubeFace=function(){return M},this.getActiveMipmapLevel=function(){return E},this.getRenderTarget=function(){return T},this.setRenderTarget=function(t,e=0,n=0){T=t,M=e,E=n,t&&void 0===tt.get(t).__webglFramebuffer&&it.setupRenderTarget(t);let r=null,i=!1,o=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(o=!0);const a=tt.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=a[e],i=!0):r=t.isWebGLMultisampleRenderTarget?tt.get(t).__webglMultisampledFramebuffer:a,C.copy(t.viewport),P.copy(t.scissor),R=t.scissorTest}else C.copy(B).multiplyScalar(O).floor(),P.copy(F).multiplyScalar(O).floor(),R=U;if(Q.bindFramebuffer(36160,r)&&$.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(H.length!==n.length||36064!==H[0]){for(let t=0,e=n.length;t<e;t++)H[t]=36064+t;H.length=n.length,e=!0}}else 1===H.length&&36064===H[0]||(H[0]=36064,H.length=1,e=!0);else 1===H.length&&1029===H[0]||(H[0]=1029,H.length=1,e=!0);e&&($.isWebGL2?wt.drawBuffers(H):J.get(\"WEBGL_draw_buffers\").drawBuffersWEBGL(H))}if(Q.viewport(C),Q.scissor(P),Q.setScissorTest(R),i){const r=tt.get(t.texture);wt.framebufferTexture2D(36160,36064,34069+e,r.__webglTexture,n)}else if(o){const r=tt.get(t.texture),i=e||0;wt.framebufferTextureLayer(36160,36064,r.__webglTexture,n||0,i)}},this.readRenderTargetPixels=function(t,e,n,r,i,o,a){if(!t||!t.isWebGLRenderTarget)return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");let s=tt.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(s=s[a]),s){Q.bindFramebuffer(36160,s);try{const a=t.texture,s=a.format,l=a.type;if(s!==S&&_t.convert(s)!==wt.getParameter(35739))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");const c=l===b&&(J.has(\"EXT_color_buffer_half_float\")||$.isWebGL2&&J.has(\"EXT_color_buffer_float\"));if(!(l===v||_t.convert(l)===wt.getParameter(35738)||l===_&&($.isWebGL2||J.has(\"OES_texture_float\")||J.has(\"WEBGL_color_buffer_float\"))||c))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");36053===wt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-r&&n>=0&&n<=t.height-i&&wt.readPixels(e,n,r,i,_t.convert(s),_t.convert(l),o):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{const t=null!==T?tt.get(T).__webglFramebuffer:null;Q.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const r=Math.pow(2,-n),i=Math.floor(e.image.width*r),o=Math.floor(e.image.height*r);let a=_t.convert(e.format);$.isWebGL2&&(6407===a&&(a=32849),6408===a&&(a=32856)),it.setTexture2D(e,0),wt.copyTexImage2D(3553,n,a,t.x,t.y,i,o,0),Q.unbindTexture()},this.copyTextureToTexture=function(t,e,n,r=0){const i=e.image.width,o=e.image.height,a=_t.convert(n.format),s=_t.convert(n.type);it.setTexture2D(n,0),wt.pixelStorei(37440,n.flipY),wt.pixelStorei(37441,n.premultiplyAlpha),wt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?wt.texSubImage2D(3553,r,t.x,t.y,i,o,a,s,e.image.data):e.isCompressedTexture?wt.compressedTexSubImage2D(3553,r,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):wt.texSubImage2D(3553,r,t.x,t.y,a,s,e.image),0===r&&n.generateMipmaps&&wt.generateMipmap(3553),Q.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,r,i=0){if(x.isWebGL1Renderer)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\");const o=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,s=t.max.z-t.min.z+1,l=_t.convert(r.format),c=_t.convert(r.type);let h;if(r.isDataTexture3D)it.setTexture3D(r,0),h=32879;else{if(!r.isDataTexture2DArray)return void console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");it.setTexture2DArray(r,0),h=35866}wt.pixelStorei(37440,r.flipY),wt.pixelStorei(37441,r.premultiplyAlpha),wt.pixelStorei(3317,r.unpackAlignment);const u=wt.getParameter(3314),d=wt.getParameter(32878),p=wt.getParameter(3316),f=wt.getParameter(3315),m=wt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;wt.pixelStorei(3314,g.width),wt.pixelStorei(32878,g.height),wt.pixelStorei(3316,t.min.x),wt.pixelStorei(3315,t.min.y),wt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?wt.texSubImage3D(h,i,e.x,e.y,e.z,o,a,s,l,c,g.data):n.isCompressedTexture?(console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\"),wt.compressedTexSubImage3D(h,i,e.x,e.y,e.z,o,a,s,l,g.data)):wt.texSubImage3D(h,i,e.x,e.y,e.z,o,a,s,l,c,g),wt.pixelStorei(3314,u),wt.pixelStorei(32878,d),wt.pixelStorei(3316,p),wt.pixelStorei(3315,f),wt.pixelStorei(32877,m),0===i&&r.generateMipmaps&&wt.generateMipmap(h),Q.unbindTexture()},this.initTexture=function(t){it.setTexture2D(t,0),Q.unbindTexture()},this.resetState=function(){M=0,E=0,T=null,Q.reset(),bt.reset()},\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}(class extends Vi{}).prototype.isWebGL1Renderer=!0;class Gi extends se{constructor(){super(),this.type=\"Scene\",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}Gi.prototype.isScene=!0;class ji{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=k,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=G()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,i=this.stride;r<i;r++)this.array[t+r]=e.array[n+r];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=G()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=G()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}ji.prototype.isInterleavedBuffer=!0;const Wi=new ot;class qi{constructor(t,e,n,r=!1){this.name=\"\",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===r}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)Wi.x=this.getX(e),Wi.y=this.getY(e),Wi.z=this.getZ(e),Wi.applyMatrix4(t),this.setXYZ(e,Wi.x,Wi.y,Wi.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)Wi.x=this.getX(e),Wi.y=this.getY(e),Wi.z=this.getZ(e),Wi.applyNormalMatrix(t),this.setXYZ(e,Wi.x,Wi.y,Wi.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)Wi.x=this.getX(e),Wi.y=this.getY(e),Wi.z=this.getZ(e),Wi.transformDirection(t),this.setXYZ(e,Wi.x,Wi.y,Wi.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=r,this}setXYZW(t,e,n,r,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=r,this.data.array[t+3]=i,this}clone(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new Re(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new qi(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}qi.prototype.isInterleavedBufferAttribute=!0;class Xi extends _e{constructor(t){super(),this.type=\"SpriteMaterial\",this.color=new Ae(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let Yi;Xi.prototype.isSpriteMaterial=!0;const Zi=new ot,Ji=new ot,$i=new ot,Qi=new Y,Ki=new Y,to=new kt,eo=new ot,no=new ot,ro=new ot,io=new Y,oo=new Y,ao=new Y;function so(t,e,n,r,i,o){Qi.subVectors(t,n).addScalar(.5).multiply(r),void 0!==i?(Ki.x=o*Qi.x-i*Qi.y,Ki.y=i*Qi.x+o*Qi.y):Ki.copy(Qi),t.copy(e),t.x+=Ki.x,t.y+=Ki.y,t.applyMatrix4(to)}(class extends se{constructor(t){if(super(),this.type=\"Sprite\",void 0===Yi){Yi=new Ge;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new ji(t,5);Yi.setIndex([0,1,2,0,2,3]),Yi.setAttribute(\"position\",new qi(e,3,0,!1)),Yi.setAttribute(\"uv\",new qi(e,2,3,!1))}this.geometry=Yi,this.material=void 0!==t?t:new Xi,this.center=new Y(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.'),Ji.setFromMatrixScale(this.matrixWorld),to.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),$i.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Ji.multiplyScalar(-$i.z);const n=this.material.rotation;let r,i;0!==n&&(i=Math.cos(n),r=Math.sin(n));const o=this.center;so(eo.set(-.5,-.5,0),$i,o,Ji,r,i),so(no.set(.5,-.5,0),$i,o,Ji,r,i),so(ro.set(.5,.5,0),$i,o,Ji,r,i),io.set(0,0),oo.set(1,0),ao.set(1,1);let a=t.ray.intersectTriangle(eo,no,ro,!1,Zi);if(null===a&&(so(no.set(-.5,.5,0),$i,o,Ji,r,i),oo.set(0,1),a=t.ray.intersectTriangle(eo,ro,no,!1,Zi),null===a))return;const s=t.ray.origin.distanceTo(Zi);s<t.near||s>t.far||e.push({distance:s,point:Zi.clone(),uv:ye.getUV(Zi,eo,no,ro,io,oo,ao,new Y),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}).prototype.isSprite=!0;const lo=new ot,co=new et,ho=new et,uo=new ot,po=new kt;class fo extends ln{constructor(t,e){super(t,e),this.type=\"SkinnedMesh\",this.bindMode=\"attached\",this.bindMatrix=new kt,this.bindMatrixInverse=new kt}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new et,e=this.geometry.attributes.skinWeight;for(let n=0,r=e.count;n<r;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const r=1/t.manhattanLength();r!==1/0?t.multiplyScalar(r):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),\"attached\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\"detached\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}boneTransform(t,e){const n=this.skeleton,r=this.geometry;co.fromBufferAttribute(r.attributes.skinIndex,t),ho.fromBufferAttribute(r.attributes.skinWeight,t),lo.fromBufferAttribute(r.attributes.position,t).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const r=ho.getComponent(t);if(0!==r){const i=co.getComponent(t);po.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]),e.addScaledVector(uo.copy(lo).applyMatrix4(po),r)}}return e.applyMatrix4(this.bindMatrixInverse)}}fo.prototype.isSkinnedMesh=!0;(class extends se{constructor(){super(),this.type=\"Bone\"}}).prototype.isBone=!0;(class extends K{constructor(t=null,e=1,n=1,r,i,o,a,s,l=1003,c=1003,h,u){super(null,o,a,s,l,c,r,i,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}).prototype.isDataTexture=!0;const mo=new kt,go=new kt,vo=[],yo=new ln;(class extends ln{constructor(t,e,n){super(t,e),this.instanceMatrix=new Re(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,r=this.count;if(yo.geometry=this.geometry,yo.material=this.material,void 0!==yo.material)for(let i=0;i<r;i++){this.getMatrixAt(i,mo),go.multiplyMatrices(n,mo),yo.matrixWorld=go,yo.raycast(t,vo);for(let t=0,n=vo.length;t<n;t++){const n=vo[t];n.instanceId=i,n.object=this,e.push(n)}vo.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new Re(new Float32Array(3*this.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"})}}).prototype.isInstancedMesh=!0;class xo extends _e{constructor(t){super(),this.type=\"LineBasicMaterial\",this.color=new Ae(16777215),this.linewidth=1,this.linecap=\"round\",this.linejoin=\"round\",this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.morphTargets=t.morphTargets,this}}xo.prototype.isLineBasicMaterial=!0;const _o=new ot,bo=new ot,wo=new kt,Mo=new Ot,So=new At;class Eo extends se{constructor(t=new Ge,e=new xo){super(),this.type=\"Line\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,r=e.count;t<r;t++)_o.fromBufferAttribute(e,t-1),bo.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=_o.distanceTo(bo);t.setAttribute(\"lineDistance\",new Ne(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}raycast(t,e){const n=this.geometry,r=this.matrixWorld,i=t.params.Line.threshold,o=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),So.copy(n.boundingSphere),So.applyMatrix4(r),So.radius+=i,!1===t.ray.intersectsSphere(So))return;wo.copy(r).invert(),Mo.copy(t.ray).applyMatrix4(wo);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3),s=a*a,l=new ot,c=new ot,h=new ot,u=new ot,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const r=n.index,i=n.attributes.position;if(null!==r){for(let n=Math.max(0,o.start),a=Math.min(r.count,o.start+o.count)-1;n<a;n+=d){const o=r.getX(n),a=r.getX(n+1);l.fromBufferAttribute(i,o),c.fromBufferAttribute(i,a);if(Mo.distanceSqToSegment(l,c,u,h)>s)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,o.start),r=Math.min(i.count,o.start+o.count)-1;n<r;n+=d){l.fromBufferAttribute(i,n),c.fromBufferAttribute(i,n+1);if(Mo.distanceSqToSegment(l,c,u,h)>s)continue;u.applyMatrix4(this.matrixWorld);const r=t.ray.origin.distanceTo(u);r<t.near||r>t.far||e.push({distance:r,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}Eo.prototype.isLine=!0;const To=new ot,Ao=new ot;class Lo extends Eo{constructor(t,e){super(t,e),this.type=\"LineSegments\"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,r=e.count;t<r;t+=2)To.fromBufferAttribute(e,t),Ao.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+To.distanceTo(Ao);t.setAttribute(\"lineDistance\",new Ne(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else t.isGeometry&&console.error(\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}}Lo.prototype.isLineSegments=!0;(class extends Eo{constructor(t,e){super(t,e),this.type=\"LineLoop\"}}).prototype.isLineLoop=!0;class Co extends _e{constructor(t){super(),this.type=\"PointsMaterial\",this.color=new Ae(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this}}Co.prototype.isPointsMaterial=!0;const Po=new kt,Ro=new Ot,Do=new At,Io=new ot;function No(t,e,n,r,i,o,a){const s=Ro.distanceSqToPoint(t);if(s<n){const n=new ot;Ro.closestPointToPoint(t,n),n.applyMatrix4(r);const l=i.ray.origin.distanceTo(n);if(l<i.near||l>i.far)return;o.push({distance:l,distanceToRay:Math.sqrt(s),point:n,index:e,face:null,object:a})}}(class extends se{constructor(t=new Ge,e=new Co){super(),this.type=\"Points\",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,r=this.matrixWorld,i=t.params.Points.threshold,o=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),Do.copy(n.boundingSphere),Do.applyMatrix4(r),Do.radius+=i,!1===t.ray.intersectsSphere(Do))return;Po.copy(r).invert(),Ro.copy(t.ray).applyMatrix4(Po);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3),s=a*a;if(n.isBufferGeometry){const i=n.index,a=n.attributes.position;if(null!==i){for(let n=Math.max(0,o.start),l=Math.min(i.count,o.start+o.count);n<l;n++){const o=i.getX(n);Io.fromBufferAttribute(a,o),No(Io,o,s,r,t,e,this)}}else{for(let n=Math.max(0,o.start),i=Math.min(a.count,o.start+o.count);n<i;n++)Io.fromBufferAttribute(a,n),No(Io,n,s,r,t,e,this)}}else console.error(\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&console.error(\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}).prototype.isPoints=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l){super(t,e,n,r,i,o,a,s,l),this.format=void 0!==a?a:M,this.minFilter=void 0!==o?o:m,this.magFilter=void 0!==i?i:m,this.generateMipmaps=!1;const c=this;\"requestVideoFrameCallback\"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1===\"requestVideoFrameCallback\"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}).prototype.isVideoTexture=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l,c,h,u){super(null,o,a,s,l,c,r,i,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}).prototype.isCompressedTexture=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l){super(t,e,n,r,i,o,a,s,l),this.needsUpdate=!0}}).prototype.isCanvasTexture=!0;(class extends K{constructor(t,e,n,r,i,o,a,s,l,c){if((c=void 0!==c?c:E)!==E&&c!==T)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===n&&c===E&&(n=y),void 0===n&&c===T&&(n=w),super(null,r,i,o,a,s,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:f,this.minFilter=void 0!==s?s:f,this.flipY=!1,this.generateMipmaps=!1}}).prototype.isDepthTexture=!0;class Oo extends Ge{constructor(t=1,e=1,n=1,r=8,i=1,o=!1,a=0,s=2*Math.PI){super(),this.type=\"CylinderGeometry\",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:r,heightSegments:i,openEnded:o,thetaStart:a,thetaLength:s};const l=this;r=Math.floor(r),i=Math.floor(i);const c=[],h=[],u=[],d=[];let p=0;const f=[],m=n/2;let g=0;function v(n){const i=p,o=new Y,f=new ot;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=r;t++)h.push(0,m*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=r;t++){const e=t/r*s+a,n=Math.cos(e),i=Math.sin(e);f.x=y*i,f.y=m*x,f.z=y*n,h.push(f.x,f.y,f.z),u.push(0,x,0),o.x=.5*n+.5,o.y=.5*i*x+.5,d.push(o.x,o.y),p++}for(let t=0;t<r;t++){const e=i+t,r=_+t;!0===n?c.push(r,r+1,e):c.push(r+1,r,e),v+=3}l.addGroup(g,v,!0===n?1:2),g+=v}!function(){const o=new ot,v=new ot;let y=0;const x=(e-t)/n;for(let l=0;l<=i;l++){const c=[],g=l/i,y=g*(e-t)+t;for(let t=0;t<=r;t++){const e=t/r,i=e*s+a,l=Math.sin(i),f=Math.cos(i);v.x=y*l,v.y=-g*n+m,v.z=y*f,h.push(v.x,v.y,v.z),o.set(l,x,f).normalize(),u.push(o.x,o.y,o.z),d.push(e,1-g),c.push(p++)}f.push(c)}for(let t=0;t<r;t++)for(let e=0;e<i;e++){const n=f[e][t],r=f[e+1][t],i=f[e+1][t+1],o=f[e][t+1];c.push(n,r,o),c.push(r,i,o),y+=6}l.addGroup(g,y,0),g+=y}(),!1===o&&(t>0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute(\"position\",new Ne(h,3)),this.setAttribute(\"normal\",new Ne(u,3)),this.setAttribute(\"uv\",new Ne(d,2))}static fromJSON(t){return new Oo(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ko extends Oo{constructor(t=1,e=1,n=8,r=1,i=!1,o=0,a=2*Math.PI){super(0,t,e,n,r,i,o,a),this.type=\"ConeGeometry\",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:o,thetaLength:a}}static fromJSON(t){return new ko(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}new ot,new ot,new ot,new ye;class zo{constructor(){this.type=\"Curve\",this.arcLengthDivisions=200}getPoint(){return console.warn(\"THREE.Curve: .getPoint() not implemented.\"),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),i=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),i+=n.distanceTo(r),e.push(i),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const i=n.length;let o;o=e||t*n[i-1];let a,s=0,l=i-1;for(;s<=l;)if(r=Math.floor(s+(l-s)/2),a=n[r]-o,a<0)s=r+1;else{if(!(a>0)){l=r;break}l=r-1}if(r=l,n[r]===o)return r/(i-1);const c=n[r];return(r+(o-c)/(n[r+1]-c))/(i-1)}getTangent(t,e){const n=1e-4;let r=t-n,i=t+n;r<0&&(r=0),i>1&&(i=1);const o=this.getPoint(r),a=this.getPoint(i),s=e||(o.isVector2?new Y:new ot);return s.copy(a).sub(o).normalize(),s}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new ot,r=[],i=[],o=[],a=new ot,s=new kt;for(let e=0;e<=t;e++){const n=e/t;r[e]=this.getTangentAt(n,new ot),r[e].normalize()}i[0]=new ot,o[0]=new ot;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x),h=Math.abs(r[0].y),u=Math.abs(r[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),i[0].crossVectors(r[0],a),o[0].crossVectors(r[0],i[0]);for(let e=1;e<=t;e++){if(i[e]=i[e-1].clone(),o[e]=o[e-1].clone(),a.crossVectors(r[e-1],r[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(j(r[e-1].dot(r[e]),-1,1));i[e].applyMatrix4(s.makeRotationAxis(a,t))}o[e].crossVectors(r[e],i[e])}if(!0===e){let e=Math.acos(j(i[0].dot(i[t]),-1,1));e/=t,r[0].dot(a.crossVectors(i[0],i[t]))>0&&(e=-e);for(let n=1;n<=t;n++)i[n].applyMatrix4(s.makeRotationAxis(r[n],e*n)),o[n].crossVectors(r[n],i[n])}return{tangents:r,normals:i,binormals:o}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:\"Curve\",generator:\"Curve.toJSON\"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Bo extends zo{constructor(t=0,e=0,n=1,r=1,i=0,o=2*Math.PI,a=!1,s=0){super(),this.type=\"EllipseCurve\",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=a,this.aRotation=s}getPoint(t,e){const n=e||new Y,r=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const o=Math.abs(i)<Number.EPSILON;for(;i<0;)i+=r;for(;i>r;)i-=r;i<Number.EPSILON&&(i=o?0:r),!0!==this.aClockwise||o||(i===r?i=-r:i-=r);const a=this.aStartAngle+t*i;let s=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=s-this.aX,r=l-this.aY;s=n*t-r*e+this.aX,l=n*e+r*t+this.aY}return n.set(s,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}Bo.prototype.isEllipseCurve=!0;class Fo extends Bo{constructor(t,e,n,r,i,o){super(t,e,n,n,r,i,o),this.type=\"ArcCurve\"}}function Uo(){let t=0,e=0,n=0,r=0;function i(i,o,a,s){t=i,e=a,n=-3*i+3*o-2*a-s,r=2*i-2*o+a+s}return{initCatmullRom:function(t,e,n,r,o){i(e,n,o*(n-t),o*(r-e))},initNonuniformCatmullRom:function(t,e,n,r,o,a,s){let l=(e-t)/o-(n-t)/(o+a)+(n-e)/a,c=(n-e)/a-(r-e)/(a+s)+(r-n)/s;l*=a,c*=a,i(e,n,l,c)},calc:function(i){const o=i*i;return t+e*i+n*o+r*(o*i)}}}Fo.prototype.isArcCurve=!0;const Ho=new ot,Vo=new Uo,Go=new Uo,jo=new Uo;class Wo extends zo{constructor(t=[],e=!1,n=\"centripetal\",r=.5){super(),this.type=\"CatmullRomCurve3\",this.points=t,this.closed=e,this.curveType=n,this.tension=r}getPoint(t,e=new ot){const n=e,r=this.points,i=r.length,o=(i-(this.closed?0:1))*t;let a,s,l=Math.floor(o),c=o-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?a=r[(l-1)%i]:(Ho.subVectors(r[0],r[1]).add(r[0]),a=Ho);const h=r[l%i],u=r[(l+1)%i];if(this.closed||l+2<i?s=r[(l+2)%i]:(Ho.subVectors(r[i-1],r[i-2]).add(r[i-1]),s=Ho),\"centripetal\"===this.curveType||\"chordal\"===this.curveType){const t=\"chordal\"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),r=Math.pow(u.distanceToSquared(s),t);n<1e-4&&(n=1),e<1e-4&&(e=n),r<1e-4&&(r=n),Vo.initNonuniformCatmullRom(a.x,h.x,u.x,s.x,e,n,r),Go.initNonuniformCatmullRom(a.y,h.y,u.y,s.y,e,n,r),jo.initNonuniformCatmullRom(a.z,h.z,u.z,s.z,e,n,r)}else\"catmullrom\"===this.curveType&&(Vo.initCatmullRom(a.x,h.x,u.x,s.x,this.tension),Go.initCatmullRom(a.y,h.y,u.y,s.y,this.tension),jo.initCatmullRom(a.z,h.z,u.z,s.z,this.tension));return n.set(Vo.calc(c),Go.calc(c),jo.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new ot).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function qo(t,e,n,r,i){const o=.5*(r-e),a=.5*(i-n),s=t*t;return(2*n-2*r+o+a)*(t*s)+(-3*n+3*r-2*o-a)*s+o*t+n}function Xo(t,e,n,r){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,r)}function Yo(t,e,n,r,i){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,r)+function(t,e){return t*t*t*e}(t,i)}Wo.prototype.isCatmullRomCurve3=!0;class Zo extends zo{constructor(t=new Y,e=new Y,n=new Y,r=new Y){super(),this.type=\"CubicBezierCurve\",this.v0=t,this.v1=e,this.v2=n,this.v3=r}getPoint(t,e=new Y){const n=e,r=this.v0,i=this.v1,o=this.v2,a=this.v3;return n.set(Yo(t,r.x,i.x,o.x,a.x),Yo(t,r.y,i.y,o.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}Zo.prototype.isCubicBezierCurve=!0;class Jo extends zo{constructor(t=new ot,e=new ot,n=new ot,r=new ot){super(),this.type=\"CubicBezierCurve3\",this.v0=t,this.v1=e,this.v2=n,this.v3=r}getPoint(t,e=new ot){const n=e,r=this.v0,i=this.v1,o=this.v2,a=this.v3;return n.set(Yo(t,r.x,i.x,o.x,a.x),Yo(t,r.y,i.y,o.y,a.y),Yo(t,r.z,i.z,o.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}Jo.prototype.isCubicBezierCurve3=!0;class $o extends zo{constructor(t=new Y,e=new Y){super(),this.type=\"LineCurve\",this.v1=t,this.v2=e}getPoint(t,e=new Y){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new Y;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}$o.prototype.isLineCurve=!0;class Qo extends zo{constructor(t=new Y,e=new Y,n=new Y){super(),this.type=\"QuadraticBezierCurve\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Y){const n=e,r=this.v0,i=this.v1,o=this.v2;return n.set(Xo(t,r.x,i.x,o.x),Xo(t,r.y,i.y,o.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}Qo.prototype.isQuadraticBezierCurve=!0;class Ko extends zo{constructor(t=new ot,e=new ot,n=new ot){super(),this.type=\"QuadraticBezierCurve3\",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new ot){const n=e,r=this.v0,i=this.v1,o=this.v2;return n.set(Xo(t,r.x,i.x,o.x),Xo(t,r.y,i.y,o.y),Xo(t,r.z,i.z,o.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}Ko.prototype.isQuadraticBezierCurve3=!0;class ta extends zo{constructor(t=[]){super(),this.type=\"SplineCurve\",this.points=t}getPoint(t,e=new Y){const n=e,r=this.points,i=(r.length-1)*t,o=Math.floor(i),a=i-o,s=r[0===o?o:o-1],l=r[o],c=r[o>r.length-2?r.length-1:o+1],h=r[o>r.length-3?r.length-1:o+2];return n.set(qo(a,s.x,l.x,c.x,h.x),qo(a,s.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Y).fromArray(n))}return this}}ta.prototype.isSplineCurve=!0;var ea=Object.freeze({__proto__:null,ArcCurve:Fo,CatmullRomCurve3:Wo,CubicBezierCurve:Zo,CubicBezierCurve3:Jo,EllipseCurve:Bo,LineCurve:$o,LineCurve3:class extends zo{constructor(t=new ot,e=new ot){super(),this.type=\"LineCurve3\",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new ot){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},QuadraticBezierCurve:Qo,QuadraticBezierCurve3:Ko,SplineCurve:ta});const na=function(t,e,n=2){const r=e&&e.length,i=r?e[0]*n:t.length;let o=ra(t,0,i,n,!0);const a=[];if(!o||o.next===o.prev)return a;let s,l,c,h,u,d,p;if(r&&(o=function(t,e,n,r){const i=[];let o,a,s,l,c;for(o=0,a=e.length;o<a;o++)s=e[o]*r,l=o<a-1?e[o+1]*r:t.length,c=ra(t,s,l,r,!1),c===c.next&&(c.steiner=!0),i.push(fa(c));for(i.sort(ha),o=0;o<i.length;o++)ua(i[o],n),n=ia(n,n.next);return n}(t,e,o,n)),t.length>80*n){s=c=t[0],l=h=t[1];for(let e=n;e<i;e+=n)u=t[e],d=t[e+1],u<s&&(s=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-s,h-l),p=0!==p?1/p:0}return oa(o,a,n,s,l,p),a};function ra(t,e,n,r,i){let o,a;if(i===function(t,e,n,r){let i=0;for(let o=e,a=n-r;o<n;o+=r)i+=(t[a]-t[o])*(t[o+1]+t[a+1]),a=o;return i}(t,e,n,r)>0)for(o=e;o<n;o+=r)a=Sa(o,t[o],t[o+1],a);else for(o=n-r;o>=e;o-=r)a=Sa(o,t[o],t[o+1],a);return a&&ya(a,a.next)&&(Ea(a),a=a.next),a}function ia(t,e){if(!t)return t;e||(e=t);let n,r=t;do{if(n=!1,r.steiner||!ya(r,r.next)&&0!==va(r.prev,r,r.next))r=r.next;else{if(Ea(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function oa(t,e,n,r,i,o,a){if(!t)return;!a&&o&&function(t,e,n,r){let i=t;do{null===i.z&&(i.z=pa(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){let e,n,r,i,o,a,s,l,c=1;do{for(n=t,t=null,o=null,a=0;n;){for(a++,r=n,s=0,e=0;e<c&&(s++,r=r.nextZ,r);e++);for(l=c;s>0||l>0&&r;)0!==s&&(0===l||!r||n.z<=r.z)?(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,l--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(a>1)}(i)}(t,r,i,o);let s,l,c=t;for(;t.prev!==t.next;)if(s=t.prev,l=t.next,o?sa(t,r,i,o):aa(t))e.push(s.i/n),e.push(t.i/n),e.push(l.i/n),Ea(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?oa(t=la(ia(t),e,n),e,n,r,i,o,2):2===a&&ca(t,e,n,r,i,o):oa(ia(t),e,n,r,i,o,1);break}}function aa(t){const e=t.prev,n=t,r=t.next;if(va(e,n,r)>=0)return!1;let i=t.next.next;for(;i!==t.prev;){if(ma(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&va(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function sa(t,e,n,r){const i=t.prev,o=t,a=t.next;if(va(i,o,a)>=0)return!1;const s=i.x<o.x?i.x<a.x?i.x:a.x:o.x<a.x?o.x:a.x,l=i.y<o.y?i.y<a.y?i.y:a.y:o.y<a.y?o.y:a.y,c=i.x>o.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,h=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,u=pa(s,l,e,n,r),d=pa(c,h,e,n,r);let p=t.prevZ,f=t.nextZ;for(;p&&p.z>=u&&f&&f.z<=d;){if(p!==t.prev&&p!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,p.x,p.y)&&va(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,f!==t.prev&&f!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&va(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,p.x,p.y)&&va(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;f&&f.z<=d;){if(f!==t.prev&&f!==t.next&&ma(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&va(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function la(t,e,n){let r=t;do{const i=r.prev,o=r.next.next;!ya(i,o)&&xa(i,r,r.next,o)&&wa(i,o)&&wa(o,i)&&(e.push(i.i/n),e.push(r.i/n),e.push(o.i/n),Ea(r),Ea(r.next),r=t=o),r=r.next}while(r!==t);return ia(r)}function ca(t,e,n,r,i,o){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&ga(a,t)){let s=Ma(a,t);return a=ia(a,a.next),s=ia(s,s.next),oa(a,e,n,r,i,o),void oa(s,e,n,r,i,o)}t=t.next}a=a.next}while(a!==t)}function ha(t,e){return t.x-e.x}function ua(t,e){if(e=function(t,e){let n=e;const r=t.x,i=t.y;let o,a=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){const t=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>a){if(a=t,t===r){if(i===n.y)return n;if(i===n.next.y)return n.next}o=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!o)return null;if(r===a)return o;const s=o,l=o.x,c=o.y;let h,u=1/0;n=o;do{r>=n.x&&n.x>=l&&r!==n.x&&ma(i<c?r:a,i,l,c,i<c?a:r,i,n.x,n.y)&&(h=Math.abs(i-n.y)/(r-n.x),wa(n,t)&&(h<u||h===u&&(n.x>o.x||n.x===o.x&&da(o,n)))&&(o=n,u=h)),n=n.next}while(n!==s);return o}(t,e)){const n=Ma(e,t);ia(e,e.next),ia(n,n.next)}}function da(t,e){return va(t.prev,t,e.prev)<0&&va(e.next,t,t.next)<0}function pa(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function fa(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function ma(t,e,n,r,i,o,a,s){return(i-a)*(e-s)-(t-a)*(o-s)>=0&&(t-a)*(r-s)-(n-a)*(e-s)>=0&&(n-a)*(o-s)-(i-a)*(r-s)>=0}function ga(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&xa(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(wa(t,e)&&wa(e,t)&&function(t,e){let n=t,r=!1;const i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(va(t.prev,t,e.prev)||va(t,e.prev,e))||ya(t,e)&&va(t.prev,t,t.next)>0&&va(e.prev,e,e.next)>0)}function va(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function ya(t,e){return t.x===e.x&&t.y===e.y}function xa(t,e,n,r){const i=ba(va(t,e,n)),o=ba(va(t,e,r)),a=ba(va(n,r,t)),s=ba(va(n,r,e));return i!==o&&a!==s||(!(0!==i||!_a(t,n,e))||(!(0!==o||!_a(t,r,e))||(!(0!==a||!_a(n,t,r))||!(0!==s||!_a(n,e,r)))))}function _a(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function ba(t){return t>0?1:t<0?-1:0}function wa(t,e){return va(t.prev,t,t.next)<0?va(t,e,t.next)>=0&&va(t,t.prev,e)>=0:va(t,e,t.prev)<0||va(t,t.next,e)<0}function Ma(t,e){const n=new Ta(t.i,t.x,t.y),r=new Ta(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Sa(t,e,n,r){const i=new Ta(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ea(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ta(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Aa{static area(t){const e=t.length;let n=0;for(let r=e-1,i=0;i<e;r=i++)n+=t[r].x*t[i].y-t[i].x*t[r].y;return.5*n}static isClockWise(t){return Aa.area(t)<0}static triangulateShape(t,e){const n=[],r=[],i=[];La(t),Ca(n,t);let o=t.length;e.forEach(La);for(let t=0;t<e.length;t++)r.push(o),o+=e[t].length,Ca(n,e[t]);const a=na(n,r);for(let t=0;t<a.length;t+=3)i.push(a.slice(t,t+3));return i}}function La(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function Ca(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class Pa extends Ge{constructor(t,e){super(),this.type=\"ExtrudeGeometry\",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,r=[],i=[];for(let e=0,n=t.length;e<n;e++){o(t[e])}function o(t){const o=[],a=void 0!==e.curveSegments?e.curveSegments:12,s=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:100,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:6,u=void 0!==e.bevelSize?e.bevelSize:h-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:Ra;void 0!==e.amount&&(console.warn(\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\"),l=e.amount);let g,v,y,x,_,b=!1;f&&(g=f.getSpacedPoints(s),b=!0,c=!1,v=f.computeFrenetFrames(s,!1),y=new ot,x=new ot,_=new ot),c||(p=0,h=0,u=0,d=0);const w=t.extractPoints(a);let M=w.shape;const S=w.holes;if(!Aa.isClockWise(M)){M=M.reverse();for(let t=0,e=S.length;t<e;t++){const e=S[t];Aa.isClockWise(e)&&(S[t]=e.reverse())}}const E=Aa.triangulateShape(M,S),T=M;for(let t=0,e=S.length;t<e;t++){const e=S[t];M=M.concat(e)}function A(t,e,n){return e||console.error(\"THREE.ExtrudeGeometry: vec does not exist\"),e.clone().multiplyScalar(n).add(t)}const L=M.length,C=E.length;function P(t,e,n){let r,i,o;const a=t.x-e.x,s=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=a*a+s*s,u=a*c-s*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-s/u,f=e.y+a/u,m=((n.x-c/d-p)*c-(n.y+l/d-f)*l)/(a*c-s*l);r=p+a*m-t.x,i=f+s*m-t.y;const g=r*r+i*i;if(g<=2)return new Y(r,i);o=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(s)===Math.sign(c)&&(t=!0),t?(r=-s,i=a,o=Math.sqrt(h)):(r=a,i=s,o=Math.sqrt(h/2))}return new Y(r/o,i/o)}const R=[];for(let t=0,e=T.length,n=e-1,r=t+1;t<e;t++,n++,r++)n===e&&(n=0),r===e&&(r=0),R[t]=P(T[t],T[n],T[r]);const D=[];let I,N=R.concat();for(let t=0,e=S.length;t<e;t++){const e=S[t];I=[];for(let t=0,n=e.length,r=n-1,i=t+1;t<n;t++,r++,i++)r===n&&(r=0),i===n&&(i=0),I[t]=P(e[t],e[r],e[i]);D.push(I),N=N.concat(I)}for(let t=0;t<p;t++){const e=t/p,n=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=T.length;t<e;t++){const e=A(T[t],R[t],r);z(e.x,e.y,-n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,i=e.length;t<i;t++){const i=A(e[t],I[t],r);z(i.x,i.y,-n)}}}const O=u+d;for(let t=0;t<L;t++){const e=c?A(M[t],N[t],O):M[t];b?(x.copy(v.normals[0]).multiplyScalar(e.x),y.copy(v.binormals[0]).multiplyScalar(e.y),_.copy(g[0]).add(x).add(y),z(_.x,_.y,_.z)):z(e.x,e.y,0)}for(let t=1;t<=s;t++)for(let e=0;e<L;e++){const n=c?A(M[e],N[e],O):M[e];b?(x.copy(v.normals[t]).multiplyScalar(n.x),y.copy(v.binormals[t]).multiplyScalar(n.y),_.copy(g[t]).add(x).add(y),z(_.x,_.y,_.z)):z(n.x,n.y,l/s*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=T.length;t<e;t++){const e=A(T[t],R[t],r);z(e.x,e.y,l+n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];I=D[t];for(let t=0,i=e.length;t<i;t++){const i=A(e[t],I[t],r);b?z(i.x,i.y+g[s-1].y,g[s-1].x+n):z(i.x,i.y,l+n)}}}function k(t,e){let n=t.length;for(;--n>=0;){const r=n;let i=n-1;i<0&&(i=t.length-1);for(let t=0,n=s+2*p;t<n;t++){const n=L*t,o=L*(t+1);F(e+r+n,e+i+n,e+i+o,e+r+o)}}}function z(t,e,n){o.push(t),o.push(e),o.push(n)}function B(t,e,i){U(t),U(e),U(i);const o=r.length/3,a=m.generateTopUV(n,r,o-3,o-2,o-1);H(a[0]),H(a[1]),H(a[2])}function F(t,e,i,o){U(t),U(e),U(o),U(e),U(i),U(o);const a=r.length/3,s=m.generateSideWallUV(n,r,a-6,a-3,a-2,a-1);H(s[0]),H(s[1]),H(s[3]),H(s[1]),H(s[2]),H(s[3])}function U(t){r.push(o[3*t+0]),r.push(o[3*t+1]),r.push(o[3*t+2])}function H(t){i.push(t.x),i.push(t.y)}!function(){const t=r.length/3;if(c){let t=0,e=L*t;for(let t=0;t<C;t++){const n=E[t];B(n[2]+e,n[1]+e,n[0]+e)}t=s+2*p,e=L*t;for(let t=0;t<C;t++){const n=E[t];B(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<C;t++){const e=E[t];B(e[2],e[1],e[0])}for(let t=0;t<C;t++){const e=E[t];B(e[0]+L*s,e[1]+L*s,e[2]+L*s)}}n.addGroup(t,r.length/3-t,0)}(),function(){const t=r.length/3;let e=0;k(T,e),e+=T.length;for(let t=0,n=S.length;t<n;t++){const n=S[t];k(n,e),e+=n.length}n.addGroup(t,r.length/3-t,1)}()}this.setAttribute(\"position\",new Ne(r,3)),this.setAttribute(\"uv\",new Ne(i,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,r=t.length;e<r;e++){const r=t[e];n.shapes.push(r.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let r=0,i=t.shapes.length;r<i;r++){const i=e[t.shapes[r]];n.push(i)}const r=t.options.extrudePath;return void 0!==r&&(t.options.extrudePath=(new ea[r.type]).fromJSON(r)),new Pa(n,t.options)}}const Ra={generateTopUV:function(t,e,n,r,i){const o=e[3*n],a=e[3*n+1],s=e[3*r],l=e[3*r+1],c=e[3*i],h=e[3*i+1];return[new Y(o,a),new Y(s,l),new Y(c,h)]},generateSideWallUV:function(t,e,n,r,i,o){const a=e[3*n],s=e[3*n+1],l=e[3*n+2],c=e[3*r],h=e[3*r+1],u=e[3*r+2],d=e[3*i],p=e[3*i+1],f=e[3*i+2],m=e[3*o],g=e[3*o+1],v=e[3*o+2];return Math.abs(s-h)<Math.abs(a-c)?[new Y(a,1-l),new Y(c,1-u),new Y(d,1-f),new Y(m,1-v)]:[new Y(s,1-l),new Y(h,1-u),new Y(p,1-f),new Y(g,1-v)]}};class Da extends Ge{constructor(t,e=12){super(),this.type=\"ShapeGeometry\",this.parameters={shapes:t,curveSegments:e};const n=[],r=[],i=[],o=[];let a=0,s=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(a,s,e),a+=s,s=0;function l(t){const a=r.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===Aa.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===Aa.isClockWise(e)&&(h[t]=e.reverse())}const u=Aa.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];r.push(e.x,e.y,0),i.push(0,0,1),o.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],r=e[0]+a,i=e[1]+a,o=e[2]+a;n.push(r,i,o),s+=3}}this.setIndex(n),this.setAttribute(\"position\",new Ne(r,3)),this.setAttribute(\"normal\",new Ne(i,3)),this.setAttribute(\"uv\",new Ne(o,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,r=t.length;n<r;n++){const r=t[n];e.shapes.push(r.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let r=0,i=t.shapes.length;r<i;r++){const i=e[t.shapes[r]];n.push(i)}return new Da(n,t.curveSegments)}}class Ia extends Ge{constructor(t=1,e=8,n=6,r=0,i=2*Math.PI,o=0,a=Math.PI){super(),this.type=\"SphereGeometry\",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:r,phiLength:i,thetaStart:o,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const s=Math.min(o+a,Math.PI);let l=0;const c=[],h=new ot,u=new ot,d=[],p=[],f=[],m=[];for(let d=0;d<=n;d++){const g=[],v=d/n;let y=0;0==d&&0==o?y=.5/e:d==n&&s==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const s=n/e;h.x=-t*Math.cos(r+s*i)*Math.sin(o+v*a),h.y=t*Math.cos(o+v*a),h.z=t*Math.sin(r+s*i)*Math.sin(o+v*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),f.push(u.x,u.y,u.z),m.push(s+y,1-v),g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let r=0;r<e;r++){const e=c[t][r+1],i=c[t][r],a=c[t+1][r],l=c[t+1][r+1];(0!==t||o>0)&&d.push(e,i,l),(t!==n-1||s<Math.PI)&&d.push(i,a,l)}this.setIndex(d),this.setAttribute(\"position\",new Ne(p,3)),this.setAttribute(\"normal\",new Ne(f,3)),this.setAttribute(\"uv\",new Ne(m,2))}static fromJSON(t){return new Ia(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class Na extends Ge{constructor(t,e=64,n=1,r=8,i=!1){super(),this.type=\"TubeGeometry\",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:r,closed:i};const o=t.computeFrenetFrames(e,i);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;const a=new ot,s=new ot,l=new Y;let c=new ot;const h=[],u=[],d=[],p=[];function f(i){c=t.getPointAt(i/e,c);const l=o.normals[i],d=o.binormals[i];for(let t=0;t<=r;t++){const e=t/r*Math.PI*2,i=Math.sin(e),o=-Math.cos(e);s.x=o*l.x+i*d.x,s.y=o*l.y+i*d.y,s.z=o*l.z+i*d.z,s.normalize(),u.push(s.x,s.y,s.z),a.x=c.x+n*s.x,a.y=c.y+n*s.y,a.z=c.z+n*s.z,h.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)f(t);f(!1===i?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=r;n++)l.x=t/e,l.y=n/r,d.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=r;e++){const n=(r+1)*(t-1)+(e-1),i=(r+1)*t+(e-1),o=(r+1)*t+e,a=(r+1)*(t-1)+e;p.push(n,i,a),p.push(i,o,a)}}()}(),this.setIndex(p),this.setAttribute(\"position\",new Ne(h,3)),this.setAttribute(\"normal\",new Ne(u,3)),this.setAttribute(\"uv\",new Ne(d,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new Na((new ea[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}(class extends _e{constructor(t){super(),this.type=\"ShadowMaterial\",this.color=new Ae(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}).prototype.isShadowMaterial=!0;(class extends fn{constructor(t){super(t),this.type=\"RawShaderMaterial\"}}).prototype.isRawShaderMaterial=!0;class Oa extends _e{constructor(t){super(),this.defines={STANDARD:\"\"},this.type=\"MeshStandardMaterial\",this.color=new Ae(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.vertexTangents=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\"},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this.vertexTangents=t.vertexTangents,this}}Oa.prototype.isMeshStandardMaterial=!0;(class extends Oa{constructor(t){super(),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.type=\"MeshPhysicalMaterial\",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Y(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,Object.defineProperty(this,\"ior\",{get:function(){return(1+.4*this.reflectivity)/(1-.4*this.reflectivity)},set:function(t){this.reflectivity=j(2.5*(t-1)/(t+1),0,1)}}),this.sheen=null,this.transmission=0,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new Ae(1,1,1),this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:\"\",PHYSICAL:\"\"},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,t.sheen?this.sheen=(this.sheen||new Ae).copy(t.sheen):this.sheen=null,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this}}).prototype.isMeshPhysicalMaterial=!0;(class extends _e{constructor(t){super(),this.type=\"MeshPhongMaterial\",this.color=new Ae(16777215),this.specular=new Ae(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}).prototype.isMeshPhongMaterial=!0;(class extends _e{constructor(t){super(),this.defines={TOON:\"\"},this.type=\"MeshToonMaterial\",this.color=new Ae(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}).prototype.isMeshToonMaterial=!0;(class extends _e{constructor(t){super(),this.type=\"MeshNormalMaterial\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}).prototype.isMeshNormalMaterial=!0;class ka extends _e{constructor(t){super(),this.type=\"MeshLambertMaterial\",this.color=new Ae(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ae(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this}}ka.prototype.isMeshLambertMaterial=!0;(class extends _e{constructor(t){super(),this.defines={MATCAP:\"\"},this.type=\"MeshMatcapMaterial\",this.color=new Ae(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.morphTargets=!1,this.morphNormals=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:\"\"},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.flatShading=t.flatShading,this}}).prototype.isMeshMatcapMaterial=!0;(class extends xo{constructor(t){super(),this.type=\"LineDashedMaterial\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}).prototype.isLineDashedMaterial=!0;const za={arraySlice:function(t,e,n){return za.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:\"number\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const r=t.length,i=new t.constructor(r);for(let o=0,a=0;a!==r;++o){const r=n[o]*e;for(let n=0;n!==e;++n)i[a++]=t[r+n]}return i},flattenJSON:function(t,e,n,r){let i=1,o=t[0];for(;void 0!==o&&void 0===o[r];)o=t[i++];if(void 0===o)return;let a=o[r];if(void 0!==a)if(Array.isArray(a))do{a=o[r],void 0!==a&&(e.push(o.time),n.push.apply(n,a)),o=t[i++]}while(void 0!==o);else if(void 0!==a.toArray)do{a=o[r],void 0!==a&&(e.push(o.time),a.toArray(n,n.length)),o=t[i++]}while(void 0!==o);else do{a=o[r],void 0!==a&&(e.push(o.time),n.push(a)),o=t[i++]}while(void 0!==o)},subclip:function(t,e,n,r,i=30){const o=t.clone();o.name=e;const a=[];for(let t=0;t<o.tracks.length;++t){const e=o.tracks[t],s=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const o=e.times[t]*i;if(!(o<n||o>=r)){l.push(e.times[t]);for(let n=0;n<s;++n)c.push(e.values[t*s+n])}}0!==l.length&&(e.times=za.convertArray(l,e.times.constructor),e.values=za.convertArray(c,e.values.constructor),a.push(e))}o.tracks=a;let s=1/0;for(let t=0;t<o.tracks.length;++t)s>o.tracks[t].times[0]&&(s=o.tracks[t].times[0]);for(let t=0;t<o.tracks.length;++t)o.tracks[t].shift(-1*s);return o.resetDuration(),o},makeClipAdditive:function(t,e=0,n=t,r=30){r<=0&&(r=30);const i=n.tracks.length,o=e/r;for(let e=0;e<i;++e){const r=n.tracks[e],i=r.ValueTypeName;if(\"bool\"===i||\"string\"===i)continue;const a=t.tracks.find((function(t){return t.name===r.name&&t.ValueTypeName===i}));if(void 0===a)continue;let s=0;const l=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(s=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=r.times.length-1;let d;if(o<=r.times[0]){const t=s,e=l-s;d=za.arraySlice(r.values,t,e)}else if(o>=r.times[u]){const t=u*l+s,e=t+l-s;d=za.arraySlice(r.values,t,e)}else{const t=r.createInterpolant(),e=s,n=l-s;t.evaluate(o),d=za.arraySlice(t.resultBuffer,e,n)}if(\"quaternion\"===i){(new it).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if(\"quaternion\"===i)it.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}return t.blendMode=2501,t}};class Ba{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],i=e[n-1];t:{e:{let o;n:{r:if(!(t<r)){for(let o=n+2;;){if(void 0===r){if(t<i)break r;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,i)}if(n===o)break;if(i=r,r=e[++n],t<r)break e}o=e.length;break n}if(t>=i)break t;{const a=e[1];t<a&&(n=2,i=a);for(let o=n-2;;){if(void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,r);if(n===o)break;if(r=i,i=e[--n-1],t>=i)break e}o=n,n=0}}for(;n<o;){const r=n+o>>>1;t<e[r]?o=r:n=r+1}if(r=e[n],i=e[n-1],void 0===i)return this._cachedIndex=0,this.beforeStart_(0,t,r);if(void 0===r)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,i,t)}this._cachedIndex=n,this.intervalChanged_(n,i,r)}return this.interpolate_(n,i,t,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=t*r;for(let t=0;t!==r;++t)e[t]=n[i+t];return e}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}Ba.prototype.beforeStart_=Ba.prototype.copySampleValue_,Ba.prototype.afterEnd_=Ba.prototype.copySampleValue_;class Fa extends Ba{constructor(t,e,n,r){super(t,e,n,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:P,endingEnd:P}}intervalChanged_(t,e,n){const r=this.parameterPositions;let i=t-2,o=t+1,a=r[i],s=r[o];if(void 0===a)switch(this.getSettings_().endingStart){case R:i=t,a=2*e-n;break;case D:i=r.length-2,a=e+r[i]-r[i+1];break;default:i=t,a=n}if(void 0===s)switch(this.getSettings_().endingEnd){case R:o=t,s=2*n-e;break;case D:o=1,s=n+r[1]-r[0];break;default:o=t-1,s=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(s-n),this._offsetPrev=i*c,this._offsetNext=o*c}interpolate_(t,e,n,r){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,l=s-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(r-e),f=p*p,m=f*p,g=-u*m+2*u*f-u*p,v=(1+u)*m+(-1.5-2*u)*f+(-.5+u)*p+1,y=(-1-d)*m+(1.5+d)*f+.5*p,x=d*m-d*f;for(let t=0;t!==a;++t)i[t]=g*o[c+t]+v*o[l+t]+y*o[s+t]+x*o[h+t];return i}}class Ua extends Ba{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,l=s-a,c=(n-e)/(r-e),h=1-c;for(let t=0;t!==a;++t)i[t]=o[l+t]*h+o[s+t]*c;return i}}class Ha extends Ba{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t){return this.copySampleValue_(t-1)}}class Va{constructor(t,e,n,r){if(void 0===t)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(void 0===e||0===e.length)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t,this.times=za.convertArray(e,this.TimeBufferType),this.values=za.convertArray(n,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:za.convertArray(t.times,Array),values:za.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new Ha(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new Ua(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new Fa(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case A:e=this.InterpolantFactoryMethodDiscrete;break;case L:e=this.InterpolantFactoryMethodLinear;break;case C:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn(\"THREE.KeyframeTrack:\",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return A;case this.InterpolantFactoryMethodLinear:return L;case this.InterpolantFactoryMethodSmooth:return C}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,r=e.length;n!==r;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,r=e.length;n!==r;++n)e[n]*=t}return this}trim(t,e){const n=this.times,r=n.length;let i=0,o=r-1;for(;i!==r&&n[i]<t;)++i;for(;-1!==o&&n[o]>e;)--o;if(++o,0!==i||o!==r){i>=o&&(o=Math.max(o,1),i=o-1);const t=this.getValueSize();this.times=za.arraySlice(n,i,o),this.values=za.arraySlice(this.values,i*t,o*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this),t=!1);const n=this.times,r=this.values,i=n.length;0===i&&(console.error(\"THREE.KeyframeTrack: Track is empty.\",this),t=!1);let o=null;for(let e=0;e!==i;e++){const r=n[e];if(\"number\"==typeof r&&isNaN(r)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,e,r),t=!1;break}if(null!==o&&o>r){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,e,r,o),t=!1;break}o=r}if(void 0!==r&&za.isTypedArray(r))for(let e=0,n=r.length;e!==n;++e){const n=r[e];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,e,n),t=!1;break}}return t}optimize(){const t=za.arraySlice(this.times),e=za.arraySlice(this.values),n=this.getValueSize(),r=this.getInterpolation()===C,i=t.length-1;let o=1;for(let a=1;a<i;++a){let i=!1;const s=t[a];if(s!==t[a+1]&&(1!==a||s!==t[0]))if(r)i=!0;else{const t=a*n,r=t-n,o=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[r+a]||n!==e[o+a]){i=!0;break}}}if(i){if(a!==o){t[o]=t[a];const r=a*n,i=o*n;for(let t=0;t!==n;++t)e[i+t]=e[r+t]}++o}}if(i>0){t[o]=t[i];for(let t=i*n,r=o*n,a=0;a!==n;++a)e[r+a]=e[t+a];++o}return o!==t.length?(this.times=za.arraySlice(t,0,o),this.values=za.arraySlice(e,0,o*n)):(this.times=t,this.values=e),this}clone(){const t=za.arraySlice(this.times,0),e=za.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}Va.prototype.TimeBufferType=Float32Array,Va.prototype.ValueBufferType=Float32Array,Va.prototype.DefaultInterpolation=L;class Ga extends Va{}Ga.prototype.ValueTypeName=\"bool\",Ga.prototype.ValueBufferType=Array,Ga.prototype.DefaultInterpolation=A,Ga.prototype.InterpolantFactoryMethodLinear=void 0,Ga.prototype.InterpolantFactoryMethodSmooth=void 0;class ja extends Va{}ja.prototype.ValueTypeName=\"color\";class Wa extends Va{}Wa.prototype.ValueTypeName=\"number\";class qa extends Ba{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const i=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=(n-e)/(r-e);let l=t*a;for(let t=l+a;l!==t;l+=4)it.slerpFlat(i,0,o,l-a,o,l,s);return i}}class Xa extends Va{InterpolantFactoryMethodLinear(t){return new qa(this.times,this.values,this.getValueSize(),t)}}Xa.prototype.ValueTypeName=\"quaternion\",Xa.prototype.DefaultInterpolation=L,Xa.prototype.InterpolantFactoryMethodSmooth=void 0;class Ya extends Va{}Ya.prototype.ValueTypeName=\"string\",Ya.prototype.ValueBufferType=Array,Ya.prototype.DefaultInterpolation=A,Ya.prototype.InterpolantFactoryMethodLinear=void 0,Ya.prototype.InterpolantFactoryMethodSmooth=void 0;class Za extends Va{}Za.prototype.ValueTypeName=\"vector\";class Ja{constructor(t,e=-1,n,r=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=G(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let t=0,i=n.length;t!==i;++t)e.push($a(n[t]).scale(r));const i=new this(t.name,t.duration,e,t.blendMode);return i.uuid=t.uuid,i}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,r=n.length;t!==r;++t)e.push(Va.toJSON(n[t]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const i=e.length,o=[];for(let t=0;t<i;t++){let a=[],s=[];a.push((t+i-1)%i,t,(t+1)%i),s.push(0,1,0);const l=za.getKeyframeOrder(a);a=za.sortedArray(a,1,l),s=za.sortedArray(s,1,l),r||0!==a[0]||(a.push(i),s.push(s[0])),o.push(new Wa(\".morphTargetInfluences[\"+e[t].name+\"]\",a,s).scale(1/n))}return new this(t,-1,o)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const r={},i=/^([\\w-]*?)([\\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],o=n.name.match(i);if(o&&o.length>1){const t=o[1];let e=r[t];e||(r[t]=e=[]),e.push(n)}}const o=[];for(const t in r)o.push(this.CreateFromMorphTargetSequence(t,r[t],e,n));return o}static parseAnimation(t,e){if(!t)return console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\"),null;const n=function(t,e,n,r,i){if(0!==n.length){const o=[],a=[];za.flattenJSON(n,o,a,r),0!==o.length&&i.push(new t(e,o,a))}},r=[],i=t.name||\"default\",o=t.fps||30,a=t.blendMode;let s=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const i=l[t].keys;if(i&&0!==i.length)if(i[0].morphTargets){const t={};let e;for(e=0;e<i.length;e++)if(i[e].morphTargets)for(let n=0;n<i[e].morphTargets.length;n++)t[i[e].morphTargets[n]]=-1;for(const n in t){const t=[],o=[];for(let r=0;r!==i[e].morphTargets.length;++r){const r=i[e];t.push(r.time),o.push(r.morphTarget===n?1:0)}r.push(new Wa(\".morphTargetInfluence[\"+n+\"]\",t,o))}s=t.length*(o||1)}else{const o=\".bones[\"+e[t].name+\"]\";n(Za,o+\".position\",i,\"pos\",r),n(Xa,o+\".quaternion\",i,\"rot\",r),n(Za,o+\".scale\",i,\"scl\",r)}}if(0===r.length)return null;return new this(i,s,r,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function $a(t){if(void 0===t.type)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const e=function(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return Wa;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return Za;case\"color\":return ja;case\"quaternion\":return Xa;case\"bool\":case\"boolean\":return Ga;case\"string\":return Ya}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+t)}(t.type);if(void 0===t.times){const e=[],n=[];za.flattenJSON(t.keys,e,n,\"value\"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Qa={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};const Ka=new class{constructor(t,e,n){const r=this;let i,o=!1,a=0,s=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){s++,!1===o&&void 0!==r.onStart&&r.onStart(t,a,s),o=!0},this.itemEnd=function(t){a++,void 0!==r.onProgress&&r.onProgress(t,a,s),a===s&&(o=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(t){void 0!==r.onError&&r.onError(t)},this.resolveURL=function(t){return i?i(t):t},this.setURLModifier=function(t){return i=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],r=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return r}return null}}};class ts{constructor(t){this.manager=void 0!==t?t:Ka,this.crossOrigin=\"anonymous\",this.withCredentials=!1,this.path=\"\",this.resourcePath=\"\",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(r,i){n.load(t,r,e,i)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const es={};class ns extends ts{constructor(t){super(t)}load(t,e,n,r){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,o=Qa.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0),o;if(void 0!==es[t])return void es[t].push({onLoad:e,onProgress:n,onError:r});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let s;if(a){const n=a[1],o=!!a[2];let s=a[3];s=decodeURIComponent(s),o&&(s=atob(s));try{let r;const o=(this.responseType||\"\").toLowerCase();switch(o){case\"arraybuffer\":case\"blob\":const t=new Uint8Array(s.length);for(let e=0;e<s.length;e++)t[e]=s.charCodeAt(e);r=\"blob\"===o?new Blob([t.buffer],{type:n}):t.buffer;break;case\"document\":const e=new DOMParser;r=e.parseFromString(s,n);break;case\"json\":r=JSON.parse(s);break;default:r=s}setTimeout((function(){e&&e(r),i.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){r&&r(e),i.manager.itemError(t),i.manager.itemEnd(t)}),0)}}else{es[t]=[],es[t].push({onLoad:e,onProgress:n,onError:r}),s=new XMLHttpRequest,s.open(\"GET\",t,!0),s.addEventListener(\"load\",(function(e){const n=this.response,r=es[t];if(delete es[t],200===this.status||0===this.status){0===this.status&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\"),Qa.add(t,n);for(let t=0,e=r.length;t<e;t++){const e=r[t];e.onLoad&&e.onLoad(n)}i.manager.itemEnd(t)}else{for(let t=0,n=r.length;t<n;t++){const n=r[t];n.onError&&n.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}}),!1),s.addEventListener(\"progress\",(function(e){const n=es[t];for(let t=0,r=n.length;t<r;t++){const r=n[t];r.onProgress&&r.onProgress(e)}}),!1),s.addEventListener(\"error\",(function(e){const n=es[t];delete es[t];for(let t=0,r=n.length;t<r;t++){const r=n[t];r.onError&&r.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}),!1),s.addEventListener(\"abort\",(function(e){const n=es[t];delete es[t];for(let t=0,r=n.length;t<r;t++){const r=n[t];r.onError&&r.onError(e)}i.manager.itemError(t),i.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(s.responseType=this.responseType),void 0!==this.withCredentials&&(s.withCredentials=this.withCredentials),s.overrideMimeType&&s.overrideMimeType(void 0!==this.mimeType?this.mimeType:\"text/plain\");for(const t in this.requestHeader)s.setRequestHeader(t,this.requestHeader[t]);s.send(null)}return i.manager.itemStart(t),s}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class rs extends ts{constructor(t){super(t)}load(t,e,n,r){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,o=Qa.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0),o;const a=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"img\");function s(){a.removeEventListener(\"load\",s,!1),a.removeEventListener(\"error\",l,!1),Qa.add(t,this),e&&e(this),i.manager.itemEnd(t)}function l(e){a.removeEventListener(\"load\",s,!1),a.removeEventListener(\"error\",l,!1),r&&r(e),i.manager.itemError(t),i.manager.itemEnd(t)}return a.addEventListener(\"load\",s,!1),a.addEventListener(\"error\",l,!1),\"data:\"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),i.manager.itemStart(t),a.src=t,a}}class is extends ts{constructor(t){super(t)}load(t,e,n,r){const i=new xn,o=new rs(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);let a=0;function s(n){o.load(t[n],(function(t){i.images[n]=t,a++,6===a&&(i.needsUpdate=!0,e&&e(i))}),void 0,r)}for(let e=0;e<t.length;++e)s(e);return i}}class os extends ts{constructor(t){super(t)}load(t,e,n,r){const i=new K,o=new rs(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,(function(n){i.image=n;const r=t.search(/\\.jpe?g($|\\?)/i)>0||0===t.search(/^data\\:image\\/jpeg/);i.format=r?M:S,i.needsUpdate=!0,void 0!==e&&e(i)}),n,r),i}}class as extends zo{constructor(){super(),this.type=\"CurvePath\",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new $o(e,t))}getPoint(t){const e=t*this.getLength(),n=this.getCurveLengths();let r=0;for(;r<n.length;){if(n[r]>=e){const t=n[r]-e,i=this.curves[r],o=i.getLength(),a=0===o?0:1-t/o;return i.getPointAt(a)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n<r;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let r=0,i=this.curves;r<i.length;r++){const o=i[r],a=o&&o.isEllipseCurve?2*t:o&&(o.isLineCurve||o.isLineCurve3)?1:o&&o.isSplineCurve?t*o.points.length:t,s=o.getPoints(a);for(let t=0;t<s.length;t++){const r=s[t];n&&n.equals(r)||(e.push(r),n=r)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new ea[n.type]).fromJSON(n))}return this}}class ss extends as{constructor(t){super(),this.type=\"Path\",this.currentPoint=new Y,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new $o(this.currentPoint.clone(),new Y(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,r){const i=new Qo(this.currentPoint.clone(),new Y(t,e),new Y(n,r));return this.curves.push(i),this.currentPoint.set(n,r),this}bezierCurveTo(t,e,n,r,i,o){const a=new Zo(this.currentPoint.clone(),new Y(t,e),new Y(n,r),new Y(i,o));return this.curves.push(a),this.currentPoint.set(i,o),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new ta(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,r,i,o){const a=this.currentPoint.x,s=this.currentPoint.y;return this.absarc(t+a,e+s,n,r,i,o),this}absarc(t,e,n,r,i,o){return this.absellipse(t,e,n,n,r,i,o),this}ellipse(t,e,n,r,i,o,a,s){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,r,i,o,a,s),this}absellipse(t,e,n,r,i,o,a,s){const l=new Bo(t,e,n,r,i,o,a,s);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class ls extends ss{constructor(t){super(t),this.uuid=G(),this.type=\"Shape\",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n<r;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new ss).fromJSON(n))}return this}}class cs extends se{constructor(t,e=1){super(),this.type=\"Light\",this.color=new Ae(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}cs.prototype.isLight=!0;(class extends cs{constructor(t,e,n){super(t,n),this.type=\"HemisphereLight\",this.position.copy(se.DefaultUp),this.updateMatrix(),this.groundColor=new Ae(e)}copy(t){return cs.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}).prototype.isHemisphereLight=!0;const hs=new kt,us=new ot,ds=new ot;class ps{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.mapSize=new Y(512,512),this.map=null,this.mapPass=null,this.matrix=new kt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new An,this._frameExtents=new Y(1,1),this._viewportCount=1,this._viewports=[new et(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;us.setFromMatrixPosition(t.matrixWorld),e.position.copy(us),ds.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(ds),e.updateMatrixWorld(),hs.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(hs),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class fs extends ps{constructor(){super(new gn(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*V*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,i=t.distance||e.far;n===e.fov&&r===e.aspect&&i===e.far||(e.fov=n,e.aspect=r,e.far=i,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}fs.prototype.isSpotLightShadow=!0;(class extends cs{constructor(t,e,n=0,r=Math.PI/3,i=0,o=1){super(t,e),this.type=\"SpotLight\",this.position.copy(se.DefaultUp),this.updateMatrix(),this.target=new se,this.distance=n,this.angle=r,this.penumbra=i,this.decay=o,this.shadow=new fs}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}).prototype.isSpotLight=!0;const ms=new kt,gs=new ot,vs=new ot;class ys extends ps{constructor(){super(new gn(90,1,.5,500)),this._frameExtents=new Y(4,2),this._viewportCount=6,this._viewports=[new et(2,1,1,1),new et(0,1,1,1),new et(3,1,1,1),new et(1,1,1,1),new et(3,0,1,1),new et(1,0,1,1)],this._cubeDirections=[new ot(1,0,0),new ot(-1,0,0),new ot(0,0,1),new ot(0,0,-1),new ot(0,1,0),new ot(0,-1,0)],this._cubeUps=[new ot(0,1,0),new ot(0,1,0),new ot(0,1,0),new ot(0,1,0),new ot(0,0,1),new ot(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,i=t.distance||n.far;i!==n.far&&(n.far=i,n.updateProjectionMatrix()),gs.setFromMatrixPosition(t.matrixWorld),n.position.copy(gs),vs.copy(n.position),vs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(vs),n.updateMatrixWorld(),r.makeTranslation(-gs.x,-gs.y,-gs.z),ms.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ms)}}ys.prototype.isPointLightShadow=!0;(class extends cs{constructor(t,e,n=0,r=1){super(t,e),this.type=\"PointLight\",this.distance=n,this.decay=r,this.shadow=new ys}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}).prototype.isPointLight=!0;class xs extends mn{constructor(t=-1,e=1,n=1,r=-1,i=.1,o=2e3){super(),this.type=\"OrthographicCamera\",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=r,this.near=i,this.far=o,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,r,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let i=n-t,o=n+t,a=r+e,s=r-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=t*this.view.offsetX,o=i+t*this.view.width,a-=e*this.view.offsetY,s=a-e*this.view.height}this.projectionMatrix.makeOrthographic(i,o,a,s,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}xs.prototype.isOrthographicCamera=!0;class _s extends ps{constructor(){super(new xs(-5,5,5,-5,.5,500))}}_s.prototype.isDirectionalLightShadow=!0;class bs extends cs{constructor(t,e){super(t,e),this.type=\"DirectionalLight\",this.position.copy(se.DefaultUp),this.updateMatrix(),this.target=new se,this.shadow=new _s}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}bs.prototype.isDirectionalLight=!0;class ws extends cs{constructor(t,e){super(t,e),this.type=\"AmbientLight\"}}ws.prototype.isAmbientLight=!0;(class extends cs{constructor(t,e,n=10,r=10){super(t,e),this.type=\"RectAreaLight\",this.width=n,this.height=r}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}).prototype.isRectAreaLight=!0;class Ms{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new ot)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,r=t.y,i=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.282095),e.addScaledVector(o[1],.488603*r),e.addScaledVector(o[2],.488603*i),e.addScaledVector(o[3],.488603*n),e.addScaledVector(o[4],n*r*1.092548),e.addScaledVector(o[5],r*i*1.092548),e.addScaledVector(o[6],.315392*(3*i*i-1)),e.addScaledVector(o[7],n*i*1.092548),e.addScaledVector(o[8],.546274*(n*n-r*r)),e}getIrradianceAt(t,e){const n=t.x,r=t.y,i=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.886227),e.addScaledVector(o[1],1.023328*r),e.addScaledVector(o[2],1.023328*i),e.addScaledVector(o[3],1.023328*n),e.addScaledVector(o[4],.858086*n*r),e.addScaledVector(o[5],.858086*r*i),e.addScaledVector(o[6],.743125*i*i-.247708),e.addScaledVector(o[7],.858086*n*i),e.addScaledVector(o[8],.429043*(n*n-r*r)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].fromArray(t,e+3*r);return this}toArray(t=[],e=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].toArray(t,e+3*r);return t}static getBasisAt(t,e){const n=t.x,r=t.y,i=t.z;e[0]=.282095,e[1]=.488603*r,e[2]=.488603*i,e[3]=.488603*n,e[4]=1.092548*n*r,e[5]=1.092548*r*i,e[6]=.315392*(3*i*i-1),e[7]=1.092548*n*i,e[8]=.546274*(n*n-r*r)}}Ms.prototype.isSphericalHarmonics3=!0;class Ss extends cs{constructor(t=new Ms,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}Ss.prototype.isLightProbe=!0;(class extends Ge{constructor(){super(),this.type=\"InstancedBufferGeometry\",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}).prototype.isInstancedBufferGeometry=!0;(class extends Re{constructor(t,e,n,r=1){\"number\"==typeof n&&(r=n,n=!1,console.error(\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\")),super(t,e,n),this.meshPerAttribute=r}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}).prototype.isInstancedBufferAttribute=!0;let Es;(class extends ts{constructor(t){super(t),\"undefined\"==typeof createImageBitmap&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\"),\"undefined\"==typeof fetch&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\"),this.options={premultiplyAlpha:\"none\"}}setOptions(t){return this.options=t,this}load(t,e,n,r){void 0===t&&(t=\"\"),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const i=this,o=Qa.get(t);if(void 0!==o)return i.manager.itemStart(t),setTimeout((function(){e&&e(o),i.manager.itemEnd(t)}),0),o;const a={};a.credentials=\"anonymous\"===this.crossOrigin?\"same-origin\":\"include\",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(i.options,{colorSpaceConversion:\"none\"}))})).then((function(n){Qa.add(t,n),e&&e(n),i.manager.itemEnd(t)})).catch((function(e){r&&r(e),i.manager.itemError(t),i.manager.itemEnd(t)})),i.manager.itemStart(t)}}).prototype.isImageBitmapLoader=!0;const Ts=function(){return void 0===Es&&(Es=new(window.AudioContext||window.webkitAudioContext)),Es};class As extends ts{constructor(t){super(t)}load(t,e,n,r){const i=this,o=new ns(this.manager);o.setResponseType(\"arraybuffer\"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,(function(n){try{const t=n.slice(0);Ts().decodeAudioData(t,(function(t){e(t)}))}catch(e){r?r(e):console.error(e),i.manager.itemError(t)}}),n,r)}}(class extends Ss{constructor(t,e,n=1){super(void 0,n);const r=(new Ae).set(t),i=(new Ae).set(e),o=new ot(r.r,r.g,r.b),a=new ot(i.r,i.g,i.b),s=Math.sqrt(Math.PI),l=s*Math.sqrt(.75);this.sh.coefficients[0].copy(o).add(a).multiplyScalar(s),this.sh.coefficients[1].copy(o).sub(a).multiplyScalar(l)}}).prototype.isHemisphereLightProbe=!0;(class extends Ss{constructor(t,e=1){super(void 0,e);const n=(new Ae).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}).prototype.isAmbientLightProbe=!0;class Ls{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Cs(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Cs();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Cs(){return(\"undefined\"==typeof performance?Date:performance).now()}class Ps{constructor(t,e,n){let r,i,o;switch(this.binding=t,this.valueSize=n,e){case\"quaternion\":r=this._slerp,i=this._slerpAdditive,o=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case\"string\":case\"bool\":r=this._select,i=this._select,o=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:r=this._lerp,i=this._lerpAdditive,o=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=r,this._mixBufferRegionAdditive=i,this._setIdentity=o,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,r=this.valueSize,i=t*r+r;let o=this.cumulativeWeight;if(0===o){for(let t=0;t!==r;++t)n[i+t]=n[t];o=e}else{o+=e;const t=e/o;this._mixBufferRegion(n,i,0,t,r)}this.cumulativeWeight=o}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,r=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,r,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,r=t*e+e,i=this.cumulativeWeight,o=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,i<1){const t=e*this._origIndex;this._mixBufferRegion(n,r,t,1-i,e)}o>0&&this._mixBufferRegionAdditive(n,r,this._addIndex*e,1,e);for(let t=e,i=e+e;t!==i;++t)if(n[t]!==n[t+e]){a.setValue(n,r);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,r=n*this._origIndex;t.getValue(e,r);for(let t=n,i=r;t!==i;++t)e[t]=e[r+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,r,i){if(r>=.5)for(let r=0;r!==i;++r)t[e+r]=t[n+r]}_slerp(t,e,n,r){it.slerpFlat(t,e,t,e,t,n,r)}_slerpAdditive(t,e,n,r,i){const o=this._workIndex*i;it.multiplyQuaternionsFlat(t,o,t,e,t,n),it.slerpFlat(t,e,t,e,t,o,r)}_lerp(t,e,n,r,i){const o=1-r;for(let a=0;a!==i;++a){const i=e+a;t[i]=t[i]*o+t[n+a]*r}}_lerpAdditive(t,e,n,r,i){for(let o=0;o!==i;++o){const i=e+o;t[i]=t[i]+t[n+o]*r}}}const Rs=\"\\\\[\\\\]\\\\.:\\\\/\",Ds=new RegExp(\"[\\\\[\\\\]\\\\.:\\\\/]\",\"g\"),Is=\"[^\\\\[\\\\]\\\\.:\\\\/]\",Ns=\"[^\"+Rs.replace(\"\\\\.\",\"\")+\"]\",Os=/((?:WC+[\\/:])*)/.source.replace(\"WC\",Is),ks=/(WCOD+)?/.source.replace(\"WCOD\",Ns),zs=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",Is),Bs=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",Is),Fs=new RegExp(\"^\"+Os+ks+zs+Bs+\"$\"),Us=[\"material\",\"materials\",\"bones\"];class Hs{constructor(t,e,n){this.path=e,this.parsedPath=n||Hs.parseTrackName(e),this.node=Hs.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Hs.Composite(t,e,n):new Hs(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,\"_\").replace(Ds,\"\")}static parseTrackName(t){const e=Fs.exec(t);if(!e)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(void 0!==r&&-1!==r){const t=n.nodeName.substring(r+1);-1!==Us.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return n}static findNode(t,e){if(!e||\"\"===e||\".\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let r=0;r<t.length;r++){const i=t[r];if(i.name===e||i.uuid===e)return i;const o=n(i.children);if(o)return o}return null},r=n(t.children);if(r)return r}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.node[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)t[e++]=n[r]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,r=e.propertyName;let i=e.propertyIndex;if(t||(t=Hs.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\"THREE.PropertyBinding: Trying to update node for track: \"+this.path+\" but it wasn't found.\");if(n){let r=e.objectIndex;switch(n){case\"materials\":if(!t.material)return void console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);if(!t.material.materials)return void console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);t=t.material.materials;break;case\"bones\":if(!t.skeleton)return void console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===r){r=e;break}break;default:if(void 0===t[n])return void console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);t=t[n]}if(void 0!==r){if(void 0===t[r])return void console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,t);t=t[r]}}const o=t[r];if(void 0===o){const n=e.nodeName;return void console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+r+\" but it wasn't found.\",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let s=this.BindingType.Direct;if(void 0!==i){if(\"morphTargetInfluences\"===r){if(!t.geometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);if(!t.geometry.isBufferGeometry)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\",this);if(!t.geometry.morphAttributes)return void console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);void 0!==t.morphTargetDictionary[i]&&(i=t.morphTargetDictionary[i])}s=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=i}else void 0!==o.fromArray&&void 0!==o.toArray?(s=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(s=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=r;this.getValue=this.GetterByBindingType[s],this.setValue=this.SetterByBindingTypeAndVersioning[s][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Hs.Composite=class{constructor(t,e,n){const r=n||Hs.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];void 0!==r&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=n.length;r!==i;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},Hs.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Hs.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},Hs.prototype.GetterByBindingType=[Hs.prototype._getValue_direct,Hs.prototype._getValue_array,Hs.prototype._getValue_arrayElement,Hs.prototype._getValue_toArray],Hs.prototype.SetterByBindingTypeAndVersioning=[[Hs.prototype._setValue_direct,Hs.prototype._setValue_direct_setNeedsUpdate,Hs.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Hs.prototype._setValue_array,Hs.prototype._setValue_array_setNeedsUpdate,Hs.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Hs.prototype._setValue_arrayElement,Hs.prototype._setValue_arrayElement_setNeedsUpdate,Hs.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Hs.prototype._setValue_fromArray,Hs.prototype._setValue_fromArray_setNeedsUpdate,Hs.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class Vs{constructor(t,e,n=null,r=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=r;const i=e.tracks,o=i.length,a=new Array(o),s={endingStart:P,endingEnd:P};for(let t=0;t!==o;++t){const e=i[t].createInterpolant(null);a[t]=e,e.settings=s}this._interpolantSettings=s,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,r=t._clip.duration,i=r/n,o=n/r;t.warp(1,i,e),this.warp(o,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const r=this._mixer,i=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const s=a.parameterPositions,l=a.sampleValues;return s[0]=i,s[1]=i+n,l[0]=t/o,l[1]=e/o,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,r){if(!this.enabled)return void this._updateWeight(t);const i=this._startTime;if(null!==i){const r=(t-i)*n;if(r<0||0===n)return;this._startTime=null,e=n*r}e*=this._updateTimeScale(t);const o=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case 2501:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(o),e[n].accumulateAdditive(a);break;case I:default:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(o),e[n].accumulate(r,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const r=n.evaluate(t)[0];e*=r,t>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let r=this.time+t,i=this._loopCount;const o=2202===n;if(0===t)return-1===i?r:o&&1==(1&i)?e-r:r;if(2200===n){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(r>=e)r=e;else{if(!(r<0)){this.time=r;break t}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{if(-1===i&&(t>=0?(i=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),r>=e||r<0){const n=Math.floor(r/e);r-=e*n,i+=Math.abs(n);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=t>0?e:0,this.time=r,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=r;if(o&&1==(1&i))return e-r}return r}_setEndings(t,e,n){const r=this._interpolantSettings;n?(r.endingStart=R,r.endingEnd=R):(r.endingStart=t?this.zeroSlopeAtStart?R:P:D,r.endingEnd=e?this.zeroSlopeAtEnd?R:P:D)}_scheduleFading(t,e,n){const r=this._mixer,i=r.time;let o=this._weightInterpolant;null===o&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,s=o.sampleValues;return a[0]=i,s[0]=e,a[1]=i+t,s[1]=n,this}}(class extends F{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,r=t._clip.tracks,i=r.length,o=t._propertyBindings,a=t._interpolants,s=n.uuid,l=this._bindingsByRootAndName;let c=l[s];void 0===c&&(c={},l[s]=c);for(let t=0;t!==i;++t){const i=r[t],l=i.name;let h=c[l];if(void 0!==h)o[t]=h;else{if(h=o[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,s,l));continue}const r=e&&e._propertyBindings[t].binding.parsedPath;h=new Ps(Hs.create(n,l,r),i.ValueTypeName,i.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,s,l),o[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,r=this._actionsByClip[n];this._bindAction(t,r&&r.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const r=this._actions,i=this._actionsByClip;let o=i[e];if(void 0===o)o={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,i[e]=o;else{const e=o.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=r.length,r.push(t),o.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],r=t._cacheIndex;n._cacheIndex=r,e[r]=n,e.pop(),t._cacheIndex=null;const i=t._clip.uuid,o=this._actionsByClip,a=o[i],s=a.knownActions,l=s[s.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,s[c]=l,s.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===s.length&&delete o[i],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,r=this._nActiveActions++,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,r=--this._nActiveActions,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_addInactiveBinding(t,e,n){const r=this._bindingsByRootAndName,i=this._bindings;let o=r[e];void 0===o&&(o={},r[e]=o),o[n]=t,t._cacheIndex=i.length,i.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,r=n.rootNode.uuid,i=n.path,o=this._bindingsByRootAndName,a=o[r],s=e[e.length-1],l=t._cacheIndex;s._cacheIndex=l,e[l]=s,e.pop(),delete a[i],0===Object.keys(a).length&&delete o[r]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,r=this._nActiveBindings++,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,r=--this._nActiveBindings,i=e[r];t._cacheIndex=r,e[r]=t,i._cacheIndex=n,e[n]=i}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new Ua(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,r=--this._nActiveControlInterpolants,i=e[r];t.__cacheIndex=r,e[r]=t,i.__cacheIndex=n,e[n]=i}clipAction(t,e,n){const r=e||this._root,i=r.uuid;let o=\"string\"==typeof t?Ja.findByName(r,t):t;const a=null!==o?o.uuid:t,s=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==o?o.blendMode:I),void 0!==s){const t=s.actionByRoot[i];if(void 0!==t&&t.blendMode===n)return t;l=s.knownActions[0],null===o&&(o=l._clip)}if(null===o)return null;const c=new Vs(this,o,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,i),c}existingAction(t,e){const n=e||this._root,r=n.uuid,i=\"string\"==typeof t?Ja.findByName(n,t):t,o=i?i.uuid:t,a=this._actionsByClip[o];return void 0!==a&&a.actionByRoot[r]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,r=this.time+=t,i=Math.sign(t),o=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(r,t,i,o)}const a=this._bindings,s=this._nActiveBindings;for(let t=0;t!==s;++t)a[t].apply(o);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,r=this._actionsByClip,i=r[n];if(void 0!==i){const t=i.knownActions;for(let n=0,r=t.length;n!==r;++n){const r=t[n];this._deactivateAction(r);const i=r._cacheIndex,o=e[e.length-1];r._cacheIndex=null,r._byClipCacheIndex=null,o._cacheIndex=i,e[i]=o,e.pop(),this._removeInactiveBindingsForAction(r)}delete r[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const r=n[t].actionByRoot[e];void 0!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}const r=this._bindingsByRootAndName[e];if(void 0!==r)for(const t in r){const e=r[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}).prototype._controlInterpolantsResultBuffer=new Float32Array(1);(class extends ji{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}).prototype.isInstancedInterleavedBuffer=!0;class Gs{constructor(t,e,n=0,r=1/0){this.ray=new Ot(t,e),this.near=n,this.far=r,this.camera=null,this.layers=new Xt,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error(\"THREE.Raycaster: Unsupported camera type: \"+e.type)}intersectObject(t,e=!1,n=[]){return Ws(t,this,n,e),n.sort(js),n}intersectObjects(t,e=!1,n=[]){for(let r=0,i=t.length;r<i;r++)Ws(t[r],this,n,e);return n.sort(js),n}}function js(t,e){return t.distance-e.distance}function Ws(t,e,n,r){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===r){const r=t.children;for(let t=0,i=r.length;t<i;t++)Ws(r[t],e,n,!0)}}class qs{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(j(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}(class extends se{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}).prototype.isImmediateRenderObject=!0;const Xs=new ot,Ys=new kt,Zs=new kt;function Js(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,Js(t.children[n]));return e}const $s=new Float32Array(1);new Int32Array($s.buffer);const Qs=new Le({side:1,depthWrite:!1,depthTest:!1});new ln(new hn,Qs),zo.create=function(t,e){return console.log(\"THREE.Curve.create() has been deprecated\"),t.prototype=Object.create(zo.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},ss.prototype.fromPoints=function(t){return console.warn(\"THREE.Path: .fromPoints() has been renamed to .setFromPoints().\"),this.setFromPoints(t)},class extends Lo{constructor(t=10,e=10,n=4473924,r=8947848){n=new Ae(n),r=new Ae(r);const i=e/2,o=t/e,a=t/2,s=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=o){s.push(-a,0,h,a,0,h),s.push(h,0,-a,h,0,a);const e=t===i?n:r;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new Ge;c.setAttribute(\"position\",new Ne(s,3)),c.setAttribute(\"color\",new Ne(l,3));super(c,new xo({vertexColors:!0,toneMapped:!1})),this.type=\"GridHelper\"}}.prototype.setColors=function(){console.error(\"THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.\")},class extends Lo{constructor(t){const e=Js(t),n=new Ge,r=[],i=[],o=new Ae(0,0,1),a=new Ae(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(r.push(0,0,0),r.push(0,0,0),i.push(o.r,o.g,o.b),i.push(a.r,a.g,a.b))}n.setAttribute(\"position\",new Ne(r,3)),n.setAttribute(\"color\",new Ne(i,3));super(n,new xo({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type=\"SkeletonHelper\",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,r=n.getAttribute(\"position\");Zs.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const i=e[t];i.parent&&i.parent.isBone&&(Ys.multiplyMatrices(Zs,i.matrixWorld),Xs.setFromMatrixPosition(Ys),r.setXYZ(n,Xs.x,Xs.y,Xs.z),Ys.multiplyMatrices(Zs,i.parent.matrixWorld),Xs.setFromMatrixPosition(Ys),r.setXYZ(n+1,Xs.x,Xs.y,Xs.z),n+=2)}n.getAttribute(\"position\").needsUpdate=!0,super.updateMatrixWorld(t)}}.prototype.update=function(){console.error(\"THREE.SkeletonHelper: update() no longer needs to be called.\")},ts.prototype.extractUrlBase=function(t){return console.warn(\"THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.\"),class{static decodeText(t){if(\"undefined\"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e=\"\";for(let n=0,r=t.length;n<r;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf(\"/\");return-1===e?\"./\":t.substr(0,e+1)}}.extractUrlBase(t)},ts.Handlers={add:function(){console.error(\"THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.\")},get:function(){console.error(\"THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.\")}},lt.prototype.center=function(t){return console.warn(\"THREE.Box3: .center() has been renamed to .getCenter().\"),this.getCenter(t)},lt.prototype.empty=function(){return console.warn(\"THREE.Box3: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},lt.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},lt.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},lt.prototype.size=function(t){return console.warn(\"THREE.Box3: .size() has been renamed to .getSize().\"),this.getSize(t)},At.prototype.empty=function(){return console.warn(\"THREE.Sphere: .empty() has been renamed to .isEmpty().\"),this.isEmpty()},An.prototype.setFromMatrix=function(t){return console.warn(\"THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().\"),this.setFromProjectionMatrix(t)},Z.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},Z.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},Z.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix3: .multiplyVector3Array() has been removed.\")},Z.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.\"),t.applyMatrix3(this)},Z.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix3: .applyToVector3Array() has been removed.\")},Z.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},kt.prototype.extractPosition=function(t){return console.warn(\"THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().\"),this.copyPosition(t)},kt.prototype.flattenToArrayOffset=function(t,e){return console.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\"),this.toArray(t,e)},kt.prototype.getPosition=function(){return console.warn(\"THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.\"),(new ot).setFromMatrixColumn(this,3)},kt.prototype.setRotationFromQuaternion=function(t){return console.warn(\"THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().\"),this.makeRotationFromQuaternion(t)},kt.prototype.multiplyToArray=function(){console.warn(\"THREE.Matrix4: .multiplyToArray() has been removed.\")},kt.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.multiplyVector4=function(t){return console.warn(\"THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix4: .multiplyVector3Array() has been removed.\")},kt.prototype.rotateAxis=function(t){console.warn(\"THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.\"),t.transformDirection(this)},kt.prototype.crossVector=function(t){return console.warn(\"THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.translate=function(){console.error(\"THREE.Matrix4: .translate() has been removed.\")},kt.prototype.rotateX=function(){console.error(\"THREE.Matrix4: .rotateX() has been removed.\")},kt.prototype.rotateY=function(){console.error(\"THREE.Matrix4: .rotateY() has been removed.\")},kt.prototype.rotateZ=function(){console.error(\"THREE.Matrix4: .rotateZ() has been removed.\")},kt.prototype.rotateByAxis=function(){console.error(\"THREE.Matrix4: .rotateByAxis() has been removed.\")},kt.prototype.applyToBufferAttribute=function(t){return console.warn(\"THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.\"),t.applyMatrix4(this)},kt.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix4: .applyToVector3Array() has been removed.\")},kt.prototype.makeFrustum=function(t,e,n,r,i,o){return console.warn(\"THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.\"),this.makePerspective(t,e,r,n,i,o)},kt.prototype.getInverse=function(t){return console.warn(\"THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\"),this.copy(t).invert()},Sn.prototype.isIntersectionLine=function(t){return console.warn(\"THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().\"),this.intersectsLine(t)},it.prototype.multiplyVector3=function(t){return console.warn(\"THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.\"),t.applyQuaternion(this)},it.prototype.inverse=function(){return console.warn(\"THREE.Quaternion: .inverse() has been renamed to invert().\"),this.invert()},Ot.prototype.isIntersectionBox=function(t){return console.warn(\"THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().\"),this.intersectsBox(t)},Ot.prototype.isIntersectionPlane=function(t){return console.warn(\"THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().\"),this.intersectsPlane(t)},Ot.prototype.isIntersectionSphere=function(t){return console.warn(\"THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().\"),this.intersectsSphere(t)},ye.prototype.area=function(){return console.warn(\"THREE.Triangle: .area() has been renamed to .getArea().\"),this.getArea()},ye.prototype.barycoordFromPoint=function(t,e){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),this.getBarycoord(t,e)},ye.prototype.midpoint=function(t){return console.warn(\"THREE.Triangle: .midpoint() has been renamed to .getMidpoint().\"),this.getMidpoint(t)},ye.prototypenormal=function(t){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),this.getNormal(t)},ye.prototype.plane=function(t){return console.warn(\"THREE.Triangle: .plane() has been renamed to .getPlane().\"),this.getPlane(t)},ye.barycoordFromPoint=function(t,e,n,r,i){return console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\"),ye.getBarycoord(t,e,n,r,i)},ye.normal=function(t,e,n,r){return console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\"),ye.getNormal(t,e,n,r)},ls.prototype.extractAllPoints=function(t){return console.warn(\"THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.\"),this.extractPoints(t)},ls.prototype.extrude=function(t){return console.warn(\"THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.\"),new Pa(this,t)},ls.prototype.makeGeometry=function(t){return console.warn(\"THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.\"),new Da(this,t)},Y.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},Y.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},Y.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},ot.prototype.setEulerFromRotationMatrix=function(){console.error(\"THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.\")},ot.prototype.setEulerFromQuaternion=function(){console.error(\"THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.\")},ot.prototype.getPositionFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().\"),this.setFromMatrixPosition(t)},ot.prototype.getScaleFromMatrix=function(t){return console.warn(\"THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().\"),this.setFromMatrixScale(t)},ot.prototype.getColumnFromMatrix=function(t,e){return console.warn(\"THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().\"),this.setFromMatrixColumn(e,t)},ot.prototype.applyProjection=function(t){return console.warn(\"THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.\"),this.applyMatrix4(t)},ot.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},ot.prototype.distanceToManhattan=function(t){return console.warn(\"THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\"),this.manhattanDistanceTo(t)},ot.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},et.prototype.fromAttribute=function(t,e,n){return console.warn(\"THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().\"),this.fromBufferAttribute(t,e,n)},et.prototype.lengthManhattan=function(){return console.warn(\"THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().\"),this.manhattanLength()},se.prototype.getChildByName=function(t){return console.warn(\"THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().\"),this.getObjectByName(t)},se.prototype.renderDepth=function(){console.warn(\"THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.\")},se.prototype.translate=function(t,e){return console.warn(\"THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.\"),this.translateOnAxis(e,t)},se.prototype.getWorldRotation=function(){console.error(\"THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.\")},se.prototype.applyMatrix=function(t){return console.warn(\"THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(se.prototype,{eulerOrder:{get:function(){return console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order},set:function(t){console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\"),this.rotation.order=t}},useQuaternion:{get:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")},set:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")}}}),ln.prototype.setDrawMode=function(){console.error(\"THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")},Object.defineProperties(ln.prototype,{drawMode:{get:function(){return console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.\"),0},set:function(){console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")}}}),fo.prototype.initBones=function(){console.error(\"THREE.SkinnedMesh: initBones() has been removed.\")},gn.prototype.setLens=function(t,e){console.warn(\"THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.\"),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(cs.prototype,{onlyShadow:{set:function(){console.warn(\"THREE.Light: .onlyShadow has been removed.\")}},shadowCameraFov:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFov is now .shadow.camera.fov.\"),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn(\"THREE.Light: .shadowCameraLeft is now .shadow.camera.left.\"),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn(\"THREE.Light: .shadowCameraRight is now .shadow.camera.right.\"),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn(\"THREE.Light: .shadowCameraTop is now .shadow.camera.top.\"),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn(\"THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.\"),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn(\"THREE.Light: .shadowCameraNear is now .shadow.camera.near.\"),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn(\"THREE.Light: .shadowCameraFar is now .shadow.camera.far.\"),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn(\"THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.\")}},shadowBias:{set:function(t){console.warn(\"THREE.Light: .shadowBias is now .shadow.bias.\"),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn(\"THREE.Light: .shadowDarkness has been removed.\")}},shadowMapWidth:{set:function(t){console.warn(\"THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.\"),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn(\"THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.\"),this.shadow.mapSize.height=t}}}),Object.defineProperties(Re.prototype,{length:{get:function(){return console.warn(\"THREE.BufferAttribute: .length has been deprecated. Use .count instead.\"),this.array.length}},dynamic:{get:function(){return console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.usage===z},set:function(){console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\"),this.setUsage(z)}}}),Re.prototype.setDynamic=function(t){return console.warn(\"THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?z:k),this},Re.prototype.copyIndicesArray=function(){console.error(\"THREE.BufferAttribute: .copyIndicesArray() has been removed.\")},Re.prototype.setArray=function(){console.error(\"THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},Ge.prototype.addIndex=function(t){console.warn(\"THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().\"),this.setIndex(t)},Ge.prototype.addAttribute=function(t,e){return console.warn(\"THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().\"),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?\"index\"===t?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),this.setIndex(e),this):this.setAttribute(t,e):(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),this.setAttribute(t,new Re(arguments[1],arguments[2])))},Ge.prototype.addDrawCall=function(t,e,n){void 0!==n&&console.warn(\"THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.\"),console.warn(\"THREE.BufferGeometry: .addDrawCall() is now .addGroup().\"),this.addGroup(t,e)},Ge.prototype.clearDrawCalls=function(){console.warn(\"THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().\"),this.clearGroups()},Ge.prototype.computeOffsets=function(){console.warn(\"THREE.BufferGeometry: .computeOffsets() has been removed.\")},Ge.prototype.removeAttribute=function(t){return console.warn(\"THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().\"),this.deleteAttribute(t)},Ge.prototype.applyMatrix=function(t){return console.warn(\"THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().\"),this.applyMatrix4(t)},Object.defineProperties(Ge.prototype,{drawcalls:{get:function(){return console.error(\"THREE.BufferGeometry: .drawcalls has been renamed to .groups.\"),this.groups}},offsets:{get:function(){return console.warn(\"THREE.BufferGeometry: .offsets has been renamed to .groups.\"),this.groups}}}),ji.prototype.setDynamic=function(t){return console.warn(\"THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.\"),this.setUsage(!0===t?z:k),this},ji.prototype.setArray=function(){console.error(\"THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")},Pa.prototype.getArrays=function(){console.error(\"THREE.ExtrudeGeometry: .getArrays() has been removed.\")},Pa.prototype.addShapeList=function(){console.error(\"THREE.ExtrudeGeometry: .addShapeList() has been removed.\")},Pa.prototype.addShape=function(){console.error(\"THREE.ExtrudeGeometry: .addShape() has been removed.\")},Gi.prototype.dispose=function(){console.error(\"THREE.Scene: .dispose() has been removed.\")},Object.defineProperties(_e.prototype,{wrapAround:{get:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")},set:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")}},overdraw:{get:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")},set:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")}},wrapRGB:{get:function(){return console.warn(\"THREE.Material: .wrapRGB has been removed.\"),new Ae}},shading:{get:function(){console.error(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\")},set:function(t){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask},set:function(t){console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\"),this.stencilFuncMask=t}}}),Object.defineProperties(fn.prototype,{derivatives:{get:function(){return console.warn(\"THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives},set:function(t){console.warn(\"THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\"),this.extensions.derivatives=t}}}),Vi.prototype.clearTarget=function(t,e,n,r){console.warn(\"THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.\"),this.setRenderTarget(t),this.clear(e,n,r)},Vi.prototype.animate=function(t){console.warn(\"THREE.WebGLRenderer: .animate() is now .setAnimationLoop().\"),this.setAnimationLoop(t)},Vi.prototype.getCurrentRenderTarget=function(){return console.warn(\"THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().\"),this.getRenderTarget()},Vi.prototype.getMaxAnisotropy=function(){return console.warn(\"THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().\"),this.capabilities.getMaxAnisotropy()},Vi.prototype.getPrecision=function(){return console.warn(\"THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.\"),this.capabilities.precision},Vi.prototype.resetGLState=function(){return console.warn(\"THREE.WebGLRenderer: .resetGLState() is now .state.reset().\"),this.state.reset()},Vi.prototype.supportsFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).\"),this.extensions.get(\"OES_texture_float\")},Vi.prototype.supportsHalfFloatTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).\"),this.extensions.get(\"OES_texture_half_float\")},Vi.prototype.supportsStandardDerivatives=function(){return console.warn(\"THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).\"),this.extensions.get(\"OES_standard_derivatives\")},Vi.prototype.supportsCompressedTextureS3TC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_s3tc\")},Vi.prototype.supportsCompressedTexturePVRTC=function(){return console.warn(\"THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).\"),this.extensions.get(\"WEBGL_compressed_texture_pvrtc\")},Vi.prototype.supportsBlendMinMax=function(){return console.warn(\"THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).\"),this.extensions.get(\"EXT_blend_minmax\")},Vi.prototype.supportsVertexTextures=function(){return console.warn(\"THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.\"),this.capabilities.vertexTextures},Vi.prototype.supportsInstancedArrays=function(){return console.warn(\"THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).\"),this.extensions.get(\"ANGLE_instanced_arrays\")},Vi.prototype.enableScissorTest=function(t){console.warn(\"THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().\"),this.setScissorTest(t)},Vi.prototype.initMaterial=function(){console.warn(\"THREE.WebGLRenderer: .initMaterial() has been removed.\")},Vi.prototype.addPrePlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPrePlugin() has been removed.\")},Vi.prototype.addPostPlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPostPlugin() has been removed.\")},Vi.prototype.updateShadowMap=function(){console.warn(\"THREE.WebGLRenderer: .updateShadowMap() has been removed.\")},Vi.prototype.setFaceCulling=function(){console.warn(\"THREE.WebGLRenderer: .setFaceCulling() has been removed.\")},Vi.prototype.allocTextureUnit=function(){console.warn(\"THREE.WebGLRenderer: .allocTextureUnit() has been removed.\")},Vi.prototype.setTexture=function(){console.warn(\"THREE.WebGLRenderer: .setTexture() has been removed.\")},Vi.prototype.setTexture2D=function(){console.warn(\"THREE.WebGLRenderer: .setTexture2D() has been removed.\")},Vi.prototype.setTextureCube=function(){console.warn(\"THREE.WebGLRenderer: .setTextureCube() has been removed.\")},Vi.prototype.getActiveMipMapLevel=function(){return console.warn(\"THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().\"),this.getActiveMipmapLevel()},Object.defineProperties(Vi.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.\"),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn(\"THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.\"),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")}},context:{get:function(){return console.warn(\"THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.\"),this.getContext()}},vr:{get:function(){return console.warn(\"THREE.WebGLRenderer: .vr has been renamed to .xr\"),this.xr}},gammaInput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\"),!1},set:function(){console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\")}},gammaOutput:{get:function(){return console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),!1},set:function(t){console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\"),this.outputEncoding=!0===t?3001:N}},toneMappingWhitePoint:{get:function(){return console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\"),1},set:function(){console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\")}}}),Object.defineProperties(Di.prototype,{cullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")}},renderReverseSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")}},renderSingleSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")}}}),Object.defineProperties(nt.prototype,{wrapS:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\"),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\"),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\"),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\"),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\"),this.texture.anisotropy=t}},offset:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\"),this.texture.offset=t}},repeat:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\"),this.texture.repeat=t}},format:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\"),this.texture.format=t}},type:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\"),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps},set:function(t){console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\"),this.texture.generateMipmaps=t}}}),class extends se{constructor(t){super(),this.type=\"Audio\",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=\"empty\",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"audioNode\",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaNode\",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=\"mediaStreamNode\",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=\"buffer\",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn(\"THREE.Audio: Audio is already playing.\");if(!1===this.hasPlaybackControl)return void console.warn(\"THREE.Audio: this Audio has no playback control.\");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn(\"THREE.Audio: this Audio has no playback control.\"),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}.prototype.load=function(t){console.warn(\"THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.\");const e=this;return(new As).load(t,(function(t){e.setBuffer(t)})),this},yn.prototype.updateCubeMap=function(t,e){return console.warn(\"THREE.CubeCamera: .updateCubeMap() is now .update().\"),this.update(t,e)},yn.prototype.clear=function(t,e,n,r){return console.warn(\"THREE.CubeCamera: .clear() is now .renderTarget.clear().\"),this.renderTarget.clear(t,e,n,r)},$.crossOrigin=void 0,$.loadTexture=function(t,e,n,r){console.warn(\"THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.\");const i=new os;i.setCrossOrigin(this.crossOrigin);const o=i.load(t,n,void 0,r);return e&&(o.mapping=e),o},$.loadTextureCube=function(t,e,n,r){console.warn(\"THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.\");const i=new is;i.setCrossOrigin(this.crossOrigin);const o=i.load(t,n,void 0,r);return e&&(o.mapping=e),o},$.loadCompressedTexture=function(){console.error(\"THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.\")},$.loadCompressedTextureCube=function(){console.error(\"THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.\")},\"undefined\"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:\"130\"}})),\"undefined\"!=typeof window&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=\"130\");const Ks=new Sn,tl=new Gs,el=new Y,nl=new ot,rl=new ot,il=new ot,ol=new kt;class al extends F{constructor(t,e,n){super(),n.style.touchAction=\"none\";let r=null,i=null;const o=[],a=this;function s(){n.addEventListener(\"pointermove\",c),n.addEventListener(\"pointerdown\",h),n.addEventListener(\"pointerup\",u),n.addEventListener(\"pointerleave\",u)}function l(){n.removeEventListener(\"pointermove\",c),n.removeEventListener(\"pointerdown\",h),n.removeEventListener(\"pointerup\",u),n.removeEventListener(\"pointerleave\",u),n.style.cursor=\"\"}function c(s){if(!1!==a.enabled){if(d(s),tl.setFromCamera(el,e),r)return tl.ray.intersectPlane(Ks,rl)&&r.position.copy(rl.sub(nl).applyMatrix4(ol)),void a.dispatchEvent({type:\"drag\",object:r});if(\"mouse\"===s.pointerType||\"pen\"===s.pointerType)if(o.length=0,tl.setFromCamera(el,e),tl.intersectObjects(t,!0,o),o.length>0){const t=o[0].object;Ks.setFromNormalAndCoplanarPoint(e.getWorldDirection(Ks.normal),il.setFromMatrixPosition(t.matrixWorld)),i!==t&&null!==i&&(a.dispatchEvent({type:\"hoveroff\",object:i}),n.style.cursor=\"auto\",i=null),i!==t&&(a.dispatchEvent({type:\"hoveron\",object:t}),n.style.cursor=\"pointer\",i=t)}else null!==i&&(a.dispatchEvent({type:\"hoveroff\",object:i}),n.style.cursor=\"auto\",i=null)}}function h(i){!1!==a.enabled&&(d(i),o.length=0,tl.setFromCamera(el,e),tl.intersectObjects(t,!0,o),o.length>0&&(r=!0===a.transformGroup?t[0]:o[0].object,Ks.setFromNormalAndCoplanarPoint(e.getWorldDirection(Ks.normal),il.setFromMatrixPosition(r.matrixWorld)),tl.ray.intersectPlane(Ks,rl)&&(ol.copy(r.parent.matrixWorld).invert(),nl.copy(rl).sub(il.setFromMatrixPosition(r.matrixWorld))),n.style.cursor=\"move\",a.dispatchEvent({type:\"dragstart\",object:r})))}function u(){!1!==a.enabled&&(r&&(a.dispatchEvent({type:\"dragend\",object:r}),r=null),n.style.cursor=i?\"pointer\":\"auto\")}function d(t){const e=n.getBoundingClientRect();el.x=(t.clientX-e.left)/e.width*2-1,el.y=-(t.clientY-e.top)/e.height*2+1}s(),this.enabled=!0,this.transformGroup=!1,this.activate=s,this.deactivate=l,this.dispose=function(){l()},this.getObjects=function(){return t}}}function sl(t,e,n){var r,i=1;function o(){var o,a,s=r.length,l=0,c=0,h=0;for(o=0;o<s;++o)l+=(a=r[o]).x||0,c+=a.y||0,h+=a.z||0;for(l=(l/s-t)*i,c=(c/s-e)*i,h=(h/s-n)*i,o=0;o<s;++o)a=r[o],l&&(a.x-=l),c&&(a.y-=c),h&&(a.z-=h)}return null==t&&(t=0),null==e&&(e=0),null==n&&(n=0),o.initialize=function(t){r=t},o.x=function(e){return arguments.length?(t=+e,o):t},o.y=function(t){return arguments.length?(e=+t,o):e},o.z=function(t){return arguments.length?(n=+t,o):n},o.strength=function(t){return arguments.length?(i=+t,o):i},o}function ll(t,e,n){if(isNaN(e))return t;var r,i,o,a,s,l,c=t._root,h={data:n},u=t._x0,d=t._x1;if(!c)return t._root=h,t;for(;c.length;)if((a=e>=(i=(u+d)/2))?u=i:d=i,r=c,!(c=c[s=+a]))return r[s]=h,t;if(e===(o=+t._x.call(null,c.data)))return h.next=c,r?r[s]=h:t._root=h,t;do{r=r?r[s]=new Array(2):t._root=new Array(2),(a=e>=(i=(u+d)/2))?u=i:d=i}while((s=+a)==(l=+(o>=i)));return r[l]=c,r[s]=h,t}function cl(t,e,n){this.node=t,this.x0=e,this.x1=n}function hl(t){return t[0]}function ul(t,e){var n=new dl(null==e?hl:e,NaN,NaN);return null==t?n:n.addAll(t)}function dl(t,e,n){this._x=t,this._x0=e,this._x1=n,this._root=void 0}function pl(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var fl=ul.prototype=dl.prototype;function ml(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o,a,s,l,c,h,u,d,p=t._root,f={data:r},m=t._x0,g=t._y0,v=t._x1,y=t._y1;if(!p)return t._root=f,t;for(;p.length;)if((c=e>=(o=(m+v)/2))?m=o:v=o,(h=n>=(a=(g+y)/2))?g=a:y=a,i=p,!(p=p[u=h<<1|c]))return i[u]=f,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&n===l)return f.next=p,i?i[u]=f:t._root=f,t;do{i=i?i[u]=new Array(4):t._root=new Array(4),(c=e>=(o=(m+v)/2))?m=o:v=o,(h=n>=(a=(g+y)/2))?g=a:y=a}while((u=h<<1|c)==(d=(l>=a)<<1|s>=o));return i[d]=p,i[u]=f,t}function gl(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function vl(t){return t[0]}function yl(t){return t[1]}function xl(t,e,n){var r=new _l(null==e?vl:e,null==n?yl:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function _l(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function bl(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}fl.copy=function(){var t,e,n=new dl(this._x,this._x0,this._x1),r=this._root;if(!r)return n;if(!r.length)return n._root=pl(r),n;for(t=[{source:r,target:n._root=new Array(2)}];r=t.pop();)for(var i=0;i<2;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(2)}):r.target[i]=pl(e));return n},fl.add=function(t){var e=+this._x.call(null,t);return ll(this.cover(e),e,t)},fl.addAll=function(t){var e,n,r=t.length,i=new Array(r),o=1/0,a=-1/0;for(e=0;e<r;++e)isNaN(n=+this._x.call(null,t[e]))||(i[e]=n,n<o&&(o=n),n>a&&(a=n));if(o>a)return this;for(this.cover(o).cover(a),e=0;e<r;++e)ll(this,i[e],t[e]);return this},fl.cover=function(t){if(isNaN(t=+t))return this;var e=this._x0,n=this._x1;if(isNaN(e))n=(e=Math.floor(t))+1;else{for(var r,i,o=n-e||1,a=this._root;e>t||t>=n;)switch(i=+(t<e),(r=new Array(2))[i]=a,a=r,o*=2,i){case 0:n=e+o;break;case 1:e=n-o}this._root&&this._root.length&&(this._root=a)}return this._x0=e,this._x1=n,this},fl.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},fl.extent=function(t){return arguments.length?this.cover(+t[0][0]).cover(+t[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]},fl.find=function(t,e){var n,r,i,o,a,s=this._x0,l=this._x1,c=[],h=this._root;for(h&&c.push(new cl(h,s,l)),null==e?e=1/0:(s=t-e,l=t+e);o=c.pop();)if(!(!(h=o.node)||(r=o.x0)>l||(i=o.x1)<s))if(h.length){var u=(r+i)/2;c.push(new cl(h[1],u,i),new cl(h[0],r,u)),(a=+(t>=u))&&(o=c[c.length-1],c[c.length-1]=c[c.length-1-a],c[c.length-1-a]=o)}else{var d=Math.abs(t-+this._x.call(null,h.data));d<e&&(e=d,s=t-d,l=t+d,n=h.data)}return n},fl.remove=function(t){if(isNaN(o=+this._x.call(null,t)))return this;var e,n,r,i,o,a,s,l,c,h=this._root,u=this._x0,d=this._x1;if(!h)return this;if(h.length)for(;;){if((s=o>=(a=(u+d)/2))?u=a:d=a,e=h,!(h=h[l=+s]))return this;if(!h.length)break;e[l+1&1]&&(n=e,c=l)}for(;h.data!==t;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):e?(i?e[l]=i:delete e[l],(h=e[0]||e[1])&&h===(e[1]||e[0])&&!h.length&&(n?n[c]=h:this._root=h),this):(this._root=i,this)},fl.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},fl.root=function(){return this._root},fl.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},fl.visit=function(t){var e,n,r,i,o=[],a=this._root;for(a&&o.push(new cl(a,this._x0,this._x1));e=o.pop();)if(!t(a=e.node,r=e.x0,i=e.x1)&&a.length){var s=(r+i)/2;(n=a[1])&&o.push(new cl(n,s,i)),(n=a[0])&&o.push(new cl(n,r,s))}return this},fl.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new cl(this._root,this._x0,this._x1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.x1,l=(a+s)/2;(o=i[0])&&n.push(new cl(o,a,l)),(o=i[1])&&n.push(new cl(o,l,s))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.x1);return this},fl.x=function(t){return arguments.length?(this._x=t,this):this._x};var wl=xl.prototype=_l.prototype;function Ml(t,e,n,r,i){if(isNaN(e)||isNaN(n)||isNaN(r))return t;var o,a,s,l,c,h,u,d,p,f,m,g,v=t._root,y={data:i},x=t._x0,_=t._y0,b=t._z0,w=t._x1,M=t._y1,S=t._z1;if(!v)return t._root=y,t;for(;v.length;)if((d=e>=(a=(x+w)/2))?x=a:w=a,(p=n>=(s=(_+M)/2))?_=s:M=s,(f=r>=(l=(b+S)/2))?b=l:S=l,o=v,!(v=v[m=f<<2|p<<1|d]))return o[m]=y,t;if(c=+t._x.call(null,v.data),h=+t._y.call(null,v.data),u=+t._z.call(null,v.data),e===c&&n===h&&r===u)return y.next=v,o?o[m]=y:t._root=y,t;do{o=o?o[m]=new Array(8):t._root=new Array(8),(d=e>=(a=(x+w)/2))?x=a:w=a,(p=n>=(s=(_+M)/2))?_=s:M=s,(f=r>=(l=(b+S)/2))?b=l:S=l}while((m=f<<2|p<<1|d)==(g=(u>=l)<<2|(h>=s)<<1|c>=a));return o[g]=v,o[m]=y,t}function Sl(t,e,n,r,i,o,a){this.node=t,this.x0=e,this.y0=n,this.z0=r,this.x1=i,this.y1=o,this.z1=a}function El(t){return t[0]}function Tl(t){return t[1]}function Al(t){return t[2]}function Ll(t,e,n,r){var i=new Cl(null==e?El:e,null==n?Tl:n,null==r?Al:r,NaN,NaN,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function Cl(t,e,n,r,i,o,a,s,l){this._x=t,this._y=e,this._z=n,this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=l,this._root=void 0}function Pl(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}wl.copy=function(){var t,e,n=new _l(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=bl(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=bl(e));return n},wl.add=function(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return ml(this.cover(e,n),e,n,t)},wl.addAll=function(t){var e,n,r,i,o=t.length,a=new Array(o),s=new Array(o),l=1/0,c=1/0,h=-1/0,u=-1/0;for(n=0;n<o;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||(a[n]=r,s[n]=i,r<l&&(l=r),r>h&&(h=r),i<c&&(c=i),i>u&&(u=i));if(l>h||c>u)return this;for(this.cover(l,c).cover(h,u),n=0;n<o;++n)ml(this,a[n],s[n],t[n]);return this},wl.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a,s,l=i-n||1,c=this._root;n>t||t>=i||r>e||e>=o;)switch(s=(e<r)<<1|t<n,(a=new Array(4))[s]=c,c=a,l*=2,s){case 0:i=n+l,o=r+l;break;case 1:n=i-l,o=r+l;break;case 2:i=n+l,r=o-l;break;case 3:n=i-l,r=o-l}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this},wl.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},wl.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},wl.find=function(t,e,n){var r,i,o,a,s,l,c,h=this._x0,u=this._y0,d=this._x1,p=this._y1,f=[],m=this._root;for(m&&f.push(new gl(m,h,u,d,p)),null==n?n=1/0:(h=t-n,u=e-n,d=t+n,p=e+n,n*=n);l=f.pop();)if(!(!(m=l.node)||(i=l.x0)>d||(o=l.y0)>p||(a=l.x1)<h||(s=l.y1)<u))if(m.length){var g=(i+a)/2,v=(o+s)/2;f.push(new gl(m[3],g,v,a,s),new gl(m[2],i,v,g,s),new gl(m[1],g,o,a,v),new gl(m[0],i,o,g,v)),(c=(e>=v)<<1|t>=g)&&(l=f[f.length-1],f[f.length-1]=f[f.length-1-c],f[f.length-1-c]=l)}else{var y=t-+this._x.call(null,m.data),x=e-+this._y.call(null,m.data),_=y*y+x*x;if(_<n){var b=Math.sqrt(n=_);h=t-b,u=e-b,d=t+b,p=e+b,r=m.data}}return r},wl.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,r,i,o,a,s,l,c,h,u,d,p=this._root,f=this._x0,m=this._y0,g=this._x1,v=this._y1;if(!p)return this;if(p.length)for(;;){if((c=o>=(s=(f+g)/2))?f=s:g=s,(h=a>=(l=(m+v)/2))?m=l:v=l,e=p,!(p=p[u=h<<1|c]))return this;if(!p.length)break;(e[u+1&3]||e[u+2&3]||e[u+3&3])&&(n=e,d=u)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):e?(i?e[u]=i:delete e[u],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=i,this)},wl.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},wl.root=function(){return this._root},wl.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},wl.visit=function(t){var e,n,r,i,o,a,s=[],l=this._root;for(l&&s.push(new gl(l,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(l=e.node,r=e.x0,i=e.y0,o=e.x1,a=e.y1)&&l.length){var c=(r+o)/2,h=(i+a)/2;(n=l[3])&&s.push(new gl(n,c,h,o,a)),(n=l[2])&&s.push(new gl(n,r,h,c,a)),(n=l[1])&&s.push(new gl(n,c,i,o,h)),(n=l[0])&&s.push(new gl(n,r,i,c,h))}return this},wl.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new gl(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.y0,l=e.x1,c=e.y1,h=(a+l)/2,u=(s+c)/2;(o=i[0])&&n.push(new gl(o,a,s,h,u)),(o=i[1])&&n.push(new gl(o,h,s,l,u)),(o=i[2])&&n.push(new gl(o,a,u,h,c)),(o=i[3])&&n.push(new gl(o,h,u,l,c))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},wl.x=function(t){return arguments.length?(this._x=t,this):this._x},wl.y=function(t){return arguments.length?(this._y=t,this):this._y};var Rl=Ll.prototype=Cl.prototype;function Dl(t){return function(){return t}}function Il(t){return 1e-6*(t()-.5)}function Nl(t){return t.index}function Ol(t,e){var n=t.get(e);if(!n)throw new Error(\"node not found: \"+e);return n}function kl(t){var e,n,r,i,o,a,s,l=Nl,c=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},h=Dl(30),u=1;function d(r){for(var o=0,l=t.length;o<u;++o)for(var c,h,d,p,f,m=0,g=0,v=0,y=0;m<l;++m)h=(c=t[m]).source,g=(d=c.target).x+d.vx-h.x-h.vx||Il(s),i>1&&(v=d.y+d.vy-h.y-h.vy||Il(s)),i>2&&(y=d.z+d.vz-h.z-h.vz||Il(s)),g*=p=((p=Math.sqrt(g*g+v*v+y*y))-n[m])/p*r*e[m],v*=p,y*=p,d.vx-=g*(f=a[m]),i>1&&(d.vy-=v*f),i>2&&(d.vz-=y*f),h.vx+=g*(f=1-f),i>1&&(h.vy+=v*f),i>2&&(h.vz+=y*f)}function p(){if(r){var i,s,c=r.length,h=t.length,u=new Map(r.map(((t,e)=>[l(t,e,r),t])));for(i=0,o=new Array(c);i<h;++i)(s=t[i]).index=i,\"object\"!=typeof s.source&&(s.source=Ol(u,s.source)),\"object\"!=typeof s.target&&(s.target=Ol(u,s.target)),o[s.source.index]=(o[s.source.index]||0)+1,o[s.target.index]=(o[s.target.index]||0)+1;for(i=0,a=new Array(h);i<h;++i)s=t[i],a[i]=o[s.source.index]/(o[s.source.index]+o[s.target.index]);e=new Array(h),f(),n=new Array(h),m()}}function f(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+c(t[n],n,t)}function m(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+h(t[e],e,t)}return null==t&&(t=[]),d.initialize=function(t,...e){r=t,s=e.find((t=>\"function\"==typeof t))||Math.random,i=e.find((t=>[1,2,3].includes(t)))||2,p()},d.links=function(e){return arguments.length?(t=e,p(),d):t},d.id=function(t){return arguments.length?(l=t,d):l},d.iterations=function(t){return arguments.length?(u=+t,d):u},d.strength=function(t){return arguments.length?(c=\"function\"==typeof t?t:Dl(+t),f(),d):c},d.distance=function(t){return arguments.length?(h=\"function\"==typeof t?t:Dl(+t),m(),d):h},d}Rl.copy=function(){var t,e,n=new Cl(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),r=this._root;if(!r)return n;if(!r.length)return n._root=Pl(r),n;for(t=[{source:r,target:n._root=new Array(8)}];r=t.pop();)for(var i=0;i<8;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(8)}):r.target[i]=Pl(e));return n},Rl.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t),r=+this._z.call(null,t);return Ml(this.cover(e,n,r),e,n,r,t)},Rl.addAll=function(t){var e,n,r,i,o,a=t.length,s=new Array(a),l=new Array(a),c=new Array(a),h=1/0,u=1/0,d=1/0,p=-1/0,f=-1/0,m=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||isNaN(o=+this._z.call(null,e))||(s[n]=r,l[n]=i,c[n]=o,r<h&&(h=r),r>p&&(p=r),i<u&&(u=i),i>f&&(f=i),o<d&&(d=o),o>m&&(m=o));if(h>p||u>f||d>m)return this;for(this.cover(h,u,d).cover(p,f,m),n=0;n<a;++n)Ml(this,s[n],l[n],c[n],t[n]);return this},Rl.cover=function(t,e,n){if(isNaN(t=+t)||isNaN(e=+e)||isNaN(n=+n))return this;var r=this._x0,i=this._y0,o=this._z0,a=this._x1,s=this._y1,l=this._z1;if(isNaN(r))a=(r=Math.floor(t))+1,s=(i=Math.floor(e))+1,l=(o=Math.floor(n))+1;else{for(var c,h,u=a-r||1,d=this._root;r>t||t>=a||i>e||e>=s||o>n||n>=l;)switch(h=(n<o)<<2|(e<i)<<1|t<r,(c=new Array(8))[h]=d,d=c,u*=2,h){case 0:a=r+u,s=i+u,l=o+u;break;case 1:r=a-u,s=i+u,l=o+u;break;case 2:a=r+u,i=s-u,l=o+u;break;case 3:r=a-u,i=s-u,l=o+u;break;case 4:a=r+u,s=i+u,o=l-u;break;case 5:r=a-u,s=i+u,o=l-u;break;case 6:a=r+u,i=s-u,o=l-u;break;case 7:r=a-u,i=s-u,o=l-u}this._root&&this._root.length&&(this._root=d)}return this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=s,this._z1=l,this},Rl.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},Rl.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1],+t[0][2]).cover(+t[1][0],+t[1][1],+t[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]},Rl.find=function(t,e,n,r){var i,o,a,s,l,c,h,u,d,p=this._x0,f=this._y0,m=this._z0,g=this._x1,v=this._y1,y=this._z1,x=[],_=this._root;for(_&&x.push(new Sl(_,p,f,m,g,v,y)),null==r?r=1/0:(p=t-r,f=e-r,m=n-r,g=t+r,v=e+r,y=n+r,r*=r);u=x.pop();)if(!(!(_=u.node)||(o=u.x0)>g||(a=u.y0)>v||(s=u.z0)>y||(l=u.x1)<p||(c=u.y1)<f||(h=u.z1)<m))if(_.length){var b=(o+l)/2,w=(a+c)/2,M=(s+h)/2;x.push(new Sl(_[7],b,w,M,l,c,h),new Sl(_[6],o,w,M,b,c,h),new Sl(_[5],b,a,M,l,w,h),new Sl(_[4],o,a,M,b,w,h),new Sl(_[3],b,w,s,l,c,M),new Sl(_[2],o,w,s,b,c,M),new Sl(_[1],b,a,s,l,w,M),new Sl(_[0],o,a,s,b,w,M)),(d=(n>=M)<<2|(e>=w)<<1|t>=b)&&(u=x[x.length-1],x[x.length-1]=x[x.length-1-d],x[x.length-1-d]=u)}else{var S=t-+this._x.call(null,_.data),E=e-+this._y.call(null,_.data),T=n-+this._z.call(null,_.data),A=S*S+E*E+T*T;if(A<r){var L=Math.sqrt(r=A);p=t-L,f=e-L,m=n-L,g=t+L,v=e+L,y=n+L,i=_.data}}return i},Rl.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t))||isNaN(s=+this._z.call(null,t)))return this;var e,n,r,i,o,a,s,l,c,h,u,d,p,f,m,g=this._root,v=this._x0,y=this._y0,x=this._z0,_=this._x1,b=this._y1,w=this._z1;if(!g)return this;if(g.length)for(;;){if((u=o>=(l=(v+_)/2))?v=l:_=l,(d=a>=(c=(y+b)/2))?y=c:b=c,(p=s>=(h=(x+w)/2))?x=h:w=h,e=g,!(g=g[f=p<<2|d<<1|u]))return this;if(!g.length)break;(e[f+1&7]||e[f+2&7]||e[f+3&7]||e[f+4&7]||e[f+5&7]||e[f+6&7]||e[f+7&7])&&(n=e,m=f)}for(;g.data!==t;)if(r=g,!(g=g.next))return this;return(i=g.next)&&delete g.next,r?(i?r.next=i:delete r.next,this):e?(i?e[f]=i:delete e[f],(g=e[0]||e[1]||e[2]||e[3]||e[4]||e[5]||e[6]||e[7])&&g===(e[7]||e[6]||e[5]||e[4]||e[3]||e[2]||e[1]||e[0])&&!g.length&&(n?n[m]=g:this._root=g),this):(this._root=i,this)},Rl.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},Rl.root=function(){return this._root},Rl.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},Rl.visit=function(t){var e,n,r,i,o,a,s,l,c=[],h=this._root;for(h&&c.push(new Sl(h,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=c.pop();)if(!t(h=e.node,r=e.x0,i=e.y0,o=e.z0,a=e.x1,s=e.y1,l=e.z1)&&h.length){var u=(r+a)/2,d=(i+s)/2,p=(o+l)/2;(n=h[7])&&c.push(new Sl(n,u,d,p,a,s,l)),(n=h[6])&&c.push(new Sl(n,r,d,p,u,s,l)),(n=h[5])&&c.push(new Sl(n,u,i,p,a,d,l)),(n=h[4])&&c.push(new Sl(n,r,i,p,u,d,l)),(n=h[3])&&c.push(new Sl(n,u,d,o,a,s,p)),(n=h[2])&&c.push(new Sl(n,r,d,o,u,s,p)),(n=h[1])&&c.push(new Sl(n,u,i,o,a,d,p)),(n=h[0])&&c.push(new Sl(n,r,i,o,u,d,p))}return this},Rl.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new Sl(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,s=e.y0,l=e.z0,c=e.x1,h=e.y1,u=e.z1,d=(a+c)/2,p=(s+h)/2,f=(l+u)/2;(o=i[0])&&n.push(new Sl(o,a,s,l,d,p,f)),(o=i[1])&&n.push(new Sl(o,d,s,l,c,p,f)),(o=i[2])&&n.push(new Sl(o,a,p,l,d,h,f)),(o=i[3])&&n.push(new Sl(o,d,p,l,c,h,f)),(o=i[4])&&n.push(new Sl(o,a,s,f,d,p,u)),(o=i[5])&&n.push(new Sl(o,d,s,f,c,p,u)),(o=i[6])&&n.push(new Sl(o,a,p,f,d,h,u)),(o=i[7])&&n.push(new Sl(o,d,p,f,c,h,u))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.z0,e.x1,e.y1,e.z1);return this},Rl.x=function(t){return arguments.length?(this._x=t,this):this._x},Rl.y=function(t){return arguments.length?(this._y=t,this):this._y},Rl.z=function(t){return arguments.length?(this._z=t,this):this._z};var zl={value:()=>{}};function Bl(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+\"\")||t in r||/[\\s.]/.test(t))throw new Error(\"illegal type: \"+t);r[t]=[]}return new Fl(r)}function Fl(t){this._=t}function Ul(t,e){return t.trim().split(/^|\\s+/).map((function(t){var n=\"\",r=t.indexOf(\".\");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);return{type:t,name:n}}))}function Hl(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function Vl(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=zl,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}Fl.prototype=Bl.prototype={constructor:Fl,on:function(t,e){var n,r=this._,i=Ul(t+\"\",r),o=-1,a=i.length;if(!(arguments.length<2)){if(null!=e&&\"function\"!=typeof e)throw new Error(\"invalid callback: \"+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=Vl(r[n],t.name,e);else if(null==e)for(n in r)r[n]=Vl(r[n],t.name,null);return this}for(;++o<a;)if((n=(t=i[o]).type)&&(n=Hl(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Fl(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(o=0,n=(r=this._[t]).length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var Gl,jl,Wl=0,ql=0,Xl=0,Yl=0,Zl=0,Jl=0,$l=\"object\"==typeof performance&&performance.now?performance:Date,Ql=\"object\"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Kl(){return Zl||(Ql(tc),Zl=$l.now()+Jl)}function tc(){Zl=0}function ec(){this._call=this._time=this._next=null}function nc(t,e,n){var r=new ec;return r.restart(t,e,n),r}function rc(){Zl=(Yl=$l.now())+Jl,Wl=ql=0;try{!function(){Kl(),++Wl;for(var t,e=Gl;e;)(t=Zl-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Wl}()}finally{Wl=0,function(){var t,e,n=Gl,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Gl=e);jl=t,oc(r)}(),Zl=0}}function ic(){var t=$l.now(),e=t-Yl;e>1e3&&(Jl-=e,Yl=t)}function oc(t){Wl||(ql&&(ql=clearTimeout(ql)),t-Zl>24?(t<1/0&&(ql=setTimeout(rc,t-$l.now()-Jl)),Xl&&(Xl=clearInterval(Xl))):(Xl||(Yl=$l.now(),Xl=setInterval(ic,1e3)),Wl=1,Ql(rc)))}ec.prototype=nc.prototype={constructor:ec,restart:function(t,e,n){if(\"function\"!=typeof t)throw new TypeError(\"callback is not a function\");n=(null==n?Kl():+n)+(null==e?0:+e),this._next||jl===this||(jl?jl._next=this:Gl=this,jl=this),this._call=t,this._time=n,oc()},stop:function(){this._call&&(this._call=null,this._time=1/0,oc())}};const ac=4294967296;function sc(t){return t.x}function lc(t){return t.y}function cc(t){return t.z}var hc=Math.PI*(3-Math.sqrt(5)),uc=20*Math.PI/(9+Math.sqrt(221));function dc(t,e){e=e||2;var n,r=Math.min(3,Math.max(1,Math.round(e))),i=1,o=.001,a=1-Math.pow(o,1/300),s=0,l=.6,c=new Map,h=nc(p),u=Bl(\"tick\",\"end\"),d=function(){let t=1;return()=>(t=(1664525*t+1013904223)%ac)/ac}();function p(){f(),u.call(\"tick\",n),i<o&&(h.stop(),u.call(\"end\",n))}function f(e){var o,h,u=t.length;void 0===e&&(e=1);for(var d=0;d<e;++d)for(i+=(s-i)*a,c.forEach((function(t){t(i)})),o=0;o<u;++o)null==(h=t[o]).fx?h.x+=h.vx*=l:(h.x=h.fx,h.vx=0),r>1&&(null==h.fy?h.y+=h.vy*=l:(h.y=h.fy,h.vy=0)),r>2&&(null==h.fz?h.z+=h.vz*=l:(h.z=h.fz,h.vz=0));return n}function m(){for(var e,n=0,i=t.length;n<i;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),null!=e.fz&&(e.z=e.fz),isNaN(e.x)||r>1&&isNaN(e.y)||r>2&&isNaN(e.z)){var o=10*(r>2?Math.cbrt(.5+n):r>1?Math.sqrt(.5+n):n),a=n*hc,s=n*uc;1===r?e.x=o:2===r?(e.x=o*Math.cos(a),e.y=o*Math.sin(a)):(e.x=o*Math.sin(a)*Math.cos(s),e.y=o*Math.cos(a),e.z=o*Math.sin(a)*Math.sin(s))}(isNaN(e.vx)||r>1&&isNaN(e.vy)||r>2&&isNaN(e.vz))&&(e.vx=0,r>1&&(e.vy=0),r>2&&(e.vz=0))}}function g(e){return e.initialize&&e.initialize(t,d,r),e}return null==t&&(t=[]),m(),n={tick:f,restart:function(){return h.restart(p),n},stop:function(){return h.stop(),n},numDimensions:function(t){return arguments.length?(r=Math.min(3,Math.max(1,Math.round(t))),c.forEach(g),n):r},nodes:function(e){return arguments.length?(t=e,m(),c.forEach(g),n):t},alpha:function(t){return arguments.length?(i=+t,n):i},alphaMin:function(t){return arguments.length?(o=+t,n):o},alphaDecay:function(t){return arguments.length?(a=+t,n):+a},alphaTarget:function(t){return arguments.length?(s=+t,n):s},velocityDecay:function(t){return arguments.length?(l=1-t,n):1-l},randomSource:function(t){return arguments.length?(d=t,c.forEach(g),n):d},force:function(t,e){return arguments.length>1?(null==e?c.delete(t):c.set(t,g(e)),n):c.get(t)},find:function(){var e,n,i,o,a,s,l=Array.prototype.slice.call(arguments),c=l.shift()||0,h=(r>1?l.shift():null)||0,u=(r>2?l.shift():null)||0,d=l.shift()||1/0,p=0,f=t.length;for(d*=d,p=0;p<f;++p)(o=(e=c-(a=t[p]).x)*e+(n=h-(a.y||0))*n+(i=u-(a.z||0))*i)<d&&(s=a,d=o);return s},on:function(t,e){return arguments.length>1?(u.on(t,e),n):u.on(t)}}}function pc(){var t,e,n,r,i,o,a=Dl(-30),s=1,l=1/0,c=.81;function h(r){var o,a=t.length,s=(1===e?ul(t,sc):2===e?xl(t,sc,lc):3===e?Ll(t,sc,lc,cc):null).visitAfter(d);for(i=r,o=0;o<a;++o)n=t[o],s.visit(p)}function u(){if(t){var e,n,r=t.length;for(o=new Array(r),e=0;e<r;++e)n=t[e],o[n.index]=+a(n,e,t)}}function d(t){var n,r,i,a,s,l,c=0,h=0,u=t.length;if(u){for(i=a=s=l=0;l<u;++l)(n=t[l])&&(r=Math.abs(n.value))&&(c+=n.value,h+=r,i+=r*(n.x||0),a+=r*(n.y||0),s+=r*(n.z||0));c*=Math.sqrt(4/u),t.x=i/h,e>1&&(t.y=a/h),e>2&&(t.z=s/h)}else{(n=t).x=n.data.x,e>1&&(n.y=n.data.y),e>2&&(n.z=n.data.z);do{c+=o[n.data.index]}while(n=n.next)}t.value=c}function p(t,a,h,u,d){if(!t.value)return!0;var p=[h,u,d][e-1],f=t.x-n.x,m=e>1?t.y-n.y:0,g=e>2?t.z-n.z:0,v=p-a,y=f*f+m*m+g*g;if(v*v/c<y)return y<l&&(0===f&&(y+=(f=Il(r))*f),e>1&&0===m&&(y+=(m=Il(r))*m),e>2&&0===g&&(y+=(g=Il(r))*g),y<s&&(y=Math.sqrt(s*y)),n.vx+=f*t.value*i/y,e>1&&(n.vy+=m*t.value*i/y),e>2&&(n.vz+=g*t.value*i/y)),!0;if(!(t.length||y>=l)){(t.data!==n||t.next)&&(0===f&&(y+=(f=Il(r))*f),e>1&&0===m&&(y+=(m=Il(r))*m),e>2&&0===g&&(y+=(g=Il(r))*g),y<s&&(y=Math.sqrt(s*y)));do{t.data!==n&&(v=o[t.data.index]*i/y,n.vx+=f*v,e>1&&(n.vy+=m*v),e>2&&(n.vz+=g*v))}while(t=t.next)}}return h.initialize=function(n,...i){t=n,r=i.find((t=>\"function\"==typeof t))||Math.random,e=i.find((t=>[1,2,3].includes(t)))||2,u()},h.strength=function(t){return arguments.length?(a=\"function\"==typeof t?t:Dl(+t),u(),h):a},h.distanceMin=function(t){return arguments.length?(s=t*t,h):Math.sqrt(s)},h.distanceMax=function(t){return arguments.length?(l=t*t,h):Math.sqrt(l)},h.theta=function(t){return arguments.length?(c=t*t,h):Math.sqrt(c)},h}var fc=function(t){!function(t){if(!t)throw new Error(\"Eventify cannot use falsy object as events subject\");for(var e=[\"on\",\"fire\",\"off\"],n=0;n<e.length;++n)if(t.hasOwnProperty(e[n]))throw new Error(\"Subject cannot be eventified, since it already has property '\"+e[n]+\"'\")}(t);var e=function(t){var e=Object.create(null);return{on:function(n,r,i){if(\"function\"!=typeof r)throw new Error(\"callback is expected to be a function\");var o=e[n];return o||(o=e[n]=[]),o.push({callback:r,ctx:i}),t},off:function(n,r){if(void 0===n)return e=Object.create(null),t;if(e[n])if(\"function\"!=typeof r)delete e[n];else for(var i=e[n],o=0;o<i.length;++o)i[o].callback===r&&i.splice(o,1);return t},fire:function(n){var r,i=e[n];if(!i)return t;arguments.length>1&&(r=Array.prototype.splice.call(arguments,1));for(var o=0;o<i.length;++o){var a=i[o];a.callback.apply(a.ctx,r)}return t}}}(t);return t.on=e.on,t.off=e.off,t.fire=e.fire,t};var mc=function(t){\"uniqueLinkId\"in(t=t||{})&&(console.warn(\"ngraph.graph: Starting from version 0.14 `uniqueLinkId` is deprecated.\\nUse `multigraph` option instead\\n\",\"\\n\",\"Note: there is also change in default behavior: From now on each graph\\nis considered to be not a multigraph by default (each edge is unique).\"),t.multigraph=t.uniqueLinkId);void 0===t.multigraph&&(t.multigraph=!1);if(\"function\"!=typeof Map)throw new Error(\"ngraph.graph requires `Map` to be defined. Please polyfill it before using ngraph\");var e=new Map,n=[],r={},i=0,o=t.multigraph?function(t,e,n){var i=bc(t,e),o=r.hasOwnProperty(i);if(o||_(t,e)){o||(r[i]=0);var a=\"@\"+ ++r[i];i=bc(t+a,e+a)}return new _c(t,e,n,i)}:function(t,e,n){var r=bc(t,e);return new _c(t,e,n,r)},a=[],s=b,l=b,c=b,h=b,u={addNode:f,addLink:function(t,e,r){c();var i=m(t)||f(t),a=m(e)||f(e),l=o(t,e,r);n.push(l),xc(i,l),t!==e&&xc(a,l);return s(l,\"add\"),h(),l},removeLink:x,removeNode:g,getNode:m,getNodeCount:v,getLinkCount:y,getLinksCount:y,getNodesCount:v,getLinks:function(t){var e=m(t);return e?e.links:null},forEachNode:S,forEachLinkedNode:function(t,n,r){var i=m(t);if(i&&i.links&&\"function\"==typeof n)return r?function(t,n,r){for(var i=0;i<t.length;++i){var o=t[i];if(o.fromId===n&&r(e.get(o.toId),o))return!0}}(i.links,t,n):function(t,n,r){for(var i=0;i<t.length;++i){var o=t[i],a=o.fromId===n?o.toId:o.fromId;if(r(e.get(a),o))return!0}}(i.links,t,n)},forEachLink:function(t){var e,r;if(\"function\"==typeof t)for(e=0,r=n.length;e<r;++e)t(n[e])},beginUpdate:c,endUpdate:h,clear:function(){c(),S((function(t){g(t.id)})),h()},hasLink:_,hasNode:m,getLink:_};return gc(u),function(){var t=u.on;function e(){return u.beginUpdate=c=w,u.endUpdate=h=M,s=d,l=p,u.on=t,t.apply(u,arguments)}u.on=e}(),u;function d(t,e){a.push({link:t,changeType:e})}function p(t,e){a.push({node:t,changeType:e})}function f(t,n){if(void 0===t)throw new Error(\"Invalid node identifier\");c();var r=m(t);return r?(r.data=n,l(r,\"update\")):(r=new yc(t,n),l(r,\"add\")),e.set(t,r),h(),r}function m(t){return e.get(t)}function g(t){var n=m(t);if(!n)return!1;c();var r=n.links;if(r){n.links=null;for(var i=0;i<r.length;++i)x(r[i])}return e.delete(t),l(n,\"remove\"),h(),!0}function v(){return e.size}function y(){return n.length}function x(t){if(!t)return!1;var e=vc(t,n);if(e<0)return!1;c(),n.splice(e,1);var r=m(t.fromId),i=m(t.toId);return r&&(e=vc(t,r.links))>=0&&r.links.splice(e,1),i&&(e=vc(t,i.links))>=0&&i.links.splice(e,1),s(t,\"remove\"),h(),!0}function _(t,e){var n,r=m(t);if(!r||!r.links)return null;for(n=0;n<r.links.length;++n){var i=r.links[n];if(i.fromId===t&&i.toId===e)return i}return null}function b(){}function w(){i+=1}function M(){0===(i-=1)&&a.length>0&&(u.fire(\"changed\",a),a.length=0)}function S(t){if(\"function\"!=typeof t)throw new Error(\"Function is expected to iterate over graph nodes. You passed \"+t);for(var n=e.values(),r=n.next();!r.done;){if(t(r.value))return!0;r=n.next()}}},gc=fc;function vc(t,e){if(!e)return-1;if(e.indexOf)return e.indexOf(t);var n,r=e.length;for(n=0;n<r;n+=1)if(e[n]===t)return n;return-1}function yc(t,e){this.id=t,this.links=null,this.data=e}function xc(t,e){t.links?t.links.push(e):t.links=[e]}function _c(t,e,n,r){this.fromId=t,this.toId=e,this.data=n,this.id=r}function bc(t,e){return t.toString()+\"👉 \"+e.toString()}var wc={exports:{}},Mc={exports:{}},Sc=function(t){return 0===t?\"x\":1===t?\"y\":2===t?\"z\":\"c\"+(t+1)};const Ec=Sc;var Tc=function(t){return function(e,n){let r=n&&n.indent||0,i=n&&void 0!==n.join?n.join:\"\\n\",o=Array(r+1).join(\" \"),a=[];for(let n=0;n<t;++n){let t=Ec(n),r=0===n?\"\":o;a.push(r+e.replace(/{var}/g,t))}return a.join(i)}};const Ac=Tc;function Lc(t,e){return`\\n${Pc(t,e)}\\n${Cc(t)}\\nreturn {Body: Body, Vector: Vector};\\n`}function Cc(t){let e=Ac(t),n=e(\"{var}\",{join:\", \"});return`\\nfunction Body(${n}) {\\n  this.isPinned = false;\\n  this.pos = new Vector(${n});\\n  this.force = new Vector();\\n  this.velocity = new Vector();\\n  this.mass = 1;\\n\\n  this.springCount = 0;\\n  this.springLength = 0;\\n}\\n\\nBody.prototype.reset = function() {\\n  this.force.reset();\\n  this.springCount = 0;\\n  this.springLength = 0;\\n}\\n\\nBody.prototype.setPosition = function (${n}) {\\n  ${e(\"this.pos.{var} = {var} || 0;\",{indent:2})}\\n};`}function Pc(t,e){let n=Ac(t),r=\"\";return e&&(r=`${n(\"\\n   var v{var};\\nObject.defineProperty(this, '{var}', {\\n  set: function(v) { \\n    if (!Number.isFinite(v)) throw new Error('Cannot set non-numbers to {var}');\\n    v{var} = v; \\n  },\\n  get: function() { return v{var}; }\\n});\")}`),`function Vector(${n(\"{var}\",{join:\", \"})}) {\\n  ${r}\\n    if (typeof arguments[0] === 'object') {\\n      // could be another vector\\n      let v = arguments[0];\\n      ${n('if (!Number.isFinite(v.{var})) throw new Error(\"Expected value is not a finite number at Vector constructor ({var})\");',{indent:4})}\\n      ${n(\"this.{var} = v.{var};\",{indent:4})}\\n    } else {\\n      ${n('this.{var} = typeof {var} === \"number\" ? {var} : 0;',{indent:4})}\\n    }\\n  }\\n  \\n  Vector.prototype.reset = function () {\\n    ${n(\"this.{var} = \",{join:\"\"})}0;\\n  };`}Mc.exports=function(t,e){let n=Lc(t,e),{Body:r}=new Function(n)();return r},Mc.exports.generateCreateBodyFunctionBody=Lc,Mc.exports.getVectorCode=Pc,Mc.exports.getBodyCode=Cc;var Rc={exports:{}};const Dc=Tc,Ic=Sc;function Nc(t){let e=Dc(t),n=Math.pow(2,t);return`\\n${Fc()}\\n${Bc(t)}\\n${Oc(t)}\\n${zc(t)}\\n${kc(t)}\\n\\nfunction createQuadTree(options, random) {\\n  options = options || {};\\n  options.gravity = typeof options.gravity === 'number' ? options.gravity : -1;\\n  options.theta = typeof options.theta === 'number' ? options.theta : 0.8;\\n\\n  var gravity = options.gravity;\\n  var updateQueue = [];\\n  var insertStack = new InsertStack();\\n  var theta = options.theta;\\n\\n  var nodesCache = [];\\n  var currentInCache = 0;\\n  var root = newNode();\\n\\n  return {\\n    insertBodies: insertBodies,\\n\\n    /**\\n     * Gets root node if it is present\\n     */\\n    getRoot: function() {\\n      return root;\\n    },\\n\\n    updateBodyForce: update,\\n\\n    options: function(newOptions) {\\n      if (newOptions) {\\n        if (typeof newOptions.gravity === 'number') {\\n          gravity = newOptions.gravity;\\n        }\\n        if (typeof newOptions.theta === 'number') {\\n          theta = newOptions.theta;\\n        }\\n\\n        return this;\\n      }\\n\\n      return {\\n        gravity: gravity,\\n        theta: theta\\n      };\\n    }\\n  };\\n\\n  function newNode() {\\n    // To avoid pressure on GC we reuse nodes.\\n    var node = nodesCache[currentInCache];\\n    if (node) {\\n${function(t){let e=[];for(let r=0;r<n;++r)e.push(`${t}quad${r} = null;`);return e.join(\"\\n\")}(\"      node.\")}\\n      node.body = null;\\n      node.mass = ${e(\"node.mass_{var} = \",{join:\"\"})}0;\\n      ${e(\"node.min_{var} = node.max_{var} = \",{join:\"\"})}0;\\n    } else {\\n      node = new QuadNode();\\n      nodesCache[currentInCache] = node;\\n    }\\n\\n    ++currentInCache;\\n    return node;\\n  }\\n\\n  function update(sourceBody) {\\n    var queue = updateQueue;\\n    var v;\\n    ${e(\"var d{var};\",{indent:4})}\\n    var r; \\n    ${e(\"var f{var} = 0;\",{indent:4})}\\n    var queueLength = 1;\\n    var shiftIdx = 0;\\n    var pushIdx = 1;\\n\\n    queue[0] = root;\\n\\n    while (queueLength) {\\n      var node = queue[shiftIdx];\\n      var body = node.body;\\n\\n      queueLength -= 1;\\n      shiftIdx += 1;\\n      var differentBody = (body !== sourceBody);\\n      if (body && differentBody) {\\n        // If the current node is a leaf node (and it is not source body),\\n        // calculate the force exerted by the current node on body, and add this\\n        // amount to body's net force.\\n        ${e(\"d{var} = body.pos.{var} - sourceBody.pos.{var};\",{indent:8})}\\n        r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n\\n        if (r === 0) {\\n          // Poor man's protection against zero distance.\\n          ${e(\"d{var} = (random.nextDouble() - 0.5) / 50;\",{indent:10})}\\n          r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n        }\\n\\n        // This is standard gravitation force calculation but we divide\\n        // by r^3 to save two operations when normalizing force vector.\\n        v = gravity * body.mass * sourceBody.mass / (r * r * r);\\n        ${e(\"f{var} += v * d{var};\",{indent:8})}\\n      } else if (differentBody) {\\n        // Otherwise, calculate the ratio s / r,  where s is the width of the region\\n        // represented by the internal node, and r is the distance between the body\\n        // and the node's center-of-mass\\n        ${e(\"d{var} = node.mass_{var} / node.mass - sourceBody.pos.{var};\",{indent:8})}\\n        r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n\\n        if (r === 0) {\\n          // Sorry about code duplication. I don't want to create many functions\\n          // right away. Just want to see performance first.\\n          ${e(\"d{var} = (random.nextDouble() - 0.5) / 50;\",{indent:10})}\\n          r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n        }\\n        // If s / r < θ, treat this internal node as a single body, and calculate the\\n        // force it exerts on sourceBody, and add this amount to sourceBody's net force.\\n        if ((node.max_${Ic(0)} - node.min_${Ic(0)}) / r < theta) {\\n          // in the if statement above we consider node's width only\\n          // because the region was made into square during tree creation.\\n          // Thus there is no difference between using width or height.\\n          v = gravity * node.mass * sourceBody.mass / (r * r * r);\\n          ${e(\"f{var} += v * d{var};\",{indent:10})}\\n        } else {\\n          // Otherwise, run the procedure recursively on each of the current node's children.\\n\\n          // I intentionally unfolded this loop, to save several CPU cycles.\\n${function(){let t=Array(11).join(\" \"),e=[];for(let r=0;r<n;++r)e.push(t+`if (node.quad${r}) {`),e.push(t+`  queue[pushIdx] = node.quad${r};`),e.push(t+\"  queueLength += 1;\"),e.push(t+\"  pushIdx += 1;\"),e.push(t+\"}\");return e.join(\"\\n\")}()}\\n        }\\n      }\\n    }\\n\\n    ${e(\"sourceBody.force.{var} += f{var};\",{indent:4})}\\n  }\\n\\n  function insertBodies(bodies) {\\n    ${e(\"var {var}min = Number.MAX_VALUE;\",{indent:4})}\\n    ${e(\"var {var}max = Number.MIN_VALUE;\",{indent:4})}\\n    var i = bodies.length;\\n\\n    // To reduce quad tree depth we are looking for exact bounding box of all particles.\\n    while (i--) {\\n      var pos = bodies[i].pos;\\n      ${e(\"if (pos.{var} < {var}min) {var}min = pos.{var};\",{indent:6})}\\n      ${e(\"if (pos.{var} > {var}max) {var}max = pos.{var};\",{indent:6})}\\n    }\\n\\n    // Makes the bounds square.\\n    var maxSideLength = -Infinity;\\n    ${e(\"if ({var}max - {var}min > maxSideLength) maxSideLength = {var}max - {var}min ;\",{indent:4})}\\n\\n    currentInCache = 0;\\n    root = newNode();\\n    ${e(\"root.min_{var} = {var}min;\",{indent:4})}\\n    ${e(\"root.max_{var} = {var}min + maxSideLength;\",{indent:4})}\\n\\n    i = bodies.length - 1;\\n    if (i >= 0) {\\n      root.body = bodies[i];\\n    }\\n    while (i--) {\\n      insert(bodies[i], root);\\n    }\\n  }\\n\\n  function insert(newBody) {\\n    insertStack.reset();\\n    insertStack.push(root, newBody);\\n\\n    while (!insertStack.isEmpty()) {\\n      var stackItem = insertStack.pop();\\n      var node = stackItem.node;\\n      var body = stackItem.body;\\n\\n      if (!node.body) {\\n        // This is internal node. Update the total mass of the node and center-of-mass.\\n        ${e(\"var {var} = body.pos.{var};\",{indent:8})}\\n        node.mass += body.mass;\\n        ${e(\"node.mass_{var} += body.mass * {var};\",{indent:8})}\\n\\n        // Recursively insert the body in the appropriate quadrant.\\n        // But first find the appropriate quadrant.\\n        var quadIdx = 0; // Assume we are in the 0's quad.\\n        ${e(\"var min_{var} = node.min_{var};\",{indent:8})}\\n        ${e(\"var max_{var} = (min_{var} + node.max_{var}) / 2;\",{indent:8})}\\n\\n${function(e){let n=[],r=Array(e+1).join(\" \");for(let e=0;e<t;++e)n.push(r+`if (${Ic(e)} > max_${Ic(e)}) {`),n.push(r+`  quadIdx = quadIdx + ${Math.pow(2,e)};`),n.push(r+`  min_${Ic(e)} = max_${Ic(e)};`),n.push(r+`  max_${Ic(e)} = node.max_${Ic(e)};`),n.push(r+\"}\");return n.join(\"\\n\")}(8)}\\n\\n        var child = getChild(node, quadIdx);\\n\\n        if (!child) {\\n          // The node is internal but this quadrant is not taken. Add\\n          // subnode to it.\\n          child = newNode();\\n          ${e(\"child.min_{var} = min_{var};\",{indent:10})}\\n          ${e(\"child.max_{var} = max_{var};\",{indent:10})}\\n          child.body = body;\\n\\n          setChild(node, quadIdx, child);\\n        } else {\\n          // continue searching in this quadrant.\\n          insertStack.push(child, body);\\n        }\\n      } else {\\n        // We are trying to add to the leaf node.\\n        // We have to convert current leaf into internal node\\n        // and continue adding two nodes.\\n        var oldBody = node.body;\\n        node.body = null; // internal nodes do not cary bodies\\n\\n        if (isSamePosition(oldBody.pos, body.pos)) {\\n          // Prevent infinite subdivision by bumping one node\\n          // anywhere in this quadrant\\n          var retriesCount = 3;\\n          do {\\n            var offset = random.nextDouble();\\n            ${e(\"var d{var} = (node.max_{var} - node.min_{var}) * offset;\",{indent:12})}\\n\\n            ${e(\"oldBody.pos.{var} = node.min_{var} + d{var};\",{indent:12})}\\n            retriesCount -= 1;\\n            // Make sure we don't bump it out of the box. If we do, next iteration should fix it\\n          } while (retriesCount > 0 && isSamePosition(oldBody.pos, body.pos));\\n\\n          if (retriesCount === 0 && isSamePosition(oldBody.pos, body.pos)) {\\n            // This is very bad, we ran out of precision.\\n            // if we do not return from the method we'll get into\\n            // infinite loop here. So we sacrifice correctness of layout, and keep the app running\\n            // Next layout iteration should get larger bounding box in the first step and fix this\\n            return;\\n          }\\n        }\\n        // Next iteration should subdivide node further.\\n        insertStack.push(node, oldBody);\\n        insertStack.push(node, body);\\n      }\\n    }\\n  }\\n}\\nreturn createQuadTree;\\n\\n`}function Oc(t){let e=Dc(t);return`\\n  function isSamePosition(point1, point2) {\\n    ${e(\"var d{var} = Math.abs(point1.{var} - point2.{var});\",{indent:2})}\\n  \\n    return ${e(\"d{var} < 1e-8\",{join:\" && \"})};\\n  }  \\n`}function kc(t){var e=Math.pow(2,t);return`\\nfunction setChild(node, idx, child) {\\n  ${function(){let t=[];for(let n=0;n<e;++n){let e=0===n?\"  \":\"  else \";t.push(`${e}if (idx === ${n}) node.quad${n} = child;`)}return t.join(\"\\n\")}()}\\n}`}function zc(t){return`function getChild(node, idx) {\\n${function(){let e=[],n=Math.pow(2,t);for(let t=0;t<n;++t)e.push(`  if (idx === ${t}) return node.quad${t};`);return e.join(\"\\n\")}()}\\n  return null;\\n}`}function Bc(t){let e=Dc(t),n=Math.pow(2,t);return`\\nfunction QuadNode() {\\n  // body stored inside this node. In quad tree only leaf nodes (by construction)\\n  // contain bodies:\\n  this.body = null;\\n\\n  // Child nodes are stored in quads. Each quad is presented by number:\\n  // 0 | 1\\n  // -----\\n  // 2 | 3\\n${function(t){let e=[];for(let r=0;r<n;++r)e.push(`${t}quad${r} = null;`);return e.join(\"\\n\")}(\"  this.\")}\\n\\n  // Total mass of current node\\n  this.mass = 0;\\n\\n  // Center of mass coordinates\\n  ${e(\"this.mass_{var} = 0;\",{indent:2})}\\n\\n  // bounding box coordinates\\n  ${e(\"this.min_{var} = 0;\",{indent:2})}\\n  ${e(\"this.max_{var} = 0;\",{indent:2})}\\n}\\n`}function Fc(){return\"\\n/**\\n * Our implementation of QuadTree is non-recursive to avoid GC hit\\n * This data structure represent stack of elements\\n * which we are trying to insert into quad tree.\\n */\\nfunction InsertStack () {\\n    this.stack = [];\\n    this.popIdx = 0;\\n}\\n\\nInsertStack.prototype = {\\n    isEmpty: function() {\\n        return this.popIdx === 0;\\n    },\\n    push: function (node, body) {\\n        var item = this.stack[this.popIdx];\\n        if (!item) {\\n            // we are trying to avoid memory pressure: create new element\\n            // only when absolutely necessary\\n            this.stack[this.popIdx] = new InsertStackElement(node, body);\\n        } else {\\n            item.node = node;\\n            item.body = body;\\n        }\\n        ++this.popIdx;\\n    },\\n    pop: function () {\\n        if (this.popIdx > 0) {\\n            return this.stack[--this.popIdx];\\n        }\\n    },\\n    reset: function () {\\n        this.popIdx = 0;\\n    }\\n};\\n\\nfunction InsertStackElement(node, body) {\\n    this.node = node; // QuadTree node\\n    this.body = body; // physical body which needs to be inserted to node\\n}\\n\"}Rc.exports=function(t){let e=Nc(t);return new Function(e)()},Rc.exports.generateQuadTreeFunctionBody=Nc,Rc.exports.getInsertStackCode=Fc,Rc.exports.getQuadNodeCode=Bc,Rc.exports.isSamePosition=Oc,Rc.exports.getChildBodyCode=zc,Rc.exports.setChildBodyCode=kc;var Uc={exports:{}};Uc.exports=function(t){let e=Vc(t);return new Function(\"bodies\",\"settings\",\"random\",e)},Uc.exports.generateFunctionBody=Vc;const Hc=Tc;function Vc(t){let e=Hc(t);return`\\n  var boundingBox = {\\n    ${e(\"min_{var}: 0, max_{var}: 0,\",{indent:4})}\\n  };\\n\\n  return {\\n    box: boundingBox,\\n\\n    update: updateBoundingBox,\\n\\n    reset: resetBoundingBox,\\n\\n    getBestNewPosition: function (neighbors) {\\n      var ${e(\"base_{var} = 0\",{join:\", \"})};\\n\\n      if (neighbors.length) {\\n        for (var i = 0; i < neighbors.length; ++i) {\\n          let neighborPos = neighbors[i].pos;\\n          ${e(\"base_{var} += neighborPos.{var};\",{indent:10})}\\n        }\\n\\n        ${e(\"base_{var} /= neighbors.length;\",{indent:8})}\\n      } else {\\n        ${e(\"base_{var} = (boundingBox.min_{var} + boundingBox.max_{var}) / 2;\",{indent:8})}\\n      }\\n\\n      var springLength = settings.springLength;\\n      return {\\n        ${e(\"{var}: base_{var} + (random.nextDouble() - 0.5) * springLength,\",{indent:8})}\\n      };\\n    }\\n  };\\n\\n  function updateBoundingBox() {\\n    var i = bodies.length;\\n    if (i === 0) return; // No bodies - no borders.\\n\\n    ${e(\"var max_{var} = -Infinity;\",{indent:4})}\\n    ${e(\"var min_{var} = Infinity;\",{indent:4})}\\n\\n    while(i--) {\\n      // this is O(n), it could be done faster with quadtree, if we check the root node bounds\\n      var bodyPos = bodies[i].pos;\\n      ${e(\"if (bodyPos.{var} < min_{var}) min_{var} = bodyPos.{var};\",{indent:6})}\\n      ${e(\"if (bodyPos.{var} > max_{var}) max_{var} = bodyPos.{var};\",{indent:6})}\\n    }\\n\\n    ${e(\"boundingBox.min_{var} = min_{var};\",{indent:4})}\\n    ${e(\"boundingBox.max_{var} = max_{var};\",{indent:4})}\\n  }\\n\\n  function resetBoundingBox() {\\n    ${e(\"boundingBox.min_{var} = boundingBox.max_{var} = 0;\",{indent:4})}\\n  }\\n`}var Gc={exports:{}};const jc=Tc;function Wc(t){return`\\n  if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number');\\n\\n  return {\\n    update: function(body) {\\n      ${jc(t)(\"body.force.{var} -= options.dragCoefficient * body.velocity.{var};\",{indent:6})}\\n    }\\n  };\\n`}Gc.exports=function(t){let e=Wc(t);return new Function(\"options\",e)},Gc.exports.generateCreateDragForceFunctionBody=Wc;var qc={exports:{}};const Xc=Tc;function Yc(t){let e=Xc(t);return`\\n  if (!Number.isFinite(options.springCoefficient)) throw new Error('Spring coefficient is not a number');\\n  if (!Number.isFinite(options.springLength)) throw new Error('Spring length is not a number');\\n\\n  return {\\n    /**\\n     * Updates forces acting on a spring\\n     */\\n    update: function (spring) {\\n      var body1 = spring.from;\\n      var body2 = spring.to;\\n      var length = spring.length < 0 ? options.springLength : spring.length;\\n      ${e(\"var d{var} = body2.pos.{var} - body1.pos.{var};\",{indent:6})}\\n      var r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n\\n      if (r === 0) {\\n        ${e(\"d{var} = (random.nextDouble() - 0.5) / 50;\",{indent:8})}\\n        r = Math.sqrt(${e(\"d{var} * d{var}\",{join:\" + \"})});\\n      }\\n\\n      var d = r - length;\\n      var coefficient = ((spring.coefficient > 0) ? spring.coefficient : options.springCoefficient) * d / r;\\n\\n      ${e(\"body1.force.{var} += coefficient * d{var}\",{indent:6})};\\n      body1.springCount += 1;\\n      body1.springLength += r;\\n\\n      ${e(\"body2.force.{var} -= coefficient * d{var}\",{indent:6})};\\n      body2.springCount += 1;\\n      body2.springLength += r;\\n    }\\n  };\\n`}qc.exports=function(t){let e=Yc(t);return new Function(\"options\",\"random\",e)},qc.exports.generateCreateSpringForceFunctionBody=Yc;var Zc={exports:{}};const Jc=Tc;function $c(t){let e=Jc(t);return`\\n  var length = bodies.length;\\n  if (length === 0) return 0;\\n\\n  ${e(\"var d{var} = 0, t{var} = 0;\",{indent:2})}\\n\\n  for (var i = 0; i < length; ++i) {\\n    var body = bodies[i];\\n    if (body.isPinned) continue;\\n\\n    if (adaptiveTimeStepWeight && body.springCount) {\\n      timeStep = (adaptiveTimeStepWeight * body.springLength/body.springCount);\\n    }\\n\\n    var coeff = timeStep / body.mass;\\n\\n    ${e(\"body.velocity.{var} += coeff * body.force.{var};\",{indent:4})}\\n    ${e(\"var v{var} = body.velocity.{var};\",{indent:4})}\\n    var v = Math.sqrt(${e(\"v{var} * v{var}\",{join:\" + \"})});\\n\\n    if (v > 1) {\\n      // We normalize it so that we move within timeStep range. \\n      // for the case when v <= 1 - we let velocity to fade out.\\n      ${e(\"body.velocity.{var} = v{var} / v;\",{indent:6})}\\n    }\\n\\n    ${e(\"d{var} = timeStep * body.velocity.{var};\",{indent:4})}\\n\\n    ${e(\"body.pos.{var} += d{var};\",{indent:4})}\\n\\n    ${e(\"t{var} += Math.abs(d{var});\",{indent:4})}\\n  }\\n\\n  return (${e(\"t{var} * t{var}\",{join:\" + \"})})/length;\\n`}Zc.exports=function(t){let e=$c(t);return new Function(\"bodies\",\"timeStep\",\"adaptiveTimeStepWeight\",e)},Zc.exports.generateIntegratorFunctionBody=$c;var Qc=function(t,e,n,r){this.from=t,this.to=e,this.length=n,this.coefficient=r};var Kc=function t(e,n){var r;e||(e={});if(n)for(r in n)if(n.hasOwnProperty(r)){var i=e.hasOwnProperty(r),o=typeof n[r];!i||typeof e[r]!==o?e[r]=n[r]:\"object\"===o&&(e[r]=t(e[r],n[r]))}return e};var th={exports:{}};function eh(t){return new nh(\"number\"==typeof t?t:+new Date)}function nh(t){this.seed=t}function rh(t){return Math.sqrt(2*Math.PI/t)*Math.pow(1/Math.E*(t+1/(12*t-1/(10*t))),t)}function ih(){var t=this.seed;return t=4294967295&(3042594569^(t=(t=4294967295&((t=(t=4294967295&(3345072700^(t=t+2127912214+(t<<12)&4294967295)^t>>>19))+374761393+(t<<5)&4294967295)+3550635116^t<<9))+4251993797+(t<<3)&4294967295)^t>>>16),this.seed=t,(268435455&t)/268435456}th.exports=eh,th.exports.random=eh,th.exports.randomIterator=function(t,e){var n=e||eh();if(\"function\"!=typeof n.next)throw new Error(\"customRandom does not match expected API: next() function is missing\");return{forEach:function(e){var r,i,o;for(r=t.length-1;r>0;--r)i=n.next(r+1),o=t[i],t[i]=t[r],t[r]=o,e(o);t.length&&e(t[0])},shuffle:function(){var e,r,i;for(e=t.length-1;e>0;--e)r=n.next(e+1),i=t[r],t[r]=t[e],t[e]=i;return t}}},nh.prototype.next=function(t){return Math.floor(this.nextDouble()*t)},nh.prototype.nextDouble=ih,nh.prototype.uniform=ih,nh.prototype.gaussian=function(){var t,e,n;do{e=2*this.nextDouble()-1,n=2*this.nextDouble()-1,t=e*e+n*n}while(t>=1||0===t);return e*Math.sqrt(-2*Math.log(t)/t)},nh.prototype.levy=function(){var t=1.5,e=Math.pow(rh(2.5)*Math.sin(Math.PI*t/2)/(rh(1.25)*t*Math.pow(2,.25)),1/t);return this.gaussian()*e/Math.pow(Math.abs(this.gaussian()),1/t)};var oh=function(t){var e=Qc,n=Kc,r=fc;if(t){if(void 0!==t.springCoeff)throw new Error(\"springCoeff was renamed to springCoefficient\");if(void 0!==t.dragCoeff)throw new Error(\"dragCoeff was renamed to dragCoefficient\")}t=n(t,{springLength:10,springCoefficient:.8,gravity:-12,theta:.8,dragCoefficient:.9,timeStep:.5,adaptiveTimeStepWeight:0,dimensions:2,debug:!1});var i=dh[t.dimensions];if(!i){var o=t.dimensions;i={Body:ah(o,t.debug),createQuadTree:sh(o),createBounds:lh(o),createDragForce:ch(o),createSpringForce:hh(o),integrate:uh(o)},dh[o]=i}var a=i.Body,s=i.createQuadTree,l=i.createBounds,c=i.createDragForce,h=i.createSpringForce,u=i.integrate,d=th.exports.random(42),p=[],f=[],m=s(t,d),g=l(p,t,d),v=h(t,d),y=c(t),x=[],_=new Map,b=0;S(\"nbody\",(function(){if(0===p.length)return;m.insertBodies(p);var t=p.length;for(;t--;){var e=p[t];e.isPinned||(e.reset(),m.updateBodyForce(e),y.update(e))}})),S(\"spring\",(function(){var t=f.length;for(;t--;)v.update(f[t])}));var w={bodies:p,quadTree:m,springs:f,settings:t,addForce:S,removeForce:function(t){var e=x.indexOf(_.get(t));if(e<0)return;x.splice(e,1),_.delete(t)},getForces:function(){return _},step:function(){for(var e=0;e<x.length;++e)x[e](b);var n=u(p,t.timeStep,t.adaptiveTimeStepWeight);return b+=1,n},addBody:function(t){if(!t)throw new Error(\"Body is required\");return p.push(t),t},addBodyAt:function(t){if(!t)throw new Error(\"Body position is required\");var e=(t=>new a(t))(t);return p.push(e),e},removeBody:function(t){if(t){var e=p.indexOf(t);if(!(e<0))return p.splice(e,1),0===p.length&&g.reset(),!0}},addSpring:function(t,n,r,i){if(!t||!n)throw new Error(\"Cannot add null spring to force simulator\");\"number\"!=typeof r&&(r=-1);var o=new e(t,n,r,i>=0?i:-1);return f.push(o),o},getTotalMovement:function(){return 0},removeSpring:function(t){if(t){var e=f.indexOf(t);return e>-1?(f.splice(e,1),!0):void 0}},getBestNewBodyPosition:function(t){return g.getBestNewPosition(t)},getBBox:M,getBoundingBox:M,invalidateBBox:function(){console.warn(\"invalidateBBox() is deprecated, bounds always recomputed on `getBBox()` call\")},gravity:function(e){return void 0!==e?(t.gravity=e,m.options({gravity:e}),this):t.gravity},theta:function(e){return void 0!==e?(t.theta=e,m.options({theta:e}),this):t.theta},random:d};return function(t,e){for(var n in t)ph(t,e,n)}(t,w),r(w),w;function M(){return g.update(),g.box}function S(t,e){if(_.has(t))throw new Error(\"Force \"+t+\" is already added\");_.set(t,e),x.push(e)}},ah=Mc.exports,sh=Rc.exports,lh=Uc.exports,ch=Gc.exports,hh=qc.exports,uh=Zc.exports,dh={};function ph(t,e,n){if(t.hasOwnProperty(n)&&\"function\"!=typeof e[n]){var r=Number.isFinite(t[n]);e[n]=r?function(r){if(void 0!==r){if(!Number.isFinite(r))throw new Error(\"Value of \"+n+\" should be a valid number.\");return t[n]=r,e}return t[n]}:function(r){return void 0!==r?(t[n]=r,e):t[n]}}}wc.exports=function(t,e){if(!t)throw new Error(\"Graph structure cannot be undefined\");var n=(e&&e.createSimulator||oh)(e);if(Array.isArray(e))throw new Error(\"Physics settings is expected to be an object\");var r=function(e){var n=t.getLinks(e);return n?1+n.length/3:1};e&&\"function\"==typeof e.nodeMass&&(r=e.nodeMass);var i=new Map,o={},a=0,s=n.settings.springTransform||mh;a=0,t.forEachNode((function(t){p(t.id),a+=1})),t.forEachLink(m),t.on(\"changed\",d);var l=!1,c={step:function(){if(0===a)return h(!0),!0;var t=n.step();c.lastMove=t,c.fire(\"step\");var e=t/a<=.01;return h(e),e},getNodePosition:function(t){return y(t).pos},setNodePosition:function(t){var e=y(t);e.setPosition.apply(e,Array.prototype.slice.call(arguments,1))},getLinkPosition:function(t){var e=o[t];if(e)return{from:e.from.pos,to:e.to.pos}},getGraphRect:function(){return n.getBBox()},forEachBody:u,pinNode:function(t,e){y(t.id).isPinned=!!e},isNodePinned:function(t){return y(t.id).isPinned},dispose:function(){t.off(\"changed\",d),c.fire(\"disposed\")},getBody:function(t){return i.get(t)},getSpring:function(e,n){var r;if(void 0===n)r=\"object\"!=typeof e?e:e.id;else{var i=t.hasLink(e,n);if(!i)return;r=i.id}return o[r]},getForceVectorLength:function(){var t=0,e=0;return u((function(n){t+=Math.abs(n.force.x),e+=Math.abs(n.force.y)})),Math.sqrt(t*t+e*e)},simulator:n,graph:t,lastMove:0};return fh(c),c;function h(t){var e;l!==t&&(l=t,e=t,c.fire(\"stable\",e))}function u(t){i.forEach(t)}function d(e){for(var n=0;n<e.length;++n){var r=e[n];\"add\"===r.changeType?(r.node&&p(r.node.id),r.link&&m(r.link)):\"remove\"===r.changeType&&(r.node&&f(r.node),r.link&&g(r.link))}a=t.getNodesCount()}function p(e){var r=i.get(e);if(!r){var o=t.getNode(e);if(!o)throw new Error(\"initBody() was called with unknown node id\");var a=o.position;if(!a){var s=function(t){var e=[];if(!t.links)return e;for(var n=Math.min(t.links.length,2),r=0;r<n;++r){var o=t.links[r],a=o.fromId!==t.id?i.get(o.fromId):i.get(o.toId);a&&a.pos&&e.push(a)}return e}(o);a=n.getBestNewBodyPosition(s)}(r=n.addBodyAt(a)).id=e,i.set(e,r),v(e),function(t){return t&&(t.isPinned||t.data&&t.data.isPinned)}(o)&&(r.isPinned=!0)}}function f(t){var e=t.id,r=i.get(e);r&&(i.delete(e),n.removeBody(r))}function m(t){v(t.fromId),v(t.toId);var e=i.get(t.fromId),r=i.get(t.toId),a=n.addSpring(e,r,t.length);s(t,a),o[t.id]=a}function g(e){var r=o[e.id];if(r){var i=t.getNode(e.fromId),a=t.getNode(e.toId);i&&v(i.id),a&&v(a.id),delete o[e.id],n.removeSpring(r)}}function v(t){var e=i.get(t);if(e.mass=r(t),Number.isNaN(e.mass))throw new Error(\"Node mass should be a number\")}function y(t){var e=i.get(t);return e||(p(t),e=i.get(t)),e}},wc.exports.simulator=oh;var fh=fc;function mh(){}var gh=wc.exports;function vh(t,e,n){var r,i,o,a,s;function l(){var c=Date.now()-a;c<e&&c>=0?r=setTimeout(l,e-c):(r=null,n||(s=t.apply(o,i),o=i=null))}null==e&&(e=100);var c=function(){o=this,i=arguments,a=Date.now();var c=n&&!r;return r||(r=setTimeout(l,e)),c&&(s=t.apply(o,i),o=i=null),s};return c.clear=function(){r&&(clearTimeout(r),r=null)},c.flush=function(){r&&(s=t.apply(o,i),o=i=null,clearTimeout(r),r=null)},c}vh.debounce=vh;var yh=vh;function xh(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&(\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||function(t,e){if(!t)return;if(\"string\"==typeof t)return _h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _h(t,e)}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function _h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var bh=function t(e,n){var r=n.default,i=void 0===r?null:r,o=n.triggerUpdate,a=void 0===o||o,s=n.onChange,l=void 0===s?function(t,e){}:s;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.name=e,this.defaultVal=i,this.triggerUpdate=a,this.onChange=l};function wh(t){var e=t.stateInit,n=void 0===e?function(){return{}}:e,r=t.props,i=void 0===r?{}:r,o=t.methods,a=void 0===o?{}:o,s=t.aliases,l=void 0===s?{}:s,c=t.init,h=void 0===c?function(){}:c,u=t.update,d=void 0===u?function(){}:u,p=Object.keys(i).map((function(t){return new bh(t,i[t])}));return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=Object.assign({},n instanceof Function?n(t):n,{initialised:!1}),r={};function i(e){return o(e,t),s(),i}var o=function(t,n){h.call(i,t,e,n),e.initialised=!0},s=yh((function(){e.initialised&&(d.call(i,e,r),r={})}),1);return p.forEach((function(t){i[t.name]=function(t){var n=t.name,o=t.triggerUpdate,a=void 0!==o&&o,l=t.onChange,c=void 0===l?function(t,e){}:l,h=t.defaultVal,u=void 0===h?null:h;return function(t){var o=e[n];if(!arguments.length)return o;var l=void 0===t?u:t;return e[n]=l,c.call(i,l,e,o),!r.hasOwnProperty(n)&&(r[n]=o),a&&s(),i}}(t)})),Object.keys(a).forEach((function(t){i[t]=function(){for(var n,r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];return(n=a[t]).call.apply(n,[i,e].concat(o))}})),Object.entries(l).forEach((function(t){var e=xh(t,2),n=e[0],r=e[1];return i[n]=i[r]})),i.resetProps=function(){return p.forEach((function(t){i[t.name](t.defaultVal)})),i},i.resetProps(),e._rerender=s,i}}var Mh=function(t){return t instanceof Function?t:\"string\"==typeof t?function(e){return e[t]}:function(e){return t}};class Sh extends Map{constructor(t,e=Th){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[e,n]of t)this.set(e,n)}get(t){return super.get(Eh(this,t))}has(t){return super.has(Eh(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},n){const r=e(n);t.has(r)&&(n=t.get(n),t.delete(r));return n}(this,t))}}function Eh({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Th(t){return null!==t&&\"object\"==typeof t?t.valueOf():t}function Ah(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n<i||void 0===n&&i>=i)&&(n=i)}return n}function Lh(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function Ch(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function Ph(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&(\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||Dh(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Rh(t){return function(t){if(Array.isArray(t))return Ih(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||Dh(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Dh(t,e){if(t){if(\"string\"==typeof t)return Ih(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ih(t,e):void 0}}function Ih(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Nh(t){var e=function(t,e){if(\"object\"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:String(e)}var Oh=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=(e instanceof Array?e.length?e:[void 0]:[e]).map((function(t){return{keyAccessor:t,isProp:!(t instanceof Function)}})),o=t.reduce((function(t,e){var r=t,o=e;return i.forEach((function(t,e){var a,s=t.keyAccessor;if(t.isProp){var l=o,c=l[s],h=Ch(l,[s].map(Nh));a=c,o=h}else a=s(o,e);e+1<i.length?(r.hasOwnProperty(a)||(r[a]={}),r=r[a]):n?(r.hasOwnProperty(a)||(r[a]=[]),r[a].push(o)):r[a]=o})),t}),{});n instanceof Function&&function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;r===i.length?Object.keys(e).forEach((function(t){return e[t]=n(e[t])})):Object.values(e).forEach((function(e){return t(e,r+1)}))}(o);var a=o;return r&&(a=[],function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];n.length===i.length?a.push({keys:n,vals:e}):Object.entries(e).forEach((function(e){var r=Ph(e,2),i=r[0],o=r[1];return t(o,[].concat(Rh(n),[i]))}))}(o),e instanceof Array&&0===e.length&&1===a.length&&(a[0].keys=[])),a};function kh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function zh(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Bh(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function Fh(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&(\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"]);if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||Hh(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Uh(t){return function(t){if(Array.isArray(t))return Vh(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||Hh(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Hh(t,e){if(t){if(\"string\"==typeof t)return Vh(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Vh(t,e):void 0}}function Vh(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Gh(t,e,n){var r=n.objBindAttr,i=void 0===r?\"__obj\":r,o=n.dataBindAttr,a=void 0===o?\"__data\":o,s=n.idAccessor,l=n.purge,c=void 0!==l&&l,h=function(t){return t.hasOwnProperty(a)},u=e.filter((function(t){return!h(t)})),d=e.filter(h).map((function(t){return t[a]})),p=c?{enter:t,exit:d,update:[]}:function(t,e,n){var r={enter:[],update:[],exit:[]};if(n){var i=Oh(t,n,!1),o=Oh(e,n,!1),a=Object.assign({},i,o);Object.entries(a).forEach((function(t){var e=Fh(t,2),n=e[0],a=e[1],s=i.hasOwnProperty(n)?o.hasOwnProperty(n)?\"update\":\"exit\":\"enter\";r[s].push(\"update\"===s?[i[n],o[n]]:a)}))}else{var s=new Set(t),l=new Set(e);new Set([].concat(Uh(s),Uh(l))).forEach((function(t){var e=s.has(t)?l.has(t)?\"update\":\"exit\":\"enter\";r[e].push(\"update\"===e?[t,t]:t)}))}return r}(d,t,s);return p.update=p.update.map((function(t){var e=Fh(t,2),n=e[0],r=e[1];return n!==r&&(r[i]=n[i],r[i][a]=r),r})),p.exit=p.exit.concat(u.map((function(t){return zh({},i,t)}))),p}function jh(t,e,n,r,i){var o=i.createObj,a=void 0===o?function(t){return{}}:o,s=i.updateObj,l=void 0===s?function(t,e){}:s,c=i.exitObj,h=void 0===c?function(t){}:c,u=i.objBindAttr,d=void 0===u?\"__obj\":u,p=i.dataBindAttr,f=void 0===p?\"__data\":p,m=Bh(i,[\"createObj\",\"updateObj\",\"exitObj\",\"objBindAttr\",\"dataBindAttr\"]),g=Gh(t,e,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?kh(Object(n),!0).forEach((function(e){zh(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):kh(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({objBindAttr:d,dataBindAttr:f},m)),v=g.enter,y=g.update;g.exit.forEach((function(t){var e=t[d];delete t[d],h(e),r(e)}));var x=function(t){var e=[];return t.forEach((function(t){var n=a(t);n&&(n[f]=t,t[d]=n,e.push(n))})),e}(v);!function(t){t.forEach((function(t){var e=t[d];e&&(e[f]=t,l(e,t))}))}([].concat(Uh(v),Uh(y))),x.forEach(n)}function Wh(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}const qh=Symbol(\"implicit\");var Xh=function(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]=\"#\"+t.slice(6*r,6*++r);return n}(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\"),Yh={exports:{}};!function(t){!function(e){var n=/^\\s+/,r=/\\s+$/,i=0,o=e.round,a=e.min,s=e.max,l=e.random;function c(t,l){if(l=l||{},(t=t||\"\")instanceof c)return t;if(!(this instanceof c))return new c(t,l);var h=function(t){var i={r:0,g:0,b:0},o=1,l=null,c=null,h=null,u=!1,d=!1;\"string\"==typeof t&&(t=function(t){t=t.replace(n,\"\").replace(r,\"\").toLowerCase();var e,i=!1;if(A[t])t=A[t],i=!0;else if(\"transparent\"==t)return{r:0,g:0,b:0,a:0,format:\"name\"};if(e=U.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=U.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=U.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=U.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=U.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=U.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=U.hex8.exec(t))return{r:D(e[1]),g:D(e[2]),b:D(e[3]),a:k(e[4]),format:i?\"name\":\"hex8\"};if(e=U.hex6.exec(t))return{r:D(e[1]),g:D(e[2]),b:D(e[3]),format:i?\"name\":\"hex\"};if(e=U.hex4.exec(t))return{r:D(e[1]+\"\"+e[1]),g:D(e[2]+\"\"+e[2]),b:D(e[3]+\"\"+e[3]),a:k(e[4]+\"\"+e[4]),format:i?\"name\":\"hex8\"};if(e=U.hex3.exec(t))return{r:D(e[1]+\"\"+e[1]),g:D(e[2]+\"\"+e[2]),b:D(e[3]+\"\"+e[3]),format:i?\"name\":\"hex\"};return!1}(t));\"object\"==typeof t&&(H(t.r)&&H(t.g)&&H(t.b)?(p=t.r,f=t.g,m=t.b,i={r:255*P(p,255),g:255*P(f,255),b:255*P(m,255)},u=!0,d=\"%\"===String(t.r).substr(-1)?\"prgb\":\"rgb\"):H(t.h)&&H(t.s)&&H(t.v)?(l=N(t.s),c=N(t.v),i=function(t,n,r){t=6*P(t,360),n=P(n,100),r=P(r,100);var i=e.floor(t),o=t-i,a=r*(1-n),s=r*(1-o*n),l=r*(1-(1-o)*n),c=i%6;return{r:255*[r,s,a,a,l,r][c],g:255*[l,r,r,s,a,a][c],b:255*[a,a,l,r,r,s][c]}}(t.h,l,c),u=!0,d=\"hsv\"):H(t.h)&&H(t.s)&&H(t.l)&&(l=N(t.s),h=N(t.l),i=function(t,e,n){var r,i,o;function a(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=P(t,360),e=P(e,100),n=P(n,100),0===e)r=i=o=n;else{var s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;r=a(l,s,t+1/3),i=a(l,s,t),o=a(l,s,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,l,h),u=!0,d=\"hsl\"),t.hasOwnProperty(\"a\")&&(o=t.a));var p,f,m;return o=C(o),{ok:u,format:t.format||d,r:a(255,s(i.r,0)),g:a(255,s(i.g,0)),b:a(255,s(i.b,0)),a:o}}(t);this._originalInput=t,this._r=h.r,this._g=h.g,this._b=h.b,this._a=h.a,this._roundA=o(100*this._a)/100,this._format=l.format||h.format,this._gradientType=l.gradientType,this._r<1&&(this._r=o(this._r)),this._g<1&&(this._g=o(this._g)),this._b<1&&(this._b=o(this._b)),this._ok=h.ok,this._tc_id=i++}function h(t,e,n){t=P(t,255),e=P(e,255),n=P(n,255);var r,i,o=s(t,e,n),l=a(t,e,n),c=(o+l)/2;if(o==l)r=i=0;else{var h=o-l;switch(i=c>.5?h/(2-o-l):h/(o+l),o){case t:r=(e-n)/h+(e<n?6:0);break;case e:r=(n-t)/h+2;break;case n:r=(t-e)/h+4}r/=6}return{h:r,s:i,l:c}}function u(t,e,n){t=P(t,255),e=P(e,255),n=P(n,255);var r,i,o=s(t,e,n),l=a(t,e,n),c=o,h=o-l;if(i=0===o?0:h/o,o==l)r=0;else{switch(o){case t:r=(e-n)/h+(e<n?6:0);break;case e:r=(n-t)/h+2;break;case n:r=(t-e)/h+4}r/=6}return{h:r,s:i,v:c}}function d(t,e,n,r){var i=[I(o(t).toString(16)),I(o(e).toString(16)),I(o(n).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join(\"\")}function p(t,e,n,r){return[I(O(r)),I(o(t).toString(16)),I(o(e).toString(16)),I(o(n).toString(16))].join(\"\")}function f(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.s-=e/100,n.s=R(n.s),c(n)}function m(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.s+=e/100,n.s=R(n.s),c(n)}function g(t){return c(t).desaturate(100)}function v(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.l+=e/100,n.l=R(n.l),c(n)}function y(t,e){e=0===e?0:e||10;var n=c(t).toRgb();return n.r=s(0,a(255,n.r-o(-e/100*255))),n.g=s(0,a(255,n.g-o(-e/100*255))),n.b=s(0,a(255,n.b-o(-e/100*255))),c(n)}function x(t,e){e=0===e?0:e||10;var n=c(t).toHsl();return n.l-=e/100,n.l=R(n.l),c(n)}function _(t,e){var n=c(t).toHsl(),r=(n.h+e)%360;return n.h=r<0?360+r:r,c(n)}function b(t){var e=c(t).toHsl();return e.h=(e.h+180)%360,c(e)}function w(t){var e=c(t).toHsl(),n=e.h;return[c(t),c({h:(n+120)%360,s:e.s,l:e.l}),c({h:(n+240)%360,s:e.s,l:e.l})]}function M(t){var e=c(t).toHsl(),n=e.h;return[c(t),c({h:(n+90)%360,s:e.s,l:e.l}),c({h:(n+180)%360,s:e.s,l:e.l}),c({h:(n+270)%360,s:e.s,l:e.l})]}function S(t){var e=c(t).toHsl(),n=e.h;return[c(t),c({h:(n+72)%360,s:e.s,l:e.l}),c({h:(n+216)%360,s:e.s,l:e.l})]}function E(t,e,n){e=e||6,n=n||30;var r=c(t).toHsl(),i=360/n,o=[c(t)];for(r.h=(r.h-(i*e>>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(c(r));return o}function T(t,e){e=e||6;for(var n=c(t).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/e;e--;)a.push(c({h:r,s:i,v:o})),o=(o+s)%1;return a}c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,n,r,i=this.toRgb();return t=i.r/255,n=i.g/255,r=i.b/255,.2126*(t<=.03928?t/12.92:e.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:e.pow((n+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:e.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=o(100*this._a)/100,this},toHsv:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=u(this._r,this._g,this._b),e=o(360*t.h),n=o(100*t.s),r=o(100*t.v);return 1==this._a?\"hsv(\"+e+\", \"+n+\"%, \"+r+\"%)\":\"hsva(\"+e+\", \"+n+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHsl:function(){var t=h(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=h(this._r,this._g,this._b),e=o(360*t.h),n=o(100*t.s),r=o(100*t.l);return 1==this._a?\"hsl(\"+e+\", \"+n+\"%, \"+r+\"%)\":\"hsla(\"+e+\", \"+n+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHex:function(t){return d(this._r,this._g,this._b,t)},toHexString:function(t){return\"#\"+this.toHex(t)},toHex8:function(t){return function(t,e,n,r,i){var a=[I(o(t).toString(16)),I(o(e).toString(16)),I(o(n).toString(16)),I(O(r))];if(i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1))return a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0);return a.join(\"\")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return\"#\"+this.toHex8(t)},toRgb:function(){return{r:o(this._r),g:o(this._g),b:o(this._b),a:this._a}},toRgbString:function(){return 1==this._a?\"rgb(\"+o(this._r)+\", \"+o(this._g)+\", \"+o(this._b)+\")\":\"rgba(\"+o(this._r)+\", \"+o(this._g)+\", \"+o(this._b)+\", \"+this._roundA+\")\"},toPercentageRgb:function(){return{r:o(100*P(this._r,255))+\"%\",g:o(100*P(this._g,255))+\"%\",b:o(100*P(this._b,255))+\"%\",a:this._a}},toPercentageRgbString:function(){return 1==this._a?\"rgb(\"+o(100*P(this._r,255))+\"%, \"+o(100*P(this._g,255))+\"%, \"+o(100*P(this._b,255))+\"%)\":\"rgba(\"+o(100*P(this._r,255))+\"%, \"+o(100*P(this._g,255))+\"%, \"+o(100*P(this._b,255))+\"%, \"+this._roundA+\")\"},toName:function(){return 0===this._a?\"transparent\":!(this._a<1)&&(L[d(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e=\"#\"+p(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?\"GradientType = 1, \":\"\";if(t){var i=c(t);n=\"#\"+p(i._r,i._g,i._b,i._a)}return\"progid:DXImageTransform.Microsoft.gradient(\"+r+\"startColorstr=\"+e+\",endColorstr=\"+n+\")\"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||\"hex\"!==t&&\"hex6\"!==t&&\"hex3\"!==t&&\"hex4\"!==t&&\"hex8\"!==t&&\"name\"!==t?(\"rgb\"===t&&(n=this.toRgbString()),\"prgb\"===t&&(n=this.toPercentageRgbString()),\"hex\"!==t&&\"hex6\"!==t||(n=this.toHexString()),\"hex3\"===t&&(n=this.toHexString(!0)),\"hex4\"===t&&(n=this.toHex8String(!0)),\"hex8\"===t&&(n=this.toHex8String()),\"name\"===t&&(n=this.toName()),\"hsl\"===t&&(n=this.toHslString()),\"hsv\"===t&&(n=this.toHsvString()),n||this.toHexString()):\"name\"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(v,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(f,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(g,arguments)},spin:function(){return this._applyModification(_,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(b,arguments)},monochromatic:function(){return this._applyCombination(T,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(M,arguments)}},c.fromRatio=function(t,e){if(\"object\"==typeof t){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=\"a\"===r?t[r]:N(t[r]));t=n}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,n){n=0===n?0:n||50;var r=c(t).toRgb(),i=c(e).toRgb(),o=n/100;return c({r:(i.r-r.r)*o+r.r,g:(i.g-r.g)*o+r.g,b:(i.b-r.b)*o+r.b,a:(i.a-r.a)*o+r.a})},\n",
       "// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n",
       "// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n",
       "c.readability=function(t,n){var r=c(t),i=c(n);return(e.max(r.getLuminance(),i.getLuminance())+.05)/(e.min(r.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,n){var r,i,o=c.readability(t,e);switch(i=!1,(r=function(t){var e,n;e=((t=t||{level:\"AA\",size:\"small\"}).level||\"AA\").toUpperCase(),n=(t.size||\"small\").toLowerCase(),\"AA\"!==e&&\"AAA\"!==e&&(e=\"AA\");\"small\"!==n&&\"large\"!==n&&(n=\"small\");return{level:e,size:n}}(n)).level+r.size){case\"AAsmall\":case\"AAAlarge\":i=o>=4.5;break;case\"AAlarge\":i=o>=3;break;case\"AAAsmall\":i=o>=7}return i},c.mostReadable=function(t,e,n){var r,i,o,a,s=null,l=0;i=(n=n||{}).includeFallbackColors,o=n.level,a=n.size;for(var h=0;h<e.length;h++)(r=c.readability(t,e[h]))>l&&(l=r,s=c(e[h]));return c.isReadable(t,s,{level:o,size:a})||!i?s:(n.includeFallbackColors=!1,c.mostReadable(t,[\"#fff\",\"#000\"],n))};var A=c.names={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"0ff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"00f\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",burntsienna:\"ea7e5d\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"0ff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"f0f\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"663399\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"},L=c.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(A);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function P(t,n){(function(t){return\"string\"==typeof t&&-1!=t.indexOf(\".\")&&1===parseFloat(t)})(t)&&(t=\"100%\");var r=function(t){return\"string\"==typeof t&&-1!=t.indexOf(\"%\")}(t);return t=a(n,s(0,parseFloat(t))),r&&(t=parseInt(t*n,10)/100),e.abs(t-n)<1e-6?1:t%n/parseFloat(n)}function R(t){return a(1,s(0,t))}function D(t){return parseInt(t,16)}function I(t){return 1==t.length?\"0\"+t:\"\"+t}function N(t){return t<=1&&(t=100*t+\"%\"),t}function O(t){return e.round(255*parseFloat(t)).toString(16)}function k(t){return D(t)/255}var z,B,F,U=(B=\"[\\\\s|\\\\(]+(\"+(z=\"(?:[-\\\\+]?\\\\d*\\\\.\\\\d+%?)|(?:[-\\\\+]?\\\\d+%?)\")+\")[,|\\\\s]+(\"+z+\")[,|\\\\s]+(\"+z+\")\\\\s*\\\\)?\",F=\"[\\\\s|\\\\(]+(\"+z+\")[,|\\\\s]+(\"+z+\")[,|\\\\s]+(\"+z+\")[,|\\\\s]+(\"+z+\")\\\\s*\\\\)?\",{CSS_UNIT:new RegExp(z),rgb:new RegExp(\"rgb\"+B),rgba:new RegExp(\"rgba\"+F),hsl:new RegExp(\"hsl\"+B),hsla:new RegExp(\"hsla\"+F),hsv:new RegExp(\"hsv\"+B),hsva:new RegExp(\"hsva\"+F),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function H(t){return!!U.CSS_UNIT.exec(t)}t.exports?t.exports=c:window.tinycolor=c}(Math)}(Yh);var Zh=Yh.exports;function Jh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $h(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Jh(Object(n),!0).forEach((function(e){tu(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Jh(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Qh(t){return(Qh=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function Kh(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function tu(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function eu(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&ru(t,e)}function nu(t){return(nu=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function ru(t,e){return(ru=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function iu(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function ou(t,e,n){return(ou=iu()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&ru(i,n.prototype),i}).apply(null,arguments)}function au(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function su(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function lu(t,e){return!e||\"object\"!=typeof e&&\"function\"!=typeof e?su(t):e}function cu(t){var e=iu();return function(){var n,r=nu(t);if(e){var i=nu(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return lu(this,n)}}function hu(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||du(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function uu(t){return function(t){if(Array.isArray(t))return pu(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||du(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function du(t,e){if(t){if(\"string\"==typeof t)return pu(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pu(t,e):void 0}}function pu(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var fu=function t(e){e instanceof Array?e.forEach(t):(e.map&&e.map.dispose(),e.dispose())},mu=function t(e){e.geometry&&e.geometry.dispose(),e.material&&fu(e.material),e.texture&&e.texture.dispose(),e.children&&e.children.forEach(t)},gu=function(t){for(;t.children.length;){var e=t.children[0];t.remove(e),mu(e)}},vu=[\"objFilter\"];function yu(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.objFilter,i=void 0===r?function(){return!0}:r,o=au(n,vu);return jh(t,e.children.filter(i),(function(t){return e.add(t)}),(function(t){e.remove(t),gu(t)}),$h({objBindAttr:\"__threeObj\"},o))}var xu=function(t){return isNaN(t)?parseInt(Zh(t).toHex(),16):t},_u=function(t){return isNaN(t)?Zh(t).getAlpha():1},bu=function t(){var e=new Sh,n=[],r=[],i=qh;function o(t){let o=e.get(t);if(void 0===o){if(i!==qh)return i;e.set(t,o=n.push(t)-1)}return r[o%r.length]}return o.domain=function(t){if(!arguments.length)return n.slice();n=[],e=new Sh;for(const r of t)e.has(r)||e.set(r,n.push(r)-1);return o},o.range=function(t){return arguments.length?(r=Array.from(t),o):r.slice()},o.unknown=function(t){return arguments.length?(i=t,o):i},o.copy=function(){return t(n,r).unknown(i)},Wh.apply(o,arguments),o}(Xh);function wu(t,e,n){e&&\"string\"==typeof n&&t.filter((function(t){return!t[n]})).forEach((function(t){t[n]=bu(e(t))}))}var Mu=window.THREE?window.THREE:{Group:zi,Mesh:ln,MeshLambertMaterial:ka,Color:Ae,BufferGeometry:Ge,BufferAttribute:Re,Matrix4:kt,Vector3:ot,SphereBufferGeometry:Ia,CylinderBufferGeometry:Oo,TubeBufferGeometry:Na,ConeBufferGeometry:ko,Line:Eo,LineBasicMaterial:xo,QuadraticBezierCurve3:Ko,CubicBezierCurve3:Jo,Box3:lt},Su={graph:mc,forcelayout:gh},Eu=(new Mu.BufferGeometry).setAttribute?\"setAttribute\":\"addAttribute\",Tu=(new Mu.BufferGeometry).applyMatrix4?\"applyMatrix4\":\"applyMatrix\";var Au=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=function(e){eu(i,e);var r=cu(i);function i(){var e;Kh(this,i);for(var o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];return(e=r.call.apply(r,[this].concat(a))).__kapsuleInstance=t().apply(void 0,[].concat(uu(n?[su(e)]:[]),a)),e}return i}(e);return Object.keys(t()).forEach((function(t){return r.prototype[t]=function(){var e,n=(e=this.__kapsuleInstance)[t].apply(e,arguments);return n===this.__kapsuleInstance?this:n}})),r}(wh({props:{jsonUrl:{onChange:function(t,e){var n=this;t&&!e.fetchingJson&&(e.fetchingJson=!0,e.onLoading(),fetch(t).then((function(t){return t.json()})).then((function(t){e.fetchingJson=!1,e.onFinishLoading(t),n.graphData(t)})))},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(t,e){e.engineRunning=!1}},numDimensions:{default:3,onChange:function(t,e){var n=e.d3ForceLayout.force(\"charge\");function r(t,e){t.forEach((function(t){delete t[e],delete t[\"v\".concat(e)]}))}n&&n.strength(t>2?-60:-30),t<3&&r(e.graphData.nodes,\"z\"),t<2&&r(e.graphData.nodes,\"y\")}},dagMode:{onChange:function(t,e){!t&&\"d3\"===e.forceEngine&&(e.graphData.nodes||[]).forEach((function(t){return t.fx=t.fy=t.fz=void 0}))}},dagLevelDistance:{},dagNodeFilter:{default:function(t){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4},nodeId:{default:\"id\"},nodeVal:{default:\"val\"},nodeResolution:{default:8},nodeColor:{default:\"color\"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeVisibility:{default:!0},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},linkSource:{default:\"source\"},linkTarget:{default:\"target\"},linkVisibility:{default:!0},linkColor:{default:\"color\"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{},linkResolution:{default:6},linkCurvature:{default:0,triggerUpdate:!1},linkCurveRotation:{default:0,triggerUpdate:!1},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{triggerUpdate:!1},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},forceEngine:{default:\"d3\"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.alphaDecay(t)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.alphaTarget(t)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(t,e){e.d3ForceLayout.velocityDecay(t)}},ngraphPhysics:{default:{timeStep:20,gravity:-1.2,theta:.8,springLength:30,springCoefficient:8e-4,dragCoefficient:.02}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onLoading:{default:function(){},triggerUpdate:!1},onFinishLoading:{default:function(){},triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1}},methods:{refresh:function(t){return t._flushObjects=!0,t._rerender(),this},d3Force:function(t,e,n){return void 0===n?t.d3ForceLayout.force(e):(t.d3ForceLayout.force(e,n),this)},d3ReheatSimulation:function(t){return t.d3ForceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(t){return t.cntTicks=0,t.startTickTime=new Date,t.engineRunning=!0,this},tickFrame:function(t){var e,n,r,i,o=\"ngraph\"!==t.forceEngine;return t.engineRunning&&function(){++t.cntTicks>t.cooldownTicks||new Date-t.startTickTime>t.cooldownTime||o&&t.d3AlphaMin>0&&t.d3ForceLayout.alpha()<t.d3AlphaMin?(t.engineRunning=!1,t.onEngineStop()):(t.layout[o?\"tick\":\"step\"](),t.onEngineTick());t.graphData.nodes.forEach((function(e){var n=e.__threeObj;if(n){var r=o?e:t.layout.getNodePosition(e[t.nodeId]);n.position.x=r.x,n.position.y=r.y||0,n.position.z=r.z||0}}));var e=Mh(t.linkWidth),n=Mh(t.linkCurvature),r=Mh(t.linkCurveRotation),i=Mh(t.linkThreeObjectExtend);function a(e){var i=o?e:t.layout.getLinkPosition(t.layout.graph.getLink(e.source,e.target).id),a=i[o?\"source\":\"from\"],s=i[o?\"target\":\"to\"];if(a&&s&&a.hasOwnProperty(\"x\")&&s.hasOwnProperty(\"x\")){var l=n(e);if(l){var c,h=new Mu.Vector3(a.x,a.y||0,a.z||0),u=new Mu.Vector3(s.x,s.y||0,s.z||0),d=h.distanceTo(u),p=r(e);if(d>0){var f=s.x-a.x,m=s.y-a.y||0,g=(new Mu.Vector3).subVectors(u,h),v=g.clone().multiplyScalar(l).cross(0!==f||0!==m?new Mu.Vector3(0,0,1):new Mu.Vector3(0,1,0)).applyAxisAngle(g.normalize(),p).add((new Mu.Vector3).addVectors(h,u).divideScalar(2));c=new Mu.QuadraticBezierCurve3(h,v,u)}else{var y=70*l,x=-p,_=x+Math.PI/2;c=new Mu.CubicBezierCurve3(h,new Mu.Vector3(y*Math.cos(_),y*Math.sin(_),0).add(h),new Mu.Vector3(y*Math.cos(x),y*Math.sin(x),0).add(h),u)}e.__curve=c}else e.__curve=null}}t.graphData.links.forEach((function(n){var r=n.__lineObj;if(r){var s=o?n:t.layout.getLinkPosition(t.layout.graph.getLink(n.source,n.target).id),l=s[o?\"source\":\"from\"],c=s[o?\"target\":\"to\"];if(l&&c&&l.hasOwnProperty(\"x\")&&c.hasOwnProperty(\"x\")){a(n);var h=i(n);if(!t.linkPositionUpdate||!t.linkPositionUpdate(h?r.children[1]:r,{start:{x:l.x,y:l.y,z:l.z},end:{x:c.x,y:c.y,z:c.z}},n)||h){var u=30,d=n.__curve,p=r.children.length?r.children[0]:r;if(\"Line\"===p.type){if(d)p.geometry.setFromPoints(d.getPoints(u));else{var f=p.geometry.getAttribute(\"position\");f&&f.array&&6===f.array.length||p.geometry[Eu](\"position\",f=new Mu.BufferAttribute(new Float32Array(6),3)),f.array[0]=l.x,f.array[1]=l.y||0,f.array[2]=l.z||0,f.array[3]=c.x,f.array[4]=c.y||0,f.array[5]=c.z||0,f.needsUpdate=!0}p.geometry.computeBoundingSphere()}else if(\"Mesh\"===p.type)if(d){p.geometry.type.match(/^Tube(Buffer)?Geometry$/)||(p.position.set(0,0,0),p.rotation.set(0,0,0),p.scale.set(1,1,1));var m=Math.ceil(10*e(n))/10/2,g=new Mu.TubeBufferGeometry(d,u,m,t.linkResolution,!1);p.geometry.dispose(),p.geometry=g}else{if(!p.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)){var v=Math.ceil(10*e(n))/10/2,y=new Mu.CylinderBufferGeometry(v,v,1,t.linkResolution,1,!1);y[Tu]((new Mu.Matrix4).makeTranslation(0,.5,0)),y[Tu]((new Mu.Matrix4).makeRotationX(Math.PI/2)),p.geometry.dispose(),p.geometry=y}var x=new Mu.Vector3(l.x,l.y||0,l.z||0),_=new Mu.Vector3(c.x,c.y||0,c.z||0),b=x.distanceTo(_);p.position.x=x.x,p.position.y=x.y,p.position.z=x.z,p.scale.z=b,p.parent.localToWorld(_),p.lookAt(_)}}}}}))}(),e=Mh(t.linkDirectionalArrowRelPos),n=Mh(t.linkDirectionalArrowLength),r=Mh(t.nodeVal),t.graphData.links.forEach((function(i){var a=i.__arrowObj;if(a){var s=o?i:t.layout.getLinkPosition(t.layout.graph.getLink(i.source,i.target).id),l=s[o?\"source\":\"from\"],c=s[o?\"target\":\"to\"];if(l&&c&&l.hasOwnProperty(\"x\")&&c.hasOwnProperty(\"x\")){var h=Math.sqrt(Math.max(0,r(l)||1))*t.nodeRelSize,u=Math.sqrt(Math.max(0,r(c)||1))*t.nodeRelSize,d=n(i),p=e(i),f=i.__curve?function(t){return i.__curve.getPoint(t)}:function(t){var e=function(t,e,n,r){return e[t]+(n[t]-e[t])*r||0};return{x:e(\"x\",l,c,t),y:e(\"y\",l,c,t),z:e(\"z\",l,c,t)}},m=i.__curve?i.__curve.getLength():Math.sqrt([\"x\",\"y\",\"z\"].map((function(t){return Math.pow((c[t]||0)-(l[t]||0),2)})).reduce((function(t,e){return t+e}),0)),g=h+d+(m-h-u-d)*p,v=f(g/m),y=f((g-d)/m);[\"x\",\"y\",\"z\"].forEach((function(t){return a.position[t]=y[t]}));var x=ou(Mu.Vector3,uu([\"x\",\"y\",\"z\"].map((function(t){return v[t]}))));a.parent.localToWorld(x),a.lookAt(x)}}})),i=Mh(t.linkDirectionalParticleSpeed),t.graphData.links.forEach((function(e){var n=e.__photonsObj&&e.__photonsObj.children,r=e.__singleHopPhotonsObj&&e.__singleHopPhotonsObj.children;if(r&&r.length||n&&n.length){var a=o?e:t.layout.getLinkPosition(t.layout.graph.getLink(e.source,e.target).id),s=a[o?\"source\":\"from\"],l=a[o?\"target\":\"to\"];if(s&&l&&s.hasOwnProperty(\"x\")&&l.hasOwnProperty(\"x\")){var c=i(e),h=e.__curve?function(t){return e.__curve.getPoint(t)}:function(t){var e=function(t,e,n,r){return e[t]+(n[t]-e[t])*r||0};return{x:e(\"x\",s,l,t),y:e(\"y\",s,l,t),z:e(\"z\",s,l,t)}};[].concat(uu(n||[]),uu(r||[])).forEach((function(t,e){var r=\"singleHopPhotons\"===t.parent.__linkThreeObjType;if(t.hasOwnProperty(\"__progressRatio\")||(t.__progressRatio=r?0:e/n.length),t.__progressRatio+=c,t.__progressRatio>=1){if(r)return t.parent.remove(t),void gu(t);t.__progressRatio=t.__progressRatio%1}var i=t.__progressRatio,o=h(i);[\"x\",\"y\",\"z\"].forEach((function(e){return t.position[e]=o[e]}))}))}}})),this},emitParticle:function(t,e){if(e){if(!e.__singleHopPhotonsObj){var n=new Mu.Group;n.__linkThreeObjType=\"singleHopPhotons\",e.__singleHopPhotonsObj=n,t.graphScene.add(n)}var r=Mh(t.linkDirectionalParticleWidth),i=Math.ceil(10*r(e))/10/2,o=t.linkDirectionalParticleResolution,a=new Mu.SphereBufferGeometry(i,o,o),s=Mh(t.linkColor),l=Mh(t.linkDirectionalParticleColor)(e)||s(e)||\"#f0f0f0\",c=new Mu.Color(xu(l)),h=3*t.linkOpacity,u=new Mu.MeshLambertMaterial({color:c,transparent:!0,opacity:h});e.__singleHopPhotonsObj.add(new Mu.Mesh(a,u))}return this},getGraphBbox:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};if(!t.initialised)return null;var n=function t(n){var r=[];if(n.geometry){n.geometry.computeBoundingBox();var i=new Mu.Box3;i.copy(n.geometry.boundingBox).applyMatrix4(n.matrixWorld),r.push(i)}return r.concat.apply(r,uu((n.children||[]).filter((function(t){return!t.hasOwnProperty(\"__graphObjType\")||\"node\"===t.__graphObjType&&e(t.__data)})).map(t)))}(t.graphScene);return n.length?Object.assign.apply(Object,uu([\"x\",\"y\",\"z\"].map((function(t){return tu({},t,[Lh(n,(function(e){return e.min[t]})),Ah(n,(function(e){return e.max[t]}))])})))):null}},stateInit:function(){return{d3ForceLayout:dc().force(\"link\",kl()).force(\"charge\",pc()).force(\"center\",sl()).force(\"dagRadial\",null).stop(),engineRunning:!1}},init:function(t,e){e.graphScene=t},update:function(t,e){var n=function(t){return t.some((function(t){return e.hasOwnProperty(t)}))};if(t.engineRunning=!1,t.onUpdate(),null!==t.nodeAutoColorBy&&n([\"nodeAutoColorBy\",\"graphData\",\"nodeColor\"])&&wu(t.graphData.nodes,Mh(t.nodeAutoColorBy),t.nodeColor),null!==t.linkAutoColorBy&&n([\"linkAutoColorBy\",\"graphData\",\"linkColor\"])&&wu(t.graphData.links,Mh(t.linkAutoColorBy),t.linkColor),t._flushObjects||n([\"graphData\",\"nodeThreeObject\",\"nodeThreeObjectExtend\",\"nodeVal\",\"nodeColor\",\"nodeVisibility\",\"nodeRelSize\",\"nodeResolution\",\"nodeOpacity\"])){var r=Mh(t.nodeThreeObject),i=Mh(t.nodeThreeObjectExtend),o=Mh(t.nodeVal),a=Mh(t.nodeColor),s=Mh(t.nodeVisibility),l={},c={};yu(t.graphData.nodes.filter(s),t.graphScene,{purge:t._flushObjects||n([\"nodeThreeObject\",\"nodeThreeObjectExtend\"]),objFilter:function(t){return\"node\"===t.__graphObjType},createObj:function(e){var n,o=r(e),a=i(e);return o&&t.nodeThreeObject===o&&(o=o.clone()),o&&!a?n=o:((n=new Mu.Mesh).__graphDefaultObj=!0,o&&a&&n.add(o)),n.__graphObjType=\"node\",n},updateObj:function(e,n){if(e.__graphDefaultObj){var r=o(n)||1,i=Math.cbrt(r)*t.nodeRelSize,s=t.nodeResolution;e.geometry.type.match(/^Sphere(Buffer)?Geometry$/)&&e.geometry.parameters.radius===i&&e.geometry.parameters.widthSegments===s||(l.hasOwnProperty(r)||(l[r]=new Mu.SphereBufferGeometry(i,s,s)),e.geometry.dispose(),e.geometry=l[r]);var h=a(n),u=new Mu.Color(xu(h||\"#ffffaa\")),d=t.nodeOpacity*_u(h);\"MeshLambertMaterial\"===e.material.type&&e.material.color.equals(u)&&e.material.opacity===d||(c.hasOwnProperty(h)||(c[h]=new Mu.MeshLambertMaterial({color:u,transparent:!0,opacity:d})),e.material.dispose(),e.material=c[h])}}})}if(t._flushObjects||n([\"graphData\",\"linkThreeObject\",\"linkThreeObjectExtend\",\"linkMaterial\",\"linkColor\",\"linkWidth\",\"linkVisibility\",\"linkResolution\",\"linkOpacity\",\"linkDirectionalArrowLength\",\"linkDirectionalArrowColor\",\"linkDirectionalArrowResolution\",\"linkDirectionalParticles\",\"linkDirectionalParticleWidth\",\"linkDirectionalParticleColor\",\"linkDirectionalParticleResolution\"])){var h=Mh(t.linkThreeObject),u=Mh(t.linkThreeObjectExtend),d=Mh(t.linkMaterial),p=Mh(t.linkVisibility),f=Mh(t.linkColor),m=Mh(t.linkWidth),g={},v={},y={},x=t.graphData.links.filter(p);if(yu(x,t.graphScene,{objBindAttr:\"__lineObj\",purge:t._flushObjects||n([\"linkThreeObject\",\"linkThreeObjectExtend\",\"linkWidth\"]),objFilter:function(t){return\"link\"===t.__graphObjType},createObj:function(e){var n,r,i=h(e),o=u(e);if(i&&t.linkThreeObject===i&&(i=i.clone()),!i||o)if(!!m(e))n=new Mu.Mesh;else{var a=new Mu.BufferGeometry;a[Eu](\"position\",new Mu.BufferAttribute(new Float32Array(6),3)),n=new Mu.Line(a)}return i?o?((r=new Mu.Group).__graphDefaultObj=!0,r.add(n),r.add(i)):r=i:(r=n).__graphDefaultObj=!0,r.renderOrder=10,r.__graphObjType=\"link\",r},updateObj:function(e,n){if(e.__graphDefaultObj){var r=e.children.length?e.children[0]:e,i=Math.ceil(10*m(n))/10,o=!!i;if(o){var a=i/2,s=t.linkResolution;if(!r.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)||r.geometry.parameters.radiusTop!==a||r.geometry.parameters.radialSegments!==s){if(!g.hasOwnProperty(i)){var l=new Mu.CylinderBufferGeometry(a,a,1,s,1,!1);l[Tu]((new Mu.Matrix4).makeTranslation(0,.5,0)),l[Tu]((new Mu.Matrix4).makeRotationX(Math.PI/2)),g[i]=l}r.geometry.dispose(),r.geometry=g[i]}}var c=d(n);if(c)r.material=c;else{var h=f(n),u=new Mu.Color(xu(h||\"#f0f0f0\")),p=t.linkOpacity*_u(h),x=o?\"MeshLambertMaterial\":\"LineBasicMaterial\";if(r.material.type!==x||!r.material.color.equals(u)||r.material.opacity!==p){var _=o?v:y;_.hasOwnProperty(h)||(_[h]=new Mu[x]({color:u,transparent:p<1,opacity:p,depthWrite:p>=1})),r.material.dispose(),r.material=_[h]}}}}}),t.linkDirectionalArrowLength||e.hasOwnProperty(\"linkDirectionalArrowLength\")){var _=Mh(t.linkDirectionalArrowLength),b=Mh(t.linkDirectionalArrowColor);yu(x.filter(_),t.graphScene,{objBindAttr:\"__arrowObj\",objFilter:function(t){return\"arrow\"===t.__linkThreeObjType},createObj:function(){var t=new Mu.Mesh(void 0,new Mu.MeshLambertMaterial({transparent:!0}));return t.__linkThreeObjType=\"arrow\",t},updateObj:function(e,n){var r=_(n),i=t.linkDirectionalArrowResolution;if(!e.geometry.type.match(/^Cone(Buffer)?Geometry$/)||e.geometry.parameters.height!==r||e.geometry.parameters.radialSegments!==i){var o=new Mu.ConeBufferGeometry(.25*r,r,i);o.translate(0,r/2,0),o.rotateX(Math.PI/2),e.geometry.dispose(),e.geometry=o}e.material.color=new Mu.Color(b(n)||f(n)||\"#f0f0f0\"),e.material.opacity=3*t.linkOpacity}})}if(t.linkDirectionalParticles||e.hasOwnProperty(\"linkDirectionalParticles\")){var w=Mh(t.linkDirectionalParticles),M=Mh(t.linkDirectionalParticleWidth),S=Mh(t.linkDirectionalParticleColor),E={},T={};yu(x.filter(w),t.graphScene,{objBindAttr:\"__photonsObj\",objFilter:function(t){return\"photons\"===t.__linkThreeObjType},createObj:function(){var t=new Mu.Group;return t.__linkThreeObjType=\"photons\",t},updateObj:function(e,n){var r,i=Math.round(Math.abs(w(n))),o=!!e.children.length&&e.children[0],a=Math.ceil(10*M(n))/10/2,s=t.linkDirectionalParticleResolution;o&&o.geometry.parameters.radius===a&&o.geometry.parameters.widthSegments===s?r=o.geometry:(T.hasOwnProperty(a)||(T[a]=new Mu.SphereBufferGeometry(a,s,s)),r=T[a],o&&o.geometry.dispose());var l,c=S(n)||f(n)||\"#f0f0f0\",h=new Mu.Color(xu(c)),u=3*t.linkOpacity;o&&o.material.color.equals(h)&&o.material.opacity===u?l=o.material:(E.hasOwnProperty(c)||(E[c]=new Mu.MeshLambertMaterial({color:h,transparent:!0,opacity:u})),l=E[c],o&&o.material.dispose()),yu(uu(new Array(i)).map((function(t,e){return{idx:e}})),e,{idAccessor:function(t){return t.idx},createObj:function(){return new Mu.Mesh(r,l)},updateObj:function(t){t.geometry=r,t.material=l}})}})}}if(t._flushObjects=!1,n([\"graphData\",\"nodeId\",\"linkSource\",\"linkTarget\",\"numDimensions\",\"forceEngine\",\"dagMode\",\"dagNodeFilter\",\"dagLevelDistance\"])){t.engineRunning=!1,t.graphData.links.forEach((function(e){e.source=e[t.linkSource],e.target=e[t.linkTarget]}));var A,L=\"ngraph\"!==t.forceEngine;if(L){(A=t.d3ForceLayout).stop().alpha(1).numDimensions(t.numDimensions).nodes(t.graphData.nodes);var C=t.d3ForceLayout.force(\"link\");C&&C.id((function(e){return e[t.nodeId]})).links(t.graphData.links);var P=t.dagMode&&function(t,e){var n=t.nodes,r=t.links,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.nodeFilter,a=void 0===o?function(){return!0}:o,s=i.onLoopError,l=void 0===s?function(t){throw\"Invalid DAG structure! Found cycle in node path: \".concat(t.join(\" -> \"),\".\")}:s,c={};n.forEach((function(t){return c[e(t)]={data:t,out:[],depth:-1,skip:!a(t)}})),r.forEach((function(t){var n=t.source,r=t.target,i=l(n),o=l(r);if(!c.hasOwnProperty(i))throw\"Missing source node with id: \".concat(i);if(!c.hasOwnProperty(o))throw\"Missing target node with id: \".concat(o);var a=c[i],s=c[o];function l(t){return\"object\"===Qh(t)?e(t):t}a.out.push(s)}));var h=[];return u(Object.values(c)),Object.assign.apply(Object,[{}].concat(uu(Object.entries(c).filter((function(t){return!hu(t,2)[1].skip})).map((function(t){var e=hu(t,2);return tu({},e[0],e[1].depth)})))));function u(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=0,o=t.length;i<o;i++){var a=t[i];if(-1!==n.indexOf(a))if(\"continue\"===function(){var t=[].concat(uu(n.slice(n.indexOf(a))),[a]).map((function(t){return e(t.data)}));return h.some((function(e){return e.length===t.length&&e.every((function(e,n){return e===t[n]}))}))||(h.push(t),l(t)),\"continue\"}())continue;r>a.depth&&(a.depth=r,u(a.out,[].concat(uu(n),[a]),r+(a.skip?0:1)))}}}(t.graphData,(function(e){return e[t.nodeId]}),{nodeFilter:t.dagNodeFilter,onLoopError:t.onDagError||void 0}),R=Math.max.apply(Math,uu(Object.values(P||[]))),D=t.dagLevelDistance||t.graphData.nodes.length/(R||1)*2*(-1!==[\"radialin\",\"radialout\"].indexOf(t.dagMode)?.7:1);if(t.dagMode){var I=function(e,n){return function(r){return e?(P[r[t.nodeId]]-R/2)*D*(n?-1:1):void 0}},N=I(-1!==[\"lr\",\"rl\"].indexOf(t.dagMode),\"rl\"===t.dagMode),O=I(-1!==[\"td\",\"bu\"].indexOf(t.dagMode),\"td\"===t.dagMode),k=I(-1!==[\"zin\",\"zout\"].indexOf(t.dagMode),\"zout\"===t.dagMode);t.graphData.nodes.filter(t.dagNodeFilter).forEach((function(t){t.fx=N(t),t.fy=O(t),t.fz=k(t)}))}t.d3ForceLayout.force(\"dagRadial\",-1!==[\"radialin\",\"radialout\"].indexOf(t.dagMode)?function(t,e,n,r){var i,o,a,s,l=Dl(.1);function c(t){for(var l=0,c=i.length;l<c;++l){var h=i[l],u=h.x-e||1e-6,d=(h.y||0)-n||1e-6,p=(h.z||0)-r||1e-6,f=Math.sqrt(u*u+d*d+p*p),m=(s[l]-f)*a[l]*t/f;h.vx+=u*m,o>1&&(h.vy+=d*m),o>2&&(h.vz+=p*m)}}function h(){if(i){var e,n=i.length;for(a=new Array(n),s=new Array(n),e=0;e<n;++e)s[e]=+t(i[e],e,i),a[e]=isNaN(s[e])?0:+l(i[e],e,i)}}return\"function\"!=typeof t&&(t=Dl(+t)),null==e&&(e=0),null==n&&(n=0),null==r&&(r=0),c.initialize=function(t,...e){i=t,o=e.find((t=>[1,2,3].includes(t)))||2,h()},c.strength=function(t){return arguments.length?(l=\"function\"==typeof t?t:Dl(+t),h(),c):l},c.radius=function(e){return arguments.length?(t=\"function\"==typeof e?e:Dl(+e),h(),c):t},c.x=function(t){return arguments.length?(e=+t,c):e},c.y=function(t){return arguments.length?(n=+t,c):n},c.z=function(t){return arguments.length?(r=+t,c):r},c}((function(e){var n=P[e[t.nodeId]]||-1;return(\"radialin\"===t.dagMode?R-n:n)*D})).strength((function(e){return t.dagNodeFilter(e)?1:0})):null)}else{var z=Su.graph();t.graphData.nodes.forEach((function(e){z.addNode(e[t.nodeId])})),t.graphData.links.forEach((function(t){z.addLink(t.source,t.target)})),(A=Su.forcelayout(z,$h({dimensions:t.numDimensions},t.ngraphPhysics))).graph=z}for(var B=0;B<t.warmupTicks&&!(L&&t.d3AlphaMin>0&&t.d3ForceLayout.alpha()<t.d3AlphaMin);B++)A[L?\"tick\":\"step\"]();t.layout=A,this.resetCountdown()}t.engineRunning=!0,t.onFinishUpdate()}}),(window.THREE?window.THREE:{Group:zi}).Group,!0);const Lu={type:\"change\"},Cu={type:\"start\"},Pu={type:\"end\"};class Ru extends F{constructor(t,e){super(),void 0===e&&console.warn('THREE.TrackballControls: The second parameter \"domElement\" is now mandatory.'),e===document&&console.error('THREE.TrackballControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.');const n=this,r=-1,i=0,a=1,s=2,l=3,c=4;this.object=t,this.domElement=e,this.domElement.style.touchAction=\"none\",this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[\"KeyA\",\"KeyS\",\"KeyD\"],this.mouseButtons={LEFT:o.ROTATE,MIDDLE:o.DOLLY,RIGHT:o.PAN},this.target=new ot;const h=1e-6,u=new ot;let d=1,p=r,f=r,m=0,g=0,v=0;const y=new ot,x=new Y,_=new Y,b=new ot,w=new Y,M=new Y,S=new Y,E=new Y,T=[],A={};this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,this.handleResize=function(){const t=n.domElement.getBoundingClientRect(),e=n.domElement.ownerDocument.documentElement;n.screen.left=t.left+window.pageXOffset-e.clientLeft,n.screen.top=t.top+window.pageYOffset-e.clientTop,n.screen.width=t.width,n.screen.height=t.height};const L=function(){const t=new Y;return function(e,r){return t.set((e-n.screen.left)/n.screen.width,(r-n.screen.top)/n.screen.height),t}}(),C=function(){const t=new Y;return function(e,r){return t.set((e-.5*n.screen.width-n.screen.left)/(.5*n.screen.width),(n.screen.height+2*(n.screen.top-r))/n.screen.width),t}}();function P(t){!1!==n.enabled&&(0===T.length&&(n.domElement.ownerDocument.addEventListener(\"pointermove\",R),n.domElement.ownerDocument.addEventListener(\"pointerup\",D)),function(t){T.push(t)}(t),\"touch\"===t.pointerType?function(t){switch(F(t),T.length){case 1:p=l,_.copy(C(T[0].pageX,T[0].pageY)),x.copy(_);break;default:p=c;const t=T[0].pageX-T[1].pageX,e=T[0].pageY-T[1].pageY;g=m=Math.sqrt(t*t+e*e);const n=(T[0].pageX+T[1].pageX)/2,r=(T[0].pageY+T[1].pageY)/2;S.copy(L(n,r)),E.copy(S)}n.dispatchEvent(Cu)}(t):function(t){if(p===r)switch(t.button){case n.mouseButtons.LEFT:p=i;break;case n.mouseButtons.MIDDLE:p=a;break;case n.mouseButtons.RIGHT:p=s;break;default:p=r}const e=f!==r?f:p;e!==i||n.noRotate?e!==a||n.noZoom?e!==s||n.noPan||(S.copy(L(t.pageX,t.pageY)),E.copy(S)):(w.copy(L(t.pageX,t.pageY)),M.copy(w)):(_.copy(C(t.pageX,t.pageY)),x.copy(_));n.domElement.ownerDocument.addEventListener(\"pointermove\",R),n.domElement.ownerDocument.addEventListener(\"pointerup\",D),n.dispatchEvent(Cu)}(t))}function R(t){!1!==n.enabled&&(\"touch\"===t.pointerType?function(t){switch(F(t),T.length){case 1:x.copy(_),_.copy(C(t.pageX,t.pageY));break;default:const e=function(t){const e=t.pointerId===T[0].pointerId?T[1]:T[0];return A[e.pointerId]}(t),n=t.pageX-e.x,r=t.pageY-e.y;g=Math.sqrt(n*n+r*r);const i=(t.pageX+e.x)/2,o=(t.pageY+e.y)/2;E.copy(L(i,o))}}(t):function(t){const e=f!==r?f:p;e!==i||n.noRotate?e!==a||n.noZoom?e!==s||n.noPan||E.copy(L(t.pageX,t.pageY)):M.copy(L(t.pageX,t.pageY)):(x.copy(_),_.copy(C(t.pageX,t.pageY)))}(t))}function D(t){!1!==n.enabled&&(\"touch\"===t.pointerType?function(t){switch(T.length){case 0:p=r;break;case 1:p=l,_.copy(C(t.pageX,t.pageY)),x.copy(_)}n.dispatchEvent(Pu)}(t):(p=r,n.domElement.ownerDocument.removeEventListener(\"pointermove\",R),n.domElement.ownerDocument.removeEventListener(\"pointerup\",D),n.dispatchEvent(Pu)),B(t),0===T.length&&(n.domElement.ownerDocument.removeEventListener(\"pointermove\",R),n.domElement.ownerDocument.removeEventListener(\"pointerup\",D)))}function I(t){B(t)}function N(t){!1!==n.enabled&&(window.removeEventListener(\"keydown\",N),f===r&&(t.code!==n.keys[i]||n.noRotate?t.code!==n.keys[a]||n.noZoom?t.code!==n.keys[s]||n.noPan||(f=s):f=a:f=i))}function O(){!1!==n.enabled&&(f=r,window.addEventListener(\"keydown\",N))}function k(t){if(!1!==n.enabled&&!0!==n.noZoom){switch(t.preventDefault(),t.deltaMode){case 2:w.y-=.025*t.deltaY;break;case 1:w.y-=.01*t.deltaY;break;default:w.y-=25e-5*t.deltaY}n.dispatchEvent(Cu),n.dispatchEvent(Pu)}}function z(t){!1!==n.enabled&&t.preventDefault()}function B(t){delete A[t.pointerId];for(let e=0;e<T.length;e++)if(T[e].pointerId==t.pointerId)return void T.splice(e,1)}function F(t){let e=A[t.pointerId];void 0===e&&(e=new Y,A[t.pointerId]=e),e.set(t.pageX,t.pageY)}this.rotateCamera=function(){const t=new ot,e=new it,r=new ot,i=new ot,o=new ot,a=new ot;return function(){a.set(_.x-x.x,_.y-x.y,0);let s=a.length();s?(y.copy(n.object.position).sub(n.target),r.copy(y).normalize(),i.copy(n.object.up).normalize(),o.crossVectors(i,r).normalize(),i.setLength(_.y-x.y),o.setLength(_.x-x.x),a.copy(i.add(o)),t.crossVectors(a,y).normalize(),s*=n.rotateSpeed,e.setFromAxisAngle(t,s),y.applyQuaternion(e),n.object.up.applyQuaternion(e),b.copy(t),v=s):!n.staticMoving&&v&&(v*=Math.sqrt(1-n.dynamicDampingFactor),y.copy(n.object.position).sub(n.target),e.setFromAxisAngle(b,v),y.applyQuaternion(e),n.object.up.applyQuaternion(e)),x.copy(_)}}(),this.zoomCamera=function(){let t;p===c?(t=m/g,m=g,n.object.isPerspectiveCamera?y.multiplyScalar(t):n.object.isOrthographicCamera?(n.object.zoom*=t,n.object.updateProjectionMatrix()):console.warn(\"THREE.TrackballControls: Unsupported camera type\")):(t=1+(M.y-w.y)*n.zoomSpeed,1!==t&&t>0&&(n.object.isPerspectiveCamera?y.multiplyScalar(t):n.object.isOrthographicCamera?(n.object.zoom/=t,n.object.updateProjectionMatrix()):console.warn(\"THREE.TrackballControls: Unsupported camera type\")),n.staticMoving?w.copy(M):w.y+=(M.y-w.y)*this.dynamicDampingFactor)},this.panCamera=function(){const t=new Y,e=new ot,r=new ot;return function(){if(t.copy(E).sub(S),t.lengthSq()){if(n.object.isOrthographicCamera){const e=(n.object.right-n.object.left)/n.object.zoom/n.domElement.clientWidth,r=(n.object.top-n.object.bottom)/n.object.zoom/n.domElement.clientWidth;t.x*=e,t.y*=r}t.multiplyScalar(y.length()*n.panSpeed),r.copy(y).cross(n.object.up).setLength(t.x),r.add(e.copy(n.object.up).setLength(t.y)),n.object.position.add(r),n.target.add(r),n.staticMoving?S.copy(E):S.add(t.subVectors(E,S).multiplyScalar(n.dynamicDampingFactor))}}}(),this.checkDistances=function(){n.noZoom&&n.noPan||(y.lengthSq()>n.maxDistance*n.maxDistance&&(n.object.position.addVectors(n.target,y.setLength(n.maxDistance)),w.copy(M)),y.lengthSq()<n.minDistance*n.minDistance&&(n.object.position.addVectors(n.target,y.setLength(n.minDistance)),w.copy(M)))},this.update=function(){y.subVectors(n.object.position,n.target),n.noRotate||n.rotateCamera(),n.noZoom||n.zoomCamera(),n.noPan||n.panCamera(),n.object.position.addVectors(n.target,y),n.object.isPerspectiveCamera?(n.checkDistances(),n.object.lookAt(n.target),u.distanceToSquared(n.object.position)>h&&(n.dispatchEvent(Lu),u.copy(n.object.position))):n.object.isOrthographicCamera?(n.object.lookAt(n.target),(u.distanceToSquared(n.object.position)>h||d!==n.object.zoom)&&(n.dispatchEvent(Lu),u.copy(n.object.position),d=n.object.zoom)):console.warn(\"THREE.TrackballControls: Unsupported camera type\")},this.reset=function(){p=r,f=r,n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.up.copy(n.up0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),y.subVectors(n.object.position,n.target),n.object.lookAt(n.target),n.dispatchEvent(Lu),u.copy(n.object.position),d=n.object.zoom},this.dispose=function(){n.domElement.removeEventListener(\"contextmenu\",z),n.domElement.removeEventListener(\"pointerdown\",P),n.domElement.removeEventListener(\"pointercancel\",I),n.domElement.removeEventListener(\"wheel\",k),window.removeEventListener(\"keydown\",N),window.removeEventListener(\"keyup\",O)},this.domElement.addEventListener(\"contextmenu\",z),this.domElement.addEventListener(\"pointerdown\",P),this.domElement.addEventListener(\"pointercancel\",I),this.domElement.addEventListener(\"wheel\",k,{passive:!1}),window.addEventListener(\"keydown\",N),window.addEventListener(\"keyup\",O),this.handleResize(),this.update()}}const Du={type:\"change\"},Iu={type:\"start\"},Nu={type:\"end\"};class Ou extends F{constructor(t,e){super(),void 0===e&&console.warn('THREE.OrbitControls: The second parameter \"domElement\" is now mandatory.'),e===document&&console.error('THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.'),this.object=t,this.domElement=e,this.domElement.style.touchAction=\"none\",this.enabled=!0,this.target=new ot,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:\"ArrowLeft\",UP:\"ArrowUp\",RIGHT:\"ArrowRight\",BOTTOM:\"ArrowDown\"},this.mouseButtons={LEFT:o.ROTATE,MIDDLE:o.DOLLY,RIGHT:o.PAN},this.touches={ONE:a,TWO:l},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return u.phi},this.getAzimuthalAngle=function(){return u.theta},this.listenToKeyEvents=function(t){t.addEventListener(\"keydown\",Z),this._domElementKeyEvents=t},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(Du),n.update(),i=r.NONE},this.update=function(){const e=new ot,o=(new it).setFromUnitVectors(t.up,new ot(0,1,0)),a=o.clone().invert(),s=new ot,l=new it,c=2*Math.PI;return function(){const t=n.object.position;e.copy(t).sub(n.target),e.applyQuaternion(o),u.setFromVector3(e),n.autoRotate&&i===r.NONE&&L(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping?(u.theta+=d.theta*n.dampingFactor,u.phi+=d.phi*n.dampingFactor):(u.theta+=d.theta,u.phi+=d.phi);let g=n.minAzimuthAngle,v=n.maxAzimuthAngle;return isFinite(g)&&isFinite(v)&&(g<-Math.PI?g+=c:g>Math.PI&&(g-=c),v<-Math.PI?v+=c:v>Math.PI&&(v-=c),u.theta=g<=v?Math.max(g,Math.min(v,u.theta)):u.theta>(g+v)/2?Math.max(g,u.theta):Math.min(v,u.theta)),u.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,u.phi)),u.makeSafe(),u.radius*=p,u.radius=Math.max(n.minDistance,Math.min(n.maxDistance,u.radius)),!0===n.enableDamping?n.target.addScaledVector(f,n.dampingFactor):n.target.add(f),e.setFromSpherical(u),e.applyQuaternion(a),t.copy(n.target).add(e),n.object.lookAt(n.target),!0===n.enableDamping?(d.theta*=1-n.dampingFactor,d.phi*=1-n.dampingFactor,f.multiplyScalar(1-n.dampingFactor)):(d.set(0,0,0),f.set(0,0,0)),p=1,!!(m||s.distanceToSquared(n.object.position)>h||8*(1-l.dot(n.object.quaternion))>h)&&(n.dispatchEvent(Du),s.copy(n.object.position),l.copy(n.object.quaternion),m=!1,!0)}}(),this.dispose=function(){n.domElement.removeEventListener(\"contextmenu\",J),n.domElement.removeEventListener(\"pointerdown\",G),n.domElement.removeEventListener(\"pointercancel\",q),n.domElement.removeEventListener(\"wheel\",X),n.domElement.ownerDocument.removeEventListener(\"pointermove\",j),n.domElement.ownerDocument.removeEventListener(\"pointerup\",W),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener(\"keydown\",Z)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let i=r.NONE;const h=1e-6,u=new qs,d=new qs;let p=1;const f=new ot;let m=!1;const g=new Y,v=new Y,y=new Y,x=new Y,_=new Y,b=new Y,w=new Y,M=new Y,S=new Y,E=[],T={};function A(){return Math.pow(.95,n.zoomSpeed)}function L(t){d.theta-=t}function C(t){d.phi-=t}const P=function(){const t=new ot;return function(e,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-e),f.add(t)}}(),R=function(){const t=new ot;return function(e,r){!0===n.screenSpacePanning?t.setFromMatrixColumn(r,1):(t.setFromMatrixColumn(r,0),t.crossVectors(n.object.up,t)),t.multiplyScalar(e),f.add(t)}}(),D=function(){const t=new ot;return function(e,r){const i=n.domElement;if(n.object.isPerspectiveCamera){const o=n.object.position;t.copy(o).sub(n.target);let a=t.length();a*=Math.tan(n.object.fov/2*Math.PI/180),P(2*e*a/i.clientHeight,n.object.matrix),R(2*r*a/i.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(P(e*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),R(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"),n.enablePan=!1)}}();function I(t){n.object.isPerspectiveCamera?p/=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom*t)),n.object.updateProjectionMatrix(),m=!0):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),n.enableZoom=!1)}function N(t){n.object.isPerspectiveCamera?p*=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/t)),n.object.updateProjectionMatrix(),m=!0):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),n.enableZoom=!1)}function O(t){g.set(t.clientX,t.clientY)}function k(t){x.set(t.clientX,t.clientY)}function z(){if(1===E.length)g.set(E[0].pageX,E[0].pageY);else{const t=.5*(E[0].pageX+E[1].pageX),e=.5*(E[0].pageY+E[1].pageY);g.set(t,e)}}function B(){if(1===E.length)x.set(E[0].pageX,E[0].pageY);else{const t=.5*(E[0].pageX+E[1].pageX),e=.5*(E[0].pageY+E[1].pageY);x.set(t,e)}}function F(){const t=E[0].pageX-E[1].pageX,e=E[0].pageY-E[1].pageY,n=Math.sqrt(t*t+e*e);w.set(0,n)}function U(t){if(1==E.length)v.set(t.pageX,t.pageY);else{const e=K(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);v.set(n,r)}y.subVectors(v,g).multiplyScalar(n.rotateSpeed);const e=n.domElement;L(2*Math.PI*y.x/e.clientHeight),C(2*Math.PI*y.y/e.clientHeight),g.copy(v)}function H(t){if(1===E.length)_.set(t.pageX,t.pageY);else{const e=K(t),n=.5*(t.pageX+e.x),r=.5*(t.pageY+e.y);_.set(n,r)}b.subVectors(_,x).multiplyScalar(n.panSpeed),D(b.x,b.y),x.copy(_)}function V(t){const e=K(t),r=t.pageX-e.x,i=t.pageY-e.y,o=Math.sqrt(r*r+i*i);M.set(0,o),S.set(0,Math.pow(M.y/w.y,n.zoomSpeed)),I(S.y),w.copy(M)}function G(t){!1!==n.enabled&&(0===E.length&&(n.domElement.ownerDocument.addEventListener(\"pointermove\",j),n.domElement.ownerDocument.addEventListener(\"pointerup\",W)),function(t){E.push(t)}(t),\"touch\"===t.pointerType?function(t){switch(Q(t),E.length){case 1:switch(n.touches.ONE){case a:if(!1===n.enableRotate)return;z(),i=r.TOUCH_ROTATE;break;case s:if(!1===n.enablePan)return;B(),i=r.TOUCH_PAN;break;default:i=r.NONE}break;case 2:switch(n.touches.TWO){case l:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&F(),n.enablePan&&B(),i=r.TOUCH_DOLLY_PAN;break;case c:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&F(),n.enableRotate&&z(),i=r.TOUCH_DOLLY_ROTATE;break;default:i=r.NONE}break;default:i=r.NONE}i!==r.NONE&&n.dispatchEvent(Iu)}(t):function(t){let e;switch(t.button){case 0:e=n.mouseButtons.LEFT;break;case 1:e=n.mouseButtons.MIDDLE;break;case 2:e=n.mouseButtons.RIGHT;break;default:e=-1}switch(e){case o.DOLLY:if(!1===n.enableZoom)return;!function(t){w.set(t.clientX,t.clientY)}(t),i=r.DOLLY;break;case o.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enablePan)return;k(t),i=r.PAN}else{if(!1===n.enableRotate)return;O(t),i=r.ROTATE}break;case o.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enableRotate)return;O(t),i=r.ROTATE}else{if(!1===n.enablePan)return;k(t),i=r.PAN}break;default:i=r.NONE}i!==r.NONE&&n.dispatchEvent(Iu)}(t))}function j(t){!1!==n.enabled&&(\"touch\"===t.pointerType?function(t){switch(Q(t),i){case r.TOUCH_ROTATE:if(!1===n.enableRotate)return;U(t),n.update();break;case r.TOUCH_PAN:if(!1===n.enablePan)return;H(t),n.update();break;case r.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(t){n.enableZoom&&V(t),n.enablePan&&H(t)}(t),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(t){n.enableZoom&&V(t),n.enableRotate&&U(t)}(t),n.update();break;default:i=r.NONE}}(t):function(t){if(!1===n.enabled)return;switch(i){case r.ROTATE:if(!1===n.enableRotate)return;!function(t){v.set(t.clientX,t.clientY),y.subVectors(v,g).multiplyScalar(n.rotateSpeed);const e=n.domElement;L(2*Math.PI*y.x/e.clientHeight),C(2*Math.PI*y.y/e.clientHeight),g.copy(v),n.update()}(t);break;case r.DOLLY:if(!1===n.enableZoom)return;!function(t){M.set(t.clientX,t.clientY),S.subVectors(M,w),S.y>0?I(A()):S.y<0&&N(A()),w.copy(M),n.update()}(t);break;case r.PAN:if(!1===n.enablePan)return;!function(t){_.set(t.clientX,t.clientY),b.subVectors(_,x).multiplyScalar(n.panSpeed),D(b.x,b.y),x.copy(_),n.update()}(t)}}(t))}function W(t){!1!==n.enabled&&(t.pointerType,n.dispatchEvent(Nu),i=r.NONE,$(t),0===E.length&&(n.domElement.ownerDocument.removeEventListener(\"pointermove\",j),n.domElement.ownerDocument.removeEventListener(\"pointerup\",W)))}function q(t){$(t)}function X(t){!1===n.enabled||!1===n.enableZoom||i!==r.NONE&&i!==r.ROTATE||(t.preventDefault(),n.dispatchEvent(Iu),function(t){t.deltaY<0?N(A()):t.deltaY>0&&I(A()),n.update()}(t),n.dispatchEvent(Nu))}function Z(t){!1!==n.enabled&&!1!==n.enablePan&&function(t){let e=!1;switch(t.code){case n.keys.UP:D(0,n.keyPanSpeed),e=!0;break;case n.keys.BOTTOM:D(0,-n.keyPanSpeed),e=!0;break;case n.keys.LEFT:D(n.keyPanSpeed,0),e=!0;break;case n.keys.RIGHT:D(-n.keyPanSpeed,0),e=!0}e&&(t.preventDefault(),n.update())}(t)}function J(t){!1!==n.enabled&&t.preventDefault()}function $(t){delete T[t.pointerId];for(let e=0;e<E.length;e++)if(E[e].pointerId==t.pointerId)return void E.splice(e,1)}function Q(t){let e=T[t.pointerId];void 0===e&&(e=new Y,T[t.pointerId]=e),e.set(t.pageX,t.pageY)}function K(t){const e=t.pointerId===E[0].pointerId?E[1]:E[0];return T[e.pointerId]}n.domElement.addEventListener(\"contextmenu\",J),n.domElement.addEventListener(\"pointerdown\",G),n.domElement.addEventListener(\"pointercancel\",q),n.domElement.addEventListener(\"wheel\",X,{passive:!1}),this.update()}}const ku={type:\"change\"};class zu extends F{constructor(t,e){super(),void 0===e&&(console.warn('THREE.FlyControls: The second parameter \"domElement\" is now mandatory.'),e=document),this.object=t,this.domElement=e,this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1;const n=this,r=1e-6,i=new it,o=new ot;this.tmpQuaternion=new it,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new ot(0,0,0),this.rotationVector=new ot(0,0,0),this.keydown=function(t){if(!t.altKey){switch(t.code){case\"ShiftLeft\":case\"ShiftRight\":this.movementSpeedMultiplier=.1;break;case\"KeyW\":this.moveState.forward=1;break;case\"KeyS\":this.moveState.back=1;break;case\"KeyA\":this.moveState.left=1;break;case\"KeyD\":this.moveState.right=1;break;case\"KeyR\":this.moveState.up=1;break;case\"KeyF\":this.moveState.down=1;break;case\"ArrowUp\":this.moveState.pitchUp=1;break;case\"ArrowDown\":this.moveState.pitchDown=1;break;case\"ArrowLeft\":this.moveState.yawLeft=1;break;case\"ArrowRight\":this.moveState.yawRight=1;break;case\"KeyQ\":this.moveState.rollLeft=1;break;case\"KeyE\":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(t){switch(t.code){case\"ShiftLeft\":case\"ShiftRight\":this.movementSpeedMultiplier=1;break;case\"KeyW\":this.moveState.forward=0;break;case\"KeyS\":this.moveState.back=0;break;case\"KeyA\":this.moveState.left=0;break;case\"KeyD\":this.moveState.right=0;break;case\"KeyR\":this.moveState.up=0;break;case\"KeyF\":this.moveState.down=0;break;case\"ArrowUp\":this.moveState.pitchUp=0;break;case\"ArrowDown\":this.moveState.pitchDown=0;break;case\"ArrowLeft\":this.moveState.yawLeft=0;break;case\"ArrowRight\":this.moveState.yawRight=0;break;case\"KeyQ\":this.moveState.rollLeft=0;break;case\"KeyE\":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(t){if(this.dragToLook)this.mouseStatus++;else{switch(t.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(t){if(!this.dragToLook||this.mouseStatus>0){const e=this.getContainerDimensions(),n=e.size[0]/2,r=e.size[1]/2;this.moveState.yawLeft=-(t.pageX-e.offset[0]-n)/n,this.moveState.pitchDown=(t.pageY-e.offset[1]-r)/r,this.updateRotationVector()}},this.mouseup=function(t){if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(t.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(t){const e=t*n.movementSpeed,a=t*n.rollSpeed;n.object.translateX(n.moveVector.x*e),n.object.translateY(n.moveVector.y*e),n.object.translateZ(n.moveVector.z*e),n.tmpQuaternion.set(n.rotationVector.x*a,n.rotationVector.y*a,n.rotationVector.z*a,1).normalize(),n.object.quaternion.multiply(n.tmpQuaternion),(o.distanceToSquared(n.object.position)>r||8*(1-i.dot(n.object.quaternion))>r)&&(n.dispatchEvent(ku),i.copy(n.object.quaternion),o.copy(n.object.position))},this.updateMovementVector=function(){const t=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-t+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener(\"contextmenu\",Bu),this.domElement.removeEventListener(\"mousedown\",s),this.domElement.removeEventListener(\"mousemove\",a),this.domElement.removeEventListener(\"mouseup\",l),window.removeEventListener(\"keydown\",c),window.removeEventListener(\"keyup\",h)};const a=this.mousemove.bind(this),s=this.mousedown.bind(this),l=this.mouseup.bind(this),c=this.keydown.bind(this),h=this.keyup.bind(this);this.domElement.addEventListener(\"contextmenu\",Bu),this.domElement.addEventListener(\"mousemove\",a),this.domElement.addEventListener(\"mousedown\",s),this.domElement.addEventListener(\"mouseup\",l),window.addEventListener(\"keydown\",c),window.addEventListener(\"keyup\",h),this.updateMovementVector(),this.updateRotationVector()}}function Bu(t){t.preventDefault()}var Fu={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:\"\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvUv = uv;\\n\\t\\t\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n\\n\\t\\t}\",fragmentShader:\"\\n\\n\\t\\tuniform float opacity;\\n\\n\\t\\tuniform sampler2D tDiffuse;\\n\\n\\t\\tvarying vec2 vUv;\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvec4 texel = texture2D( tDiffuse, vUv );\\n\\t\\t\\tgl_FragColor = opacity * texel;\\n\\n\\t\\t}\"};class Uu{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error(\"THREE.Pass: .render() must be implemented in derived pass.\")}}const Hu=new xs(-1,1,1,-1,0,1),Vu=new Ge;Vu.setAttribute(\"position\",new Ne([-1,3,0,-1,-1,0,3,-1,0],3)),Vu.setAttribute(\"uv\",new Ne([0,2,0,0,2,0],2));class Gu{constructor(t){this._mesh=new ln(Vu,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,Hu)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class ju extends Uu{constructor(t,e){super(),this.textureID=void 0!==e?e:\"tDiffuse\",t instanceof fn?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=pn.clone(t.uniforms),this.material=new fn({defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new Gu(this.material)}render(t,e,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}}class Wu extends Uu{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,n){const r=t.getContext(),i=t.state;let o,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(o=0,a=1):(o=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),i.buffers.stencil.setFunc(r.ALWAYS,o,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(r.EQUAL,1,4294967295),i.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),i.buffers.stencil.setLocked(!0)}}class qu extends Uu{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}class Xu{constructor(t,e){if(this.renderer=t,void 0===e){const n={minFilter:m,magFilter:m,format:S},r=t.getSize(new Y);this._pixelRatio=t.getPixelRatio(),this._width=r.width,this._height=r.height,(e=new nt(this._width*this._pixelRatio,this._height*this._pixelRatio,n)).texture.name=\"EffectComposer.rt1\"}else this._pixelRatio=1,this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name=\"EffectComposer.rt2\",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===Fu&&console.error(\"THREE.EffectComposer relies on CopyShader\"),void 0===ju&&console.error(\"THREE.EffectComposer relies on ShaderPass\"),this.copyPass=new ju(Fu),this.clock=new Ls}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;e<this.passes.length;e++)if(this.passes[e].enabled)return!1;return!0}render(t){void 0===t&&(t=this.clock.getDelta());const e=this.renderer.getRenderTarget();let n=!1;for(let e=0,r=this.passes.length;e<r;e++){const r=this.passes[e];if(!1!==r.enabled){if(r.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(e),r.render(this.renderer,this.writeBuffer,this.readBuffer,t,n),r.needsSwap){if(n){const e=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(e.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,t),n.setFunc(e.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==Wu&&(r instanceof Wu?n=!0:r instanceof qu&&(n=!1))}}this.renderer.setRenderTarget(e)}reset(t){if(void 0===t){const e=this.renderer.getSize(new Y);this._pixelRatio=this.renderer.getPixelRatio(),this._width=e.width,this._height=e.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(t,e){this._width=t,this._height=e;const n=this._width*this._pixelRatio,r=this._height*this._pixelRatio;this.renderTarget1.setSize(n,r),this.renderTarget2.setSize(n,r);for(let t=0;t<this.passes.length;t++)this.passes[t].setSize(n,r)}setPixelRatio(t){this._pixelRatio=t,this.setSize(this._width,this._height)}}new xs(-1,1,1,-1,0,1);const Yu=new Ge;Yu.setAttribute(\"position\",new Ne([-1,3,0,-1,-1,0,3,-1,0],3)),Yu.setAttribute(\"uv\",new Ne([0,2,0,0,2,0],2));class Zu extends Uu{constructor(t,e,n,r,i){super(),this.scene=t,this.camera=e,this.overrideMaterial=n,this.clearColor=r,this.clearAlpha=void 0!==i?i:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Ae}render(t,e,n){const r=t.autoClear;let i,o;t.autoClear=!1,void 0!==this.overrideMaterial&&(o=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(t.getClearColor(this._oldClearColor),i=t.getClearAlpha(),t.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:n),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),this.clearColor&&t.setClearColor(this._oldClearColor,i),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=o),t.autoClear=r}}function Ju(){return(Ju=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function $u(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function Qu(t,e){return(Qu=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function Ku(t){return(Ku=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function td(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function ed(t,e,n){return(ed=td()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&Qu(i,n.prototype),i}).apply(null,arguments)}function nd(t){var e=\"function\"==typeof Map?new Map:void 0;return(nd=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf(\"[native code]\")))return t;var n;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return ed(t,arguments,Ku(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Qu(r,t)})(t)}var rd={1:\"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",2:\"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",3:\"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",4:\"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",5:\"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",6:\"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",7:\"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",8:\"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",9:\"Please provide a number of steps to the modularScale helper.\\n\\n\",10:\"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",11:'Invalid value passed as base to modularScale, expected number or em string but got \"%s\"\\n\\n',12:'Expected a string ending in \"px\" or a number passed as the first argument to %s(), got \"%s\" instead.\\n\\n',13:'Expected a string ending in \"px\" or a number passed as the second argument to %s(), got \"%s\" instead.\\n\\n',14:'Passed invalid pixel value (\"%s\") to %s(), please pass a value like \"12px\" or 12.\\n\\n',15:'Passed invalid base value (\"%s\") to %s(), please pass a value like \"12px\" or 12.\\n\\n',16:\"You must provide a template to this method.\\n\\n\",17:\"You passed an unsupported selector state to this method.\\n\\n\",18:\"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",19:\"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",20:\"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",21:\"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",22:\"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",23:\"fontFace expects a name of a font-family.\\n\\n\",24:\"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",25:\"fontFace expects localFonts to be an array.\\n\\n\",26:\"fontFace expects fileFormats to be an array.\\n\\n\",27:\"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",28:\"Please supply a filename to retinaImage() as the first argument.\\n\\n\",29:\"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",30:\"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",31:\"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",32:\"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",33:\"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",34:\"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",35:'borderRadius expects one of \"top\", \"bottom\", \"left\" or \"right\" as the first argument.\\n\\n',36:\"Property must be a string value.\\n\\n\",37:\"Syntax Error at %s.\\n\\n\",38:\"Formula contains a function that needs parentheses at %s.\\n\\n\",39:\"Formula is missing closing parenthesis at %s.\\n\\n\",40:\"Formula has too many closing parentheses at %s.\\n\\n\",41:\"All values in a formula must have the same unit or be unitless.\\n\\n\",42:\"Please provide a number of steps to the modularScale helper.\\n\\n\",43:\"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",44:\"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",45:\"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",46:\"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",47:\"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",48:\"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",49:\"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",50:\"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",51:\"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",52:\"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",53:\"fontFace expects localFonts to be an array.\\n\\n\",54:\"fontFace expects fileFormats to be an array.\\n\\n\",55:\"fontFace expects a name of a font-family.\\n\\n\",56:\"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",57:\"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",58:\"Please supply a filename to retinaImage() as the first argument.\\n\\n\",59:\"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",60:\"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",61:\"Property must be a string value.\\n\\n\",62:\"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",63:'borderRadius expects one of \"top\", \"bottom\", \"left\" or \"right\" as the first argument.\\n\\n',64:\"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",65:\"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",66:\"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",67:\"You must provide a template to this method.\\n\\n\",68:\"You passed an unsupported selector state to this method.\\n\\n\",69:'Expected a string ending in \"px\" or a number passed as the first argument to %s(), got %s instead.\\n\\n',70:'Expected a string ending in \"px\" or a number passed as the second argument to %s(), got %s instead.\\n\\n',71:'Passed invalid pixel value %s to %s(), please pass a value like \"12px\" or 12.\\n\\n',72:'Passed invalid base value %s to %s(), please pass a value like \"12px\" or 12.\\n\\n',73:\"Please provide a valid CSS variable.\\n\\n\",74:\"CSS variable not found and no default was provided.\\n\\n\",75:\"important requires a valid style object, got a %s instead.\\n\\n\",76:\"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",77:'remToPx expects a value in \"rem\" but you provided it in \"%s\".\\n\\n',78:'base must be set in \"px\" or \"%\" but you set it in \"%s\".\\n'};function id(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var r,i=e[0],o=[];for(r=1;r<e.length;r+=1)o.push(e[r]);return o.forEach((function(t){i=i.replace(/%[a-z]/,t)})),i}var od=function(t){var e,n;function r(e){var n;if(\"production\"===process.env.NODE_ENV)n=t.call(this,\"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\"+e+\" for more information.\")||this;else{for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];n=t.call(this,id.apply(void 0,[rd[e]].concat(i)))||this}return $u(n)}return n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,Qu(e,n),r}(nd(Error));function ad(t){return Math.round(255*t)}function sd(t,e,n){return ad(t)+\",\"+ad(e)+\",\"+ad(n)}function ld(t,e,n,r){if(void 0===r&&(r=sd),0===e)return r(n,n,n);var i=(t%360+360)%360/60,o=(1-Math.abs(2*n-1))*e,a=o*(1-Math.abs(i%2-1)),s=0,l=0,c=0;i>=0&&i<1?(s=o,l=a):i>=1&&i<2?(s=a,l=o):i>=2&&i<3?(l=o,c=a):i>=3&&i<4?(l=a,c=o):i>=4&&i<5?(s=a,c=o):i>=5&&i<6&&(s=o,c=a);var h=n-o/2;return r(s+h,l+h,c+h)}var cd={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"639\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"};var hd=/^#[a-fA-F0-9]{6}$/,ud=/^#[a-fA-F0-9]{8}$/,dd=/^#[a-fA-F0-9]{3}$/,pd=/^#[a-fA-F0-9]{4}$/,fd=/^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i,md=/^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i,gd=/^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i,vd=/^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;function yd(t){if(\"string\"!=typeof t)throw new od(3);var e=function(t){if(\"string\"!=typeof t)return t;var e=t.toLowerCase();return cd[e]?\"#\"+cd[e]:t}(t);if(e.match(hd))return{red:parseInt(\"\"+e[1]+e[2],16),green:parseInt(\"\"+e[3]+e[4],16),blue:parseInt(\"\"+e[5]+e[6],16)};if(e.match(ud)){var n=parseFloat((parseInt(\"\"+e[7]+e[8],16)/255).toFixed(2));return{red:parseInt(\"\"+e[1]+e[2],16),green:parseInt(\"\"+e[3]+e[4],16),blue:parseInt(\"\"+e[5]+e[6],16),alpha:n}}if(e.match(dd))return{red:parseInt(\"\"+e[1]+e[1],16),green:parseInt(\"\"+e[2]+e[2],16),blue:parseInt(\"\"+e[3]+e[3],16)};if(e.match(pd)){var r=parseFloat((parseInt(\"\"+e[4]+e[4],16)/255).toFixed(2));return{red:parseInt(\"\"+e[1]+e[1],16),green:parseInt(\"\"+e[2]+e[2],16),blue:parseInt(\"\"+e[3]+e[3],16),alpha:r}}var i=fd.exec(e);if(i)return{red:parseInt(\"\"+i[1],10),green:parseInt(\"\"+i[2],10),blue:parseInt(\"\"+i[3],10)};var o=md.exec(e.substring(0,50));if(o)return{red:parseInt(\"\"+o[1],10),green:parseInt(\"\"+o[2],10),blue:parseInt(\"\"+o[3],10),alpha:parseFloat(\"\"+o[4])};var a=gd.exec(e);if(a){var s=\"rgb(\"+ld(parseInt(\"\"+a[1],10),parseInt(\"\"+a[2],10)/100,parseInt(\"\"+a[3],10)/100)+\")\",l=fd.exec(s);if(!l)throw new od(4,e,s);return{red:parseInt(\"\"+l[1],10),green:parseInt(\"\"+l[2],10),blue:parseInt(\"\"+l[3],10)}}var c=vd.exec(e.substring(0,50));if(c){var h=\"rgb(\"+ld(parseInt(\"\"+c[1],10),parseInt(\"\"+c[2],10)/100,parseInt(\"\"+c[3],10)/100)+\")\",u=fd.exec(h);if(!u)throw new od(4,e,h);return{red:parseInt(\"\"+u[1],10),green:parseInt(\"\"+u[2],10),blue:parseInt(\"\"+u[3],10),alpha:parseFloat(\"\"+c[4])}}throw new od(5)}var xd=function(t){return 7===t.length&&t[1]===t[2]&&t[3]===t[4]&&t[5]===t[6]?\"#\"+t[1]+t[3]+t[5]:t};function _d(t){var e=t.toString(16);return 1===e.length?\"0\"+e:e}function bd(t,e,n){if(\"number\"==typeof t&&\"number\"==typeof e&&\"number\"==typeof n)return xd(\"#\"+_d(t)+_d(e)+_d(n));if(\"object\"==typeof t&&void 0===e&&void 0===n)return xd(\"#\"+_d(t.red)+_d(t.green)+_d(t.blue));throw new od(6)}function wd(t,e,n){return function(){var r=n.concat(Array.prototype.slice.call(arguments));return r.length>=e?t.apply(this,r):wd(t,e,r)}}function Md(t){return wd(t,t.length,[])}function Sd(t,e){if(\"transparent\"===e)return e;var n,r,i,o=yd(e),a=\"number\"==typeof o.alpha?o.alpha:1;return function(t,e,n,r){if(\"string\"==typeof t&&\"number\"==typeof e){var i=yd(t);return\"rgba(\"+i.red+\",\"+i.green+\",\"+i.blue+\",\"+e+\")\"}if(\"number\"==typeof t&&\"number\"==typeof e&&\"number\"==typeof n&&\"number\"==typeof r)return r>=1?bd(t,e,n):\"rgba(\"+t+\",\"+e+\",\"+n+\",\"+r+\")\";if(\"object\"==typeof t&&void 0===e&&void 0===n&&void 0===r)return t.alpha>=1?bd(t.red,t.green,t.blue):\"rgba(\"+t.red+\",\"+t.green+\",\"+t.blue+\",\"+t.alpha+\")\";throw new od(7)}(Ju({},o,{alpha:(n=0,r=1,i=(100*a+100*parseFloat(t))/100,Math.max(n,Math.min(r,i)))}))}var Ed=Md(Sd),Td={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}},Back:{In:function(t){var e=1.70158;return t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)}},Bounce:{In:function(t){return 1-Td.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*Td.Bounce.In(2*t):.5*Td.Bounce.Out(2*t-1)+.5}}},Ad=\"undefined\"==typeof self&&\"undefined\"!=typeof process&&process.hrtime?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:\"undefined\"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},Ld=function(){function t(){this._tweens={},this._tweensAddedDuringUpdate={}}return t.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map((function(e){return t._tweens[e]}))},t.prototype.removeAll=function(){this._tweens={}},t.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},t.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},t.prototype.update=function(t,e){void 0===t&&(t=Ad()),void 0===e&&(e=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<n.length;r++){var i=this._tweens[n[r]],o=!e;i&&!1===i.update(t,o)&&!e&&delete this._tweens[n[r]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},t}(),Cd={Linear:function(t,e){var n=t.length-1,r=n*e,i=Math.floor(r),o=Cd.Utils.Linear;return e<0?o(t[0],t[1],r):e>1?o(t[n],t[n-1],n-r):o(t[i],t[i+1>n?n:i+1],r-i)},Bezier:function(t,e){for(var n=0,r=t.length-1,i=Math.pow,o=Cd.Utils.Bernstein,a=0;a<=r;a++)n+=i(1-e,r-a)*i(e,a)*t[a]*o(r,a);return n},CatmullRom:function(t,e){var n=t.length-1,r=n*e,i=Math.floor(r),o=Cd.Utils.CatmullRom;return t[0]===t[n]?(e<0&&(i=Math.floor(r=n*(1+e))),o(t[(i-1+n)%n],t[i],t[(i+1)%n],t[(i+2)%n],r-i)):e<0?t[0]-(o(t[0],t[0],t[1],t[1],-r)-t[0]):e>1?t[n]-(o(t[n],t[n],t[n-1],t[n-1],r-n)-t[n]):o(t[i?i-1:0],t[i],t[n<i+1?n:i+1],t[n<i+2?n:i+2],r-i)},Utils:{Linear:function(t,e,n){return(e-t)*n+t},Bernstein:function(t,e){var n=Cd.Utils.Factorial;return n(t)/n(e)/n(t-e)},Factorial:function(){var t=[1];return function(e){var n=1;if(t[e])return t[e];for(var r=e;r>1;r--)n*=r;return t[e]=n,n}}(),CatmullRom:function(t,e,n,r,i){var o=.5*(n-t),a=.5*(r-e),s=i*i;return(2*e-2*n+o+a)*(i*s)+(-3*e+3*n-2*o-a)*s+o*i+e}}},Pd=function(){function t(){}return t.nextId=function(){return t._nextId++},t._nextId=0,t}(),Rd=new Ld,Dd=function(){function t(t,e){void 0===e&&(e=Rd),this._object=t,this._group=e,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Td.Linear.None,this._interpolationFunction=Cd.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=Pd.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return t.prototype.getId=function(){return this._id},t.prototype.isPlaying=function(){return this._isPlaying},t.prototype.isPaused=function(){return this._isPaused},t.prototype.to=function(t,e){return this._valuesEnd=Object.create(t),void 0!==e&&(this._duration=e),this},t.prototype.duration=function(t){return this._duration=t,this},t.prototype.start=function(t){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var e in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(e),this._valuesStart[e]=this._valuesStartRepeat[e];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==t?\"string\"==typeof t?Ad()+parseFloat(t):t:Ad(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},t.prototype._setupProperties=function(t,e,n,r){for(var i in n){var o=t[i],a=Array.isArray(o),s=a?\"array\":typeof o,l=!a&&Array.isArray(n[i]);if(\"undefined\"!==s&&\"function\"!==s){if(l){var c=n[i];if(0===c.length)continue;c=c.map(this._handleRelativeValue.bind(this,o)),n[i]=[o].concat(c)}if(\"object\"!==s&&!a||!o||l)void 0===e[i]&&(e[i]=o),a||(e[i]*=1),r[i]=l?n[i].slice().reverse():e[i]||0;else{for(var h in e[i]=a?[]:{},o)e[i][h]=o[h];r[i]=a?[]:{},this._setupProperties(o,e[i],n[i],r[i])}}}},t.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},t.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},t.prototype.pause=function(t){return void 0===t&&(t=Ad()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this)),this},t.prototype.resume=function(t){return void 0===t&&(t=Ad()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},t.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},t.prototype.group=function(t){return this._group=t,this},t.prototype.delay=function(t){return this._delayTime=t,this},t.prototype.repeat=function(t){return this._initialRepeat=t,this._repeat=t,this},t.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},t.prototype.yoyo=function(t){return this._yoyo=t,this},t.prototype.easing=function(t){return this._easingFunction=t,this},t.prototype.interpolation=function(t){return this._interpolationFunction=t,this},t.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},t.prototype.onStart=function(t){return this._onStartCallback=t,this},t.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},t.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},t.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},t.prototype.onStop=function(t){return this._onStopCallback=t,this},t.prototype.update=function(t,e){if(void 0===t&&(t=Ad()),void 0===e&&(e=!0),this._isPaused)return!0;var n,r,i=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>i)return!1;e&&this.start(t)}if(this._goToEnd=!1,t<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),r=(t-this._startTime)/this._duration,r=0===this._duration||r>1?1:r;var o=this._easingFunction(r);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,o),this._onUpdateCallback&&this._onUpdateCallback(this._object,r),1===r){if(this._repeat>0){for(n in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||\"string\"!=typeof this._valuesEnd[n]||(this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(this._valuesEnd[n])),this._yoyo&&this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,s=this._chainedTweens.length;a<s;a++)this._chainedTweens[a].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},t.prototype._updateProperties=function(t,e,n,r){for(var i in n)if(void 0!==e[i]){var o=e[i]||0,a=n[i],s=Array.isArray(t[i]),l=Array.isArray(a);!s&&l?t[i]=this._interpolationFunction(a,r):\"object\"==typeof a&&a?this._updateProperties(t[i],o,a,r):\"number\"==typeof(a=this._handleRelativeValue(o,a))&&(t[i]=o+(a-o)*r)}},t.prototype._handleRelativeValue=function(t,e){return\"string\"!=typeof e?e:\"+\"===e.charAt(0)||\"-\"===e.charAt(0)?t+parseFloat(e):parseFloat(e)},t.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];this._valuesStartRepeat[t]=\"string\"==typeof n?this._valuesStartRepeat[t]+parseFloat(n):this._valuesEnd[t],this._valuesEnd[t]=e},t}(),Id=Pd.nextId,Nd=Rd,Od=Nd.getAll.bind(Nd),kd=Nd.removeAll.bind(Nd),zd=Nd.add.bind(Nd),Bd=Nd.remove.bind(Nd),Fd=Nd.update.bind(Nd),Ud={Easing:Td,Group:Ld,Interpolation:Cd,now:Ad,Sequence:Pd,nextId:Id,Tween:Dd,VERSION:\"18.6.4\",getAll:Od,removeAll:kd,add:zd,remove:Bd,update:Fd};function Hd(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Vd(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(t,e)||jd(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Gd(t){return function(t){if(Array.isArray(t))return Wd(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||jd(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function jd(t,e){if(t){if(\"string\"==typeof t)return Wd(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Wd(t,e):void 0}}function Wd(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&\"undefined\"!=typeof document){var r=document.head||document.getElementsByTagName(\"head\")[0],i=document.createElement(\"style\");i.type=\"text/css\",\"top\"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}}(\".scene-nav-info {\\n  bottom: 5px;\\n  width: 100%;\\n  text-align: center;\\n  color: slategrey;\\n  opacity: 0.7;\\n  font-size: 10px;\\n}\\n\\n.scene-tooltip {\\n  color: lavender;\\n  font-size: 15px;\\n}\\n\\n.scene-nav-info, .scene-tooltip {\\n  position: absolute;\\n  font-family: sans-serif;\\n  pointer-events: none;\\n}\\n\\n.scene-container canvas:focus {\\n  outline: none;\\n}\");var qd=window.THREE?window.THREE:{WebGLRenderer:Vi,Scene:Gi,PerspectiveCamera:gn,Raycaster:Gs,TextureLoader:os,Vector2:Y,Vector3:ot,Box3:lt,Color:Ae,Mesh:ln,SphereGeometry:Ia,MeshBasicMaterial:Le,BackSide:1,EventDispatcher:F,MOUSE:o,Quaternion:it,Spherical:qs,Clock:Ls},Xd=wh({props:{width:{default:window.innerWidth,onChange:function(t,e,n){isNaN(t)&&(e.width=n)}},height:{default:window.innerHeight,onChange:function(t,e,n){isNaN(t)&&(e.height=n)}},backgroundColor:{default:\"#000011\"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},enablePointerInteraction:{default:!0,onChange:function(t,e){e.hoverObj=null,e.toolTipElem&&(e.toolTipElem.innerHTML=\"\")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(t){if(t.initialised){if(t.controls.update&&t.controls.update(t.clock.getDelta()),t.postProcessingComposer?t.postProcessingComposer.render():t.renderer.render(t.scene,t.camera),t.extraRenderers.forEach((function(e){return e.render(t.scene,t.camera)})),t.enablePointerInteraction){var e=null;if(t.hoverDuringDrag||!t.isPointerDragging){var n=this.intersectingObjects(t.pointerPos.x,t.pointerPos.y).filter((function(e){return t.hoverFilter(e.object)})).sort((function(e,n){return t.hoverOrderComparator(e.object,n.object)})),r=n.length?n[0]:null;e=r?r.object:null,t.intersectionPoint=r?r.point:null}e!==t.hoverObj&&(t.onHover(e,t.hoverObj),t.toolTipElem.innerHTML=e&&Mh(t.tooltipContent)(e)||\"\",t.hoverObj=e)}Ud.update()}return this},getPointerPos:function(t){var e=t.pointerPos;return{x:e.x,y:e.y}},cameraPosition:function(t,e,n,r){var i=t.camera;if(e&&t.initialised){var o=e,a=n||{x:0,y:0,z:0};if(r){var s=Object.assign({},i.position),l=u();new Ud.Tween(s).to(o,r).easing(Ud.Easing.Quadratic.Out).onUpdate(c).start(),new Ud.Tween(l).to(a,r/3).easing(Ud.Easing.Quadratic.Out).onUpdate(h).start()}else c(o),h(a);return this}return Object.assign({},i.position,{lookAt:u()});function c(t){var e=t.x,n=t.y,r=t.z;void 0!==e&&(i.position.x=e),void 0!==n&&(i.position.y=n),void 0!==r&&(i.position.z=r)}function h(e){t.controls.target=new qd.Vector3(e.x,e.y,e.z)}function u(){return Object.assign(new qd.Vector3(0,0,-1e3).applyQuaternion(i.quaternion).add(i.position))}},zoomToFit:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length,i=new Array(r>3?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.fitToBbox(this.getBbox.apply(this,i),e,n)},fitToBbox:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,i=t.camera;if(e){var o=new qd.Vector3(0,0,0),a=2*Math.max.apply(Math,Gd(Object.entries(e).map((function(t){var e=Vd(t,2),n=e[0],r=e[1];return Math.max.apply(Math,Gd(r.map((function(t){return Math.abs(o[n]-t)}))))})))),s=(1-2*r/t.height)*i.fov,l=a/Math.atan(s*Math.PI/180),c=l/i.aspect,h=Math.max(l,c);if(h>0){var u=o.clone().sub(i.position).normalize().multiplyScalar(-h);this.cameraPosition(u,o,n)}}return this},getBbox:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},n=new qd.Box3(new qd.Vector3(0,0,0),new qd.Vector3(0,0,0)),r=t.objects.filter(e);return r.length?(r.forEach((function(t){return n.expandByObject(t)})),Object.assign.apply(Object,Gd([\"x\",\"y\",\"z\"].map((function(t){return Hd({},t,[n.min[t],n.max[t]])}))))):null},getScreenCoords:function(t,e,n,r){var i=new qd.Vector3(e,n,r);return i.project(this.camera()),{x:(i.x+1)*t.width/2,y:-(i.y-1)*t.height/2}},getSceneCoords:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=new qd.Vector2(e/t.width*2-1,-n/t.height*2+1),o=new qd.Raycaster;return o.setFromCamera(i,t.camera),Object.assign({},o.ray.at(r,new qd.Vector3))},intersectingObjects:function(t,e,n){var r=new qd.Vector2(e/t.width*2-1,-n/t.height*2+1),i=new qd.Raycaster;return i.params.Line.threshold=t.lineHoverPrecision,i.setFromCamera(r,t.camera),i.intersectObjects(t.objects,!0)},renderer:function(t){return t.renderer},scene:function(t){return t.scene},camera:function(t){return t.camera},postProcessingComposer:function(t){return t.postProcessingComposer},controls:function(t){return t.controls},tbControls:function(t){return t.controls}},stateInit:function(){return{scene:new qd.Scene,camera:new qd.PerspectiveCamera,clock:new qd.Clock}},init:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.controlType,i=void 0===r?\"trackball\":r,o=n.rendererConfig,a=void 0===o?{}:o,s=n.extraRenderers,l=void 0===s?[]:s,c=n.waitForLoadComplete,h=void 0===c||c;t.innerHTML=\"\",t.appendChild(e.container=document.createElement(\"div\")),e.container.className=\"scene-container\",e.container.style.position=\"relative\",e.container.appendChild(e.navInfo=document.createElement(\"div\")),e.navInfo.className=\"scene-nav-info\",e.navInfo.textContent={orbit:\"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan\",trackball:\"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan\",fly:\"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw\"}[i]||\"\",e.navInfo.style.display=e.showNavInfo?null:\"none\",e.toolTipElem=document.createElement(\"div\"),e.toolTipElem.classList.add(\"scene-tooltip\"),e.container.appendChild(e.toolTipElem),e.pointerPos=new qd.Vector2,e.pointerPos.x=-2,e.pointerPos.y=-2,[\"pointermove\",\"pointerdown\"].forEach((function(t){return e.container.addEventListener(t,(function(n){if(\"pointerdown\"===t&&(e.isPointerPressed=!0),!e.isPointerDragging&&\"pointermove\"===n.type&&(n.pressure>0||e.isPointerPressed)&&(\"touch\"!==n.pointerType||void 0===n.movementX||[n.movementX,n.movementY].some((function(t){return Math.abs(t)>1})))&&(e.isPointerDragging=!0),e.enablePointerInteraction){var r=(i=e.container,o=i.getBoundingClientRect(),a=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:o.top+s,left:o.left+a});e.pointerPos.x=n.pageX-r.left,e.pointerPos.y=n.pageY-r.top,e.toolTipElem.style.top=\"\".concat(e.pointerPos.y,\"px\"),e.toolTipElem.style.left=\"\".concat(e.pointerPos.x,\"px\"),e.toolTipElem.style.transform=\"translate(-\".concat(e.pointerPos.x/e.width*100,\"%, 21px)\")}var i,o,a,s}),{passive:!0})})),e.container.addEventListener(\"pointerup\",(function(t){e.isPointerPressed=!1,e.isPointerDragging&&(e.isPointerDragging=!1,!e.clickAfterDrag)||requestAnimationFrame((function(){0===t.button&&e.onClick(e.hoverObj||null,t,e.intersectionPoint),2===t.button&&e.onRightClick&&e.onRightClick(e.hoverObj||null,t,e.intersectionPoint)}))}),{passive:!0,capture:!0}),e.container.addEventListener(\"contextmenu\",(function(t){e.onRightClick&&t.preventDefault()})),e.renderer=new qd.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},a)),e.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),e.container.appendChild(e.renderer.domElement),e.extraRenderers=l,e.extraRenderers.forEach((function(t){t.domElement.style.position=\"absolute\",t.domElement.style.top=\"0px\",t.domElement.style.pointerEvents=\"none\",e.container.appendChild(t.domElement)})),e.postProcessingComposer=new Xu(e.renderer),e.postProcessingComposer.addPass(new Zu(e.scene,e.camera)),e.controls=new{trackball:Ru,orbit:Ou,fly:zu}[i](e.camera,e.renderer.domElement),\"fly\"===i&&(e.controls.movementSpeed=300,e.controls.rollSpeed=Math.PI/6,e.controls.dragToLook=!0),\"trackball\"!==i&&\"orbit\"!==i||(e.controls.minDistance=.1,e.controls.maxDistance=e.skyRadius,e.controls.addEventListener(\"start\",(function(){e.controlsEngaged=!0})),e.controls.addEventListener(\"change\",(function(){e.controlsEngaged&&(e.controlsDragging=!0)})),e.controls.addEventListener(\"end\",(function(){e.controlsEngaged=!1,e.controlsDragging=!1}))),[e.renderer,e.postProcessingComposer].concat(Gd(e.extraRenderers)).forEach((function(t){return t.setSize(e.width,e.height)})),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix(),e.camera.position.z=1e3,e.scene.add(e.skysphere=new qd.Mesh),e.skysphere.visible=!1,e.loadComplete=e.scene.visible=!h,window.scene=e.scene},update:function(t,e){if(t.width&&t.height&&(e.hasOwnProperty(\"width\")||e.hasOwnProperty(\"height\"))&&(t.container.style.width=t.width,t.container.style.height=t.height,[t.renderer,t.postProcessingComposer].concat(Gd(t.extraRenderers)).forEach((function(e){return e.setSize(t.width,t.height)})),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix()),e.hasOwnProperty(\"skyRadius\")&&t.skyRadius&&(t.controls.hasOwnProperty(\"maxDistance\")&&e.skyRadius&&(t.controls.maxDistance=t.skyRadius),t.camera.far=2.5*t.skyRadius,t.camera.updateProjectionMatrix(),t.skysphere.geometry=new qd.SphereGeometry(t.skyRadius)),e.hasOwnProperty(\"backgroundColor\")){var n=yd(t.backgroundColor).alpha;void 0===n&&(n=1),t.renderer.setClearColor(new qd.Color(Ed(1,t.backgroundColor)),n)}function r(){t.loadComplete=t.scene.visible=!0}e.hasOwnProperty(\"backgroundImageUrl\")&&(t.backgroundImageUrl?(new qd.TextureLoader).load(t.backgroundImageUrl,(function(e){t.skysphere.material=new qd.MeshBasicMaterial({map:e,side:qd.BackSide}),t.skysphere.visible=!0,t.onBackgroundImageLoaded&&setTimeout(t.onBackgroundImageLoaded),!t.loadComplete&&r()})):(t.skysphere.visible=!1,t.skysphere.material.map=null,!t.loadComplete&&r())),e.hasOwnProperty(\"showNavInfo\")&&(t.navInfo.style.display=t.showNavInfo?null:\"none\"),e.hasOwnProperty(\"objects\")&&((e.objects||[]).forEach((function(e){return t.scene.remove(e)})),t.objects.forEach((function(e){return t.scene.add(e)})))}});function Yd(t,e){var n=new e;return{linkProp:function(e){return{default:n[e](),onChange:function(n,r){r[t][e](n)},triggerUpdate:!1}},linkMethod:function(e){return function(n){for(var r=n[t],i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];var s=r[e].apply(r,o);return s===r?this:s}}}}var Zd=window.THREE?window.THREE:{AmbientLight:ws,DirectionalLight:bs,Vector3:ot},Jd=Yd(\"forceGraph\",Au),$d=Object.assign.apply(Object,r([\"jsonUrl\",\"graphData\",\"numDimensions\",\"dagMode\",\"dagLevelDistance\",\"dagNodeFilter\",\"onDagError\",\"nodeRelSize\",\"nodeId\",\"nodeVal\",\"nodeResolution\",\"nodeColor\",\"nodeAutoColorBy\",\"nodeOpacity\",\"nodeVisibility\",\"nodeThreeObject\",\"nodeThreeObjectExtend\",\"linkSource\",\"linkTarget\",\"linkVisibility\",\"linkColor\",\"linkAutoColorBy\",\"linkOpacity\",\"linkWidth\",\"linkResolution\",\"linkCurvature\",\"linkCurveRotation\",\"linkMaterial\",\"linkThreeObject\",\"linkThreeObjectExtend\",\"linkPositionUpdate\",\"linkDirectionalArrowLength\",\"linkDirectionalArrowColor\",\"linkDirectionalArrowRelPos\",\"linkDirectionalArrowResolution\",\"linkDirectionalParticles\",\"linkDirectionalParticleSpeed\",\"linkDirectionalParticleWidth\",\"linkDirectionalParticleColor\",\"linkDirectionalParticleResolution\",\"forceEngine\",\"d3AlphaDecay\",\"d3VelocityDecay\",\"d3AlphaMin\",\"ngraphPhysics\",\"warmupTicks\",\"cooldownTicks\",\"cooldownTime\",\"onEngineTick\",\"onEngineStop\"].map((function(t){return n({},t,Jd.linkProp(t))})))),Qd=Object.assign.apply(Object,r([\"refresh\",\"getGraphBbox\",\"d3Force\",\"d3ReheatSimulation\",\"emitParticle\"].map((function(t){return n({},t,Jd.linkMethod(t))})))),Kd=Yd(\"renderObjs\",Xd),tp=Object.assign.apply(Object,r([\"width\",\"height\",\"backgroundColor\",\"showNavInfo\",\"enablePointerInteraction\"].map((function(t){return n({},t,Kd.linkProp(t))})))),ep=Object.assign.apply(Object,r([\"cameraPosition\",\"postProcessingComposer\"].map((function(t){return n({},t,Kd.linkMethod(t))}))).concat([{graph2ScreenCoords:Kd.linkMethod(\"getScreenCoords\"),screen2GraphCoords:Kd.linkMethod(\"getSceneCoords\")}]));function np(t){for(var e=t;e&&!e.hasOwnProperty(\"__graphObjType\");)e=e.parent;return e}return wh({props:e(e({nodeLabel:{default:\"name\",triggerUpdate:!1},linkLabel:{default:\"name\",triggerUpdate:!1},linkHoverPrecision:{default:1,onChange:function(t,e){return e.renderObjs.lineHoverPrecision(t)},triggerUpdate:!1},enableNavigationControls:{default:!0,onChange:function(t,e){var n=e.renderObjs.controls();n&&(n.enabled=t)},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1}},$d),tp),methods:e(e({zoomToFit:function(t,e,n){for(var r,i=arguments.length,o=new Array(i>3?i-3:0),a=3;a<i;a++)o[a-3]=arguments[a];return t.renderObjs.fitToBbox((r=t.forceGraph).getGraphBbox.apply(r,o),e,n),this},pauseAnimation:function(t){return null!==t.animationFrameRequestId&&(cancelAnimationFrame(t.animationFrameRequestId),t.animationFrameRequestId=null),this},resumeAnimation:function(t){return null===t.animationFrameRequestId&&this._animationCycle(),this},_animationCycle:function(t){t.enablePointerInteraction&&(this.renderer().domElement.style.cursor=null),t.forceGraph.tickFrame(),t.renderObjs.tick(),t.animationFrameRequestId=requestAnimationFrame(this._animationCycle)},scene:function(t){return t.renderObjs.scene()},camera:function(t){return t.renderObjs.camera()},renderer:function(t){return t.renderObjs.renderer()},controls:function(t){return t.renderObjs.controls()},tbControls:function(t){return t.renderObjs.tbControls()},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Qd),ep),stateInit:function(t){var e=t.controlType,n=t.rendererConfig,r=t.extraRenderers;return{forceGraph:new Au,renderObjs:Xd({controlType:e,rendererConfig:n,extraRenderers:r})}},init:function(t,e){t.innerHTML=\"\",t.appendChild(e.container=document.createElement(\"div\")),e.container.style.position=\"relative\";var n=document.createElement(\"div\");e.container.appendChild(n),e.renderObjs(n);var r,i=e.renderObjs.camera(),o=e.renderObjs.renderer(),a=e.renderObjs.controls();a.enabled=!!e.enableNavigationControls,e.lastSetCameraZ=i.position.z,e.container.appendChild(r=document.createElement(\"div\")),r.className=\"graph-info-msg\",r.textContent=\"\",e.forceGraph.onLoading((function(){r.textContent=\"Loading...\"})).onFinishLoading((function(){r.textContent=\"\"})).onUpdate((function(){e.graphData=e.forceGraph.graphData(),0===i.position.x&&0===i.position.y&&i.position.z===e.lastSetCameraZ&&e.graphData.nodes.length&&(i.lookAt(e.forceGraph.position),e.lastSetCameraZ=i.position.z=170*Math.cbrt(e.graphData.nodes.length))})).onFinishUpdate((function(){if(e._dragControls){var t=e.graphData.nodes.find((function(t){return t.__initialFixedPos&&!t.__disposeControlsAfterDrag}));t?t.__disposeControlsAfterDrag=!0:e._dragControls.dispose(),e._dragControls=void 0}if(e.enableNodeDrag&&e.enablePointerInteraction&&\"d3\"===e.forceEngine){var n=e._dragControls=new al(e.graphData.nodes.map((function(t){return t.__threeObj})).filter((function(t){return t})),i,o.domElement);n.addEventListener(\"dragstart\",(function(t){a.enabled=!1,t.object.__initialPos=t.object.position.clone(),t.object.__prevPos=t.object.position.clone();var e=np(t.object).__data;!e.__initialFixedPos&&(e.__initialFixedPos={fx:e.fx,fy:e.fy,fz:e.fz}),!e.__initialPos&&(e.__initialPos={x:e.x,y:e.y,z:e.z}),[\"x\",\"y\",\"z\"].forEach((function(t){return e[\"f\".concat(t)]=e[t]})),o.domElement.classList.add(\"grabbable\")})),n.addEventListener(\"drag\",(function(t){var n=np(t.object);if(!t.object.hasOwnProperty(\"__graphObjType\")){var r=t.object.__initialPos,i=t.object.__prevPos,o=t.object.position;n.position.add(o.clone().sub(i)),i.copy(o),o.copy(r)}var a=n.__data,s=n.position,l={x:s.x-a.x,y:s.y-a.y,z:s.z-a.z};[\"x\",\"y\",\"z\"].forEach((function(t){return a[\"f\".concat(t)]=a[t]=s[t]})),e.forceGraph.d3AlphaTarget(.3).resetCountdown(),a.__dragged=!0,e.onNodeDrag(a,l)})),n.addEventListener(\"dragend\",(function(t){delete t.object.__initialPos,delete t.object.__prevPos;var r=np(t.object).__data;r.__disposeControlsAfterDrag&&(n.dispose(),delete r.__disposeControlsAfterDrag);var i=r.__initialFixedPos,s=r.__initialPos,l={x:s.x-r.x,y:s.y-r.y,z:s.z-r.z};i&&([\"x\",\"y\",\"z\"].forEach((function(t){var e=\"f\".concat(t);void 0===i[e]&&delete r[e]})),delete r.__initialFixedPos,delete r.__initialPos,r.__dragged&&(delete r.__dragged,e.onNodeDragEnd(r,l))),e.forceGraph.d3AlphaTarget(0).resetCountdown(),e.enableNavigationControls&&(a.enabled=!0,a.domElement&&a.domElement.ownerDocument&&a.domElement.ownerDocument.dispatchEvent(new PointerEvent(\"pointerup\",{pointerType:\"touch\"}))),o.domElement.classList.remove(\"grabbable\")}))}})),e.renderObjs.objects([new Zd.AmbientLight(12303291),new Zd.DirectionalLight(16777215,.6),e.forceGraph]).hoverOrderComparator((function(t,e){var n=np(t);if(!n)return 1;var r=np(e);if(!r)return-1;var i=function(t){return\"node\"===t.__graphObjType};return i(r)-i(n)})).tooltipContent((function(t){var n=np(t);return n&&Mh(e[\"\".concat(n.__graphObjType,\"Label\")])(n.__data)||\"\"})).hoverDuringDrag(!1).onHover((function(t){var n=np(t);if(n!==e.hoverObj){var r=e.hoverObj?e.hoverObj.__graphObjType:null,i=e.hoverObj?e.hoverObj.__data:null,a=n?n.__graphObjType:null,s=n?n.__data:null;if(r&&r!==a){var l=e[\"on\".concat(\"node\"===r?\"Node\":\"Link\",\"Hover\")];l&&l(null,i)}if(a){var c=e[\"on\".concat(\"node\"===a?\"Node\":\"Link\",\"Hover\")];c&&c(s,r===a?i:null)}o.domElement.classList[n&&e[\"on\".concat(\"node\"===a?\"Node\":\"Link\",\"Click\")]||!n&&e.onBackgroundClick?\"add\":\"remove\"](\"clickable\"),e.hoverObj=n}})).clickAfterDrag(!1).onClick((function(t,n){var r=np(t);if(r){var i=e[\"on\".concat(\"node\"===r.__graphObjType?\"Node\":\"Link\",\"Click\")];i&&i(r.__data,n)}else e.onBackgroundClick&&e.onBackgroundClick(n)})).onRightClick((function(t,n){var r=np(t);if(r){var i=e[\"on\".concat(\"node\"===r.__graphObjType?\"Node\":\"Link\",\"RightClick\")];i&&i(r.__data,n)}else e.onBackgroundRightClick&&e.onBackgroundRightClick(n)})),this._animationCycle()}})}\n",
       "// ));\n",
       "\n",
       "  );\n",
       "}\n",
       "\n",
       "\n",
       "    require([\"gravis-3d-force-graph\", \"gravis-three\"], function(ForceGraph3D, THREE){\n",
       "      // Strict mode: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Strict_mode\n",
       "      \"use strict\";\n",
       "\n",
       "      const state = {\n",
       "        threeObjects:{\n",
       "          // Manual tracking and release of resources used by Three.js\n",
       "          // https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects\n",
       "          geometries: {},\n",
       "          materials: {},\n",
       "          textures: {},\n",
       "          renderers: {},\n",
       "          renderTargets: {},\n",
       "          trackGeometry(id, geometry){\n",
       "            if(typeof(this.geometries[id]) !== \"undefined\"){\n",
       "              this.removeGeometry(id);\n",
       "            }\n",
       "            this.geometries[id] = geometry;\n",
       "          },\n",
       "          removeGeometry(id){\n",
       "            this.geometries[id].dispose();\n",
       "            delete this.geometries[id];\n",
       "          },\n",
       "          trackMaterial(id, material){\n",
       "            if(typeof(this.materials[id]) !== \"undefined\"){\n",
       "              this.removeMaterial(id);\n",
       "            }\n",
       "            this.materials[id] = material;\n",
       "          },\n",
       "          removeMaterial(id){\n",
       "            this.materials[id].dispose();\n",
       "            delete this.materials[id];\n",
       "          },\n",
       "          trackTexture(id, texture){\n",
       "            if(typeof(this.textures[id]) !== \"undefined\"){\n",
       "              this.removeTexture(id);\n",
       "            }\n",
       "            this.textures[id] = texture;\n",
       "          },\n",
       "          removeTexture(id){\n",
       "            this.textures[id].dispose();\n",
       "            delete this.textures[id];\n",
       "          },\n",
       "          trackRenderer(id, renderer){\n",
       "            if(typeof(this.renderers[id]) !== \"undefined\"){\n",
       "              this.removeRenderer(id);\n",
       "            }\n",
       "            this.renderers[id] = renderer;\n",
       "          },\n",
       "          removeRenderer(id){\n",
       "            this.renderers[id].dispose();\n",
       "            delete this.renderers[id];\n",
       "          },\n",
       "          trackRenderTarget(id, renderTarget){\n",
       "            if(typeof(this.renderTargets[id]) !== \"undefined\"){\n",
       "              this.removeRenderTarget(id);\n",
       "            }\n",
       "            this.renderTargets[id] = renderTarget;\n",
       "          },\n",
       "          removeRenderTarget(id){\n",
       "            if(this.renderTargets[id] !== null){\n",
       "              this.renderTargets[id].dispose();\n",
       "            }\n",
       "            delete this.renderTargets[id];\n",
       "          },\n",
       "          disposeAll(){\n",
       "            const objects = [this.geometries, this.materials, this.textures, this.renderers, this.renderTargets];\n",
       "            for(let i=0; i<objects.length; i++){\n",
       "              const obj = objects[i];\n",
       "              for(let key in obj){\n",
       "                if(obj.hasOwnProperty(key)){\n",
       "                  if(obj[key] !== null){\n",
       "                    obj[key].dispose();\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "          },\n",
       "        },\n",
       "        manager:{\n",
       "          // Data generation process: 1) Fetch state.rawData, 2) derive state.parsedData, 3) derive state.shownData\n",
       "\n",
       "          // 1) Fetch state.rawData\n",
       "          fetchRawDataFromTemplating(){\n",
       "            state.rawData = [{\"directed\": false, \"metadata\": {\"node_color\": \"black\", \"node_opacity\": 1, \"node_size\": 10, \"node_shape\": \"circle\", \"node_border_color\": \"black\", \"node_border_size\": 1, \"node_label_color\": \"black\", \"node_label_size\": 10, \"edge_color\": \"#ccc\", \"edge_opacity\": 0.8, \"edge_size\": 2, \"edge_shape\": \"circle\", \"edge_border_color\": \"#999\", \"edge_border_size\": 1, \"edge_label_color\": \"black\", \"edge_label_size\": 10, \"arrow_size\": 4, \"arrow_color\": \"#999\"}, \"nodes\": {\"hQf90cj929FuImXMCvoPAA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 25070.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25070.0\"}}, \"PW5eXomrVVdens7S5nsYAA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 172082.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172082.0\"}}, \"IG8eHOg/b+unaewr10IpAA\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 182846.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182846.0\"}}, \"sT+BTCOHCbs7CoM2rk4zAA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 64753.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64753.0\"}}, \"fI0SQXFag/uwL3gZbcAzAA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 136561.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136561.0\"}}, \"TS1jpzHgr2OGkdbO2yRZAA\": {\"metadata\": {\"community_id\": 6, \"customer_id\": 52066.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52066.0\"}}, \"cWeqFfe/2MVwGRvaRnVhAA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 98365.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98365.0\"}}, \"zXQksXsT2mt3BhPZ6cWFAA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 76208.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76208.0\"}}, \"Rb3i7BmlE+LOhKhqsvyMAA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 66981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66981.0\"}}, \"ywDGLEp7FJEDUqpecKOSAA\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 139979.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139979.0\"}}, \"fER/DxHaRHDkeDgOkISTAA\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 43759.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43759.0\"}}, \"LYvZLRcYPyx6i9EsF+OdAA\": {\"metadata\": {\"community_id\": 11, \"customer_id\": 101966.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101966.0\"}}, \"d6I/erSUp/qMli3JCSWeAA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 76289.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76289.0\"}}, \"U4i+J3Mg/18Sw6mvXmO4AA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 193482.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193482.0\"}}, \"Ynri23BTcQZf7q1ZB3nQAA\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 164728.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164728.0\"}}, \"58W4qaSq64j+ulfZWQ/wAA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 113765.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113765.0\"}}, \"rH6RbiXkJiiUuAAEjKjyAA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 72958.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72958.0\"}}, \"ddWC8vEq1erqKkMFxMX2AA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 34601.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34601.0\"}}, \"fJzjXhx6RpVTmbayvJb8AA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 185090.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185090.0\"}}, \"wRTW/+oB5yTa8TE0+m0hAQ\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 113982.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113982.0\"}}, \"6GKfoX6YG4cXZ/tmSek4AQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 165186.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165186.0\"}}, \"dFHxkVjZ2ik0MnOo7Vg/AQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 16434.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16434.0\"}}, \"R4IB/HUVgvrUvfMC8GVKAQ\": {\"metadata\": {\"community_id\": 20, \"customer_id\": 186992.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186992.0\"}}, \"NDxcCyBxZoUiLjOrzqtlAQ\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 132233.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132233.0\"}}, \"gDmaiqqCwKaXYRbCoJ12AQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 154214.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154214.0\"}}, \"xFk+R95VR+VNMHohSoiPAQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 142684.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142684.0\"}}, \"UO0lgGjJDkOz6FUtncKYAQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 143204.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143204.0\"}}, \"jqJFx9HvH9iThG9UFQWpAQ\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 179048.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179048.0\"}}, \"V2i35ONWlJBWq4+LQVfIAQ\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 137942.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137942.0\"}}, \"jOLAPViUhhy/+Xp6gcrlAQ\": {\"metadata\": {\"community_id\": 25, \"customer_id\": 176582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176582.0\"}}, \"9lWRTdSse5DK1FFLjbbtAQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 198072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198072.0\"}}, \"UFyIf35pkvmN2BDkQ7IHAg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 110071.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110071.0\"}}, \"JHFyiY2GWrFLW2LkHfM0Ag\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 176399.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176399.0\"}}, \"dKV+F/lGc338Se79BNBIAg\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 37863.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37863.0\"}}, \"brVF4DZo0i3+dHo+7cdWAg\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 179570.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179570.0\"}}, \"bXjJTelLYoEi73QE3iZjAg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 145419.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145419.0\"}}, \"T1K8qvsx95ZGwtuYYWhpAg\": {\"metadata\": {\"community_id\": 32, \"customer_id\": 75154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75154.0\"}}, \"HCQfPvdV3dud4rWme5lsAg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 180640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180640.0\"}}, \"ezqC3OZ5uMF5Au1ZBLhsAg\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 121856.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121856.0\"}}, \"MCapP5unA/zN5ZVofbt5Ag\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 134159.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134159.0\"}}, \"hPdK9N0uNzR4jeBD8D6CAg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 9320.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9320.0\"}}, \"FmbUTCW+dXlCtaOElLmlAg\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 151075.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151075.0\"}}, \"hd4qptNMNRHMho4wDPi1Ag\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 49579.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49579.0\"}}, \"4zB2+QLb9Jh+kso8ALPFAg\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 184916.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184916.0\"}}, \"uDUms27bopm4431AO3jRAg\": {\"metadata\": {\"community_id\": 38, \"customer_id\": 174841.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174841.0\"}}, \"XLE2vu1FUTz8Xy1xR5HyAg\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 12022.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12022.0\"}}, \"YfiKcShGGIA2CCmhUFT4Ag\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 132445.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132445.0\"}}, \"Ef+8eL5S/xYEisXaqlMFAw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 11681.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11681.0\"}}, \"NebVzZMmzgiasU+OJOAHAw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 117957.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117957.0\"}}, \"nDUnoHoN1IZz5VVEbw0IAw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 84030.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84030.0\"}}, \"njfAI7X9I/LeJL0XOHAMAw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 58643.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58643.0\"}}, \"jmHEm9bw2NfaqUmujDITAw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 62683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62683.0\"}}, \"mEi10Jc94OYw+33Y7Y4qAw\": {\"metadata\": {\"community_id\": 42, \"customer_id\": 27360.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27360.0\"}}, \"FtdeHjc9NwGOcxZhz/NLAw\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 169110.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169110.0\"}}, \"y1nmeXGPMDSmkmFge5dXAw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 41325.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41325.0\"}}, \"t3a3yKY/sF6TY98bOOJgAw\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 130026.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130026.0\"}}, \"oUk3kJWF+hNWYPEDJst4Aw\": {\"metadata\": {\"community_id\": 46, \"customer_id\": 125405.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125405.0\"}}, \"TEAWGHOPP2tHHZOSAaaHAw\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 169726.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169726.0\"}}, \"jBwZb8cDwBQ8vw1sOumcAw\": {\"metadata\": {\"community_id\": 48, \"customer_id\": 180235.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180235.0\"}}, \"boWAWGMTTmVsVRAQAbKjAw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 10644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10644.0\"}}, \"h7tJb75L/DGOrm2tEwq6Aw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 191762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191762.0\"}}, \"dN9W3T2orZCjIBwgp+G7Aw\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 61046.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61046.0\"}}, \"YnPv4j68pE/W942eamy+Aw\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 58937.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58937.0\"}}, \"6eYVvoIorRNDLfLelJvIAw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 26834.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26834.0\"}}, \"qJ2LGi8vR2yFU+3Ag9/TAw\": {\"metadata\": {\"community_id\": 52, \"customer_id\": 63130.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63130.0\"}}, \"UV7rYTl5LeyAFxZ4ueneAw\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 72000.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72000.0\"}}, \"kzsOxATPrhpBx7IBvCnnAw\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 29643.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29643.0\"}}, \"t6XdsRzzXBLRdH5YUv3tAw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 75906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75906.0\"}}, \"iDe29J4gwYshIWUHA/b3Aw\": {\"metadata\": {\"community_id\": 54, \"customer_id\": 139109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139109.0\"}}, \"/5aq7+ftpNqXyXw1sIEABA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 29650.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29650.0\"}}, \"rjKKulZvbM7JwFTyyDQHBA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 125058.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125058.0\"}}, \"UNOLeg/WMaA/VufGSfsoBA\": {\"metadata\": {\"community_id\": 56, \"customer_id\": 10327.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10327.0\"}}, \"q7YXEwzZduMnshd7h280BA\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 29810.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29810.0\"}}, \"I30MbYfSHDEjmEPf+7g6BA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 144561.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144561.0\"}}, \"k0T6CV1d9JF83IPY9sRpBA\": {\"metadata\": {\"community_id\": 58, \"customer_id\": 70045.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70045.0\"}}, \"eASPTOXK12Ia9KKBynl7BA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 160340.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160340.0\"}}, \"G5OBgEAy078qSQ8c2NaJBA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 93393.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93393.0\"}}, \"dFZgvv+KytDAWW2FZvWeBA\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 98269.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98269.0\"}}, \"JL2vKI4zx00+rvHhg/a3BA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 52374.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52374.0\"}}, \"5XlsXjzT8f9ch/bu0Se+BA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 16967.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16967.0\"}}, \"weWsVGpyQWEtcjno/vjDBA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 146614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146614.0\"}}, \"EpojG5aJx6PyG41OzHPFBA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 161064.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161064.0\"}}, \"mwfUPAmhfq3WL1IJbJnmBA\": {\"metadata\": {\"community_id\": 65, \"customer_id\": 64215.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64215.0\"}}, \"recx5iQEJCHdzKCUtRzqBA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 126923.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126923.0\"}}, \"eq74A7rCBGlzj9kZ5ivyBA\": {\"metadata\": {\"community_id\": 66, \"customer_id\": 183239.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183239.0\"}}, \"MtE30z/9i4UlBVz237X3BA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 78303.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78303.0\"}}, \"Ld5SnvpmO0dTU9pLJ9VZBQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 148505.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148505.0\"}}, \"oPA7Ek4wtSq0BMvlM9NbBQ\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 142204.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142204.0\"}}, \"sOtAEyswqgKga5X8XaJnBQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 166982.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166982.0\"}}, \"L4sDCVFWrTHh7llFYJt7BQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 180827.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180827.0\"}}, \"XlUvPcSVB19I7/xBVi18BQ\": {\"metadata\": {\"community_id\": 68, \"customer_id\": 170541.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170541.0\"}}, \"6zKl13gF2OQsCzAA6MWLBQ\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 82906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82906.0\"}}, \"x2PpcJCRk3CPPXasFMSMBQ\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 141152.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141152.0\"}}, \"ia0ODu/Mzcn+VMhzIPuiBQ\": {\"metadata\": {\"community_id\": 71, \"customer_id\": 28425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28425.0\"}}, \"+hgJT9g6m12CXu5cr66rBQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 173072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173072.0\"}}, \"WABQPNkh2bbg/P7bjkCsBQ\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 169019.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169019.0\"}}, \"tbTvcuy9kJL2IF+hTs/KBQ\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 177374.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177374.0\"}}, \"m1CBBx6XxEjJqDAajmXWBQ\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 72656.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72656.0\"}}, \"oVvh1/LhQNGZkZa6/BXjBQ\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 86716.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86716.0\"}}, \"qjmps9fgconKwBloySfxBQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 32644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32644.0\"}}, \"EpcQIYBeWxlYbVGbUuUNBg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 157841.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157841.0\"}}, \"krbO1Orz4+7uOfN3/U0VBg\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 34447.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34447.0\"}}, \"OPRaSJorA7Bn84ebGAcbBg\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 171094.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171094.0\"}}, \"L+WoRdbM8VN0eR4BJH8kBg\": {\"metadata\": {\"community_id\": 79, \"customer_id\": 129459.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129459.0\"}}, \"W6tdbPp/lngBYmJ1jRA9Bg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 63439.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63439.0\"}}, \"vyneOlAXeITWh9VMTnlpBg\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 181744.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181744.0\"}}, \"3vRzyyQTeevcUQARp057Bg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 178224.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178224.0\"}}, \"wejGITS2BOdmjKi8FU98Bg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 106715.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106715.0\"}}, \"9Dgq/UdldN2qmFsTmC6ZBg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 9237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9237.0\"}}, \"FYbzAow8vzQx9kBhUKjEBg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 13450.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13450.0\"}}, \"0wHck3P+jbG5b7P7g6njBg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 188072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188072.0\"}}, \"uJErBUOzWSgxAO8FydYhBw\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 6811.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6811.0\"}}, \"ghRXhwcooWZVz+sji7osBw\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 119953.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119953.0\"}}, \"rIV/xeomuiLXmdx2FXNKBw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 63113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63113.0\"}}, \"5tI3LUyY0xlcEPUXgstLBw\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 162863.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162863.0\"}}, \"vmXUUgC4eVFgr5kzAftUBw\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 170496.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170496.0\"}}, \"VjJomYArChr9VC8MLDuRBw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 86405.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86405.0\"}}, \"lApkjHlZQL30kASE3uHCBw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 64998.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64998.0\"}}, \"/Wu/0Ptn9fVByZmn3PjCBw\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 160000.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160000.0\"}}, \"xm9BSRzU9csZKcndYMbQBw\": {\"metadata\": {\"community_id\": 88, \"customer_id\": 4642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4642.0\"}}, \"1gbwYab1ggpNW1ZgEUvqBw\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 82489.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82489.0\"}}, \"i0B7Cxb5LxImrSSUJbgNCA\": {\"metadata\": {\"community_id\": 90, \"customer_id\": 109208.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109208.0\"}}, \"qBVSMRip8iPJgMQHjR8SCA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 194380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194380.0\"}}, \"aB2R0dr/cSuQ0saoTU0iCA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 122880.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122880.0\"}}, \"9myB9RP92+4bs0DcfUY/CA\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 76821.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76821.0\"}}, \"mnnag11a3xzR2DFZMNdTCA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 151987.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151987.0\"}}, \"WCwzOmjwPWbpLhw2NFCICA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 48594.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48594.0\"}}, \"RkaicZuK8b+6K3e9xpupCA\": {\"metadata\": {\"community_id\": 92, \"customer_id\": 186844.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186844.0\"}}, \"3jrXS2+LmrfF9eZI2o6rCA\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 130539.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130539.0\"}}, \"5+Ml4fLjTTxXGXW5z++vCA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 77561.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77561.0\"}}, \"Wwwb2NcSPoh6VpCTJ/2vCA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 150967.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150967.0\"}}, \"SaBANbUR2bQfaUhYskW9CA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 68835.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68835.0\"}}, \"6Fqk6IruRBNgJN0iEHwACQ\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 134561.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134561.0\"}}, \"jOQmPyjpJ2VZCJGgDj8CCQ\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 46625.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46625.0\"}}, \"wBPjg88aMjlnEh95gkEOCQ\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 14727.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14727.0\"}}, \"uELFW8vZx+O4j0k4uggbCQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 136913.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136913.0\"}}, \"/8ZHI0PSoRjZLb0dttQiCQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 163943.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163943.0\"}}, \"pemNyO15uTZEp00imOk6CQ\": {\"metadata\": {\"community_id\": 96, \"customer_id\": 28199.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28199.0\"}}, \"Mm0vBMit1GguUSAVAZk8CQ\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 75615.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75615.0\"}}, \"WtJSCwtDxnvu4DgTlZNICQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 164846.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164846.0\"}}, \"FGyuprTxUFE21nTnfcVLCQ\": {\"metadata\": {\"community_id\": 98, \"customer_id\": 5394.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5394.0\"}}, \"noYMPGSzt8FmEPjFjBxVCQ\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 94407.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94407.0\"}}, \"1bo994GZOV8HEds5eJJdCQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 39352.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39352.0\"}}, \"QA/4eqtZ2nkJ9kFc29hgCQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 26006.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26006.0\"}}, \"0p1y+f9o8JJoxwRWmEaCCQ\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 49715.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49715.0\"}}, \"lgj72idvG8jObtcuyfuDCQ\": {\"metadata\": {\"community_id\": 100, \"customer_id\": 32271.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32271.0\"}}, \"ixroP3o8cYcrdNuKfyajCQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 181247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181247.0\"}}, \"xOfZoAfLV2KucgwJ/2G2CQ\": {\"metadata\": {\"community_id\": 101, \"customer_id\": 19675.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19675.0\"}}, \"tm2icdHnb7GlDxJ6W1m9CQ\": {\"metadata\": {\"community_id\": 102, \"customer_id\": 35845.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35845.0\"}}, \"4SV/Zm1taO3Sqac5TAHjCQ\": {\"metadata\": {\"community_id\": 103, \"customer_id\": 183626.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183626.0\"}}, \"f5y9NZ/5KqlQ9HqDpcXuCQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 82398.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82398.0\"}}, \"7hu/3SxzMzOw+99hxtf/CQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 199844.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199844.0\"}}, \"At3rUhegSM4L6VVjR4gMCg\": {\"metadata\": {\"community_id\": 106, \"customer_id\": 185720.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185720.0\"}}, \"0RrC2C1QeJuEtTZ5IdghCg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 42327.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42327.0\"}}, \"JoTHChXP0mi1f8VYxlwkCg\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 39400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39400.0\"}}, \"ixa7v7bj5ENazQ0MNaxBCg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 196789.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196789.0\"}}, \"czubaTois5tckUTLyS9bCg\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 109869.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109869.0\"}}, \"n4roh3AOe24VZvsRp3GOCg\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 177034.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177034.0\"}}, \"ok/Lchkv4GjTnk17aaeZCg\": {\"metadata\": {\"community_id\": 111, \"customer_id\": 149351.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149351.0\"}}, \"hm6dg7dYvD/icQaeL62rCg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 70325.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70325.0\"}}, \"PLGQnhzQvSiNlgoZ53mxCg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 131484.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131484.0\"}}, \"FX0+HeMaZhtd3d6RYuS3Cg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 28972.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28972.0\"}}, \"5jVxL0tV6gu/JeDMXjrJCg\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 130765.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130765.0\"}}, \"ddiFjjFLVjBntpPih2rVCg\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 82596.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82596.0\"}}, \"C4Of7edAVhVldWmHOs7pCg\": {\"metadata\": {\"community_id\": 115, \"customer_id\": 131544.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131544.0\"}}, \"PyX2urRShWHuCxtIg3wHCw\": {\"metadata\": {\"community_id\": 116, \"customer_id\": 179662.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179662.0\"}}, \"PcdvSMVk5RrLrEOR1BQaCw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 121355.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121355.0\"}}, \"NBxN5qJ8r7125hIr2g4fCw\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 105448.0, \"color\": \"#FF0000\", \"size\": 20, \"hover\": \"105448.0\"}}, \"Y2m2ytV0Q1JDR/YJX38+Cw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 130960.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130960.0\"}}, \"M1JMvCs+uDhLtqeDvq0/Cw\": {\"metadata\": {\"community_id\": 118, \"customer_id\": 198347.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198347.0\"}}, \"WVjZ3jfRpc6j80QIVDVJCw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 177277.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177277.0\"}}, \"4P7OO9NwOYS6JeJqHVBNCw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 90553.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90553.0\"}}, \"KlmYcWvHRSzF4ZNlEcxnCw\": {\"metadata\": {\"community_id\": 119, \"customer_id\": 35402.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35402.0\"}}, \"4cWGKQFBhAZ6Esy/epNxCw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 171305.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171305.0\"}}, \"73yjV+3srPBqZeDnfep6Cw\": {\"metadata\": {\"community_id\": 120, \"customer_id\": 91718.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91718.0\"}}, \"vwAGZn6uuaOVd++P1UOFCw\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 75242.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75242.0\"}}, \"21kRQo8Kh+9oMACtB7K9Cw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 39872.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39872.0\"}}, \"Z3dQiuHWEPMgFSV0fhboCw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 30213.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30213.0\"}}, \"FFbkW5jsHSFbGrWaW3rsCw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 155004.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155004.0\"}}, \"8T+q5wBfnFew/y6izv5ADA\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 184688.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184688.0\"}}, \"YY8z/h69E0yzLPuqomxiDA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 123139.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123139.0\"}}, \"1nWATN6mEw6+v/LPb5VjDA\": {\"metadata\": {\"community_id\": 123, \"customer_id\": 106694.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106694.0\"}}, \"U+s8M4MjVyG5NQ+x2WFzDA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 193525.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193525.0\"}}, \"vOOKfU4yOH6KgAfbs1qADA\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 107182.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107182.0\"}}, \"yTeYhXHj6kbvuDMxlSyjDA\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 179666.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179666.0\"}}, \"TpoKQKJcrw56yPne71zHDA\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 22501.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22501.0\"}}, \"TY7hrli72TWW8i5Lr4fYDA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 54036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54036.0\"}}, \"tg4htVvjR8oGHx8uubBYDQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 62642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62642.0\"}}, \"qeuatAkhLNLIi8/FbpRgDQ\": {\"metadata\": {\"community_id\": 129, \"customer_id\": 146233.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146233.0\"}}, \"A4dMXilHUsHQSR6kFSqJDQ\": {\"metadata\": {\"community_id\": 130, \"customer_id\": 101770.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101770.0\"}}, \"9IKaNG5e1u1oNOlfHnEKDg\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 180382.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180382.0\"}}, \"ZKP4K6n/oSk9zUwfIRgZDg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 121174.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121174.0\"}}, \"+26sXlxBKwgvLpy9E5shDg\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 118364.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118364.0\"}}, \"onHQmElJIR/+Us7Pz/k8Dg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 148977.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148977.0\"}}, \"ekYddT4Tcr2RVgRanxVxDg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 86375.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86375.0\"}}, \"6NReZq5WCWs8b8h2ZGKADg\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 100196.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100196.0\"}}, \"Itxv0yte/EDqR+pR1jeLDg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 51581.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51581.0\"}}, \"CUfNFmcagh/iWZdQRYiTDg\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 145172.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145172.0\"}}, \"2YlME1YUq9QcSfq/wC6wDg\": {\"metadata\": {\"community_id\": 134, \"customer_id\": 177516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177516.0\"}}, \"hJMVMW1FrtevBZ7FzuLmDg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 40440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40440.0\"}}, \"Ub6jKcVYxpyxDLYGMRDzDg\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 135655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135655.0\"}}, \"tnq/bmfznt3UJEd7a7f2Dg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 152639.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152639.0\"}}, \"XVZ0iwMF2irKUx1+9gcPDw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 132283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132283.0\"}}, \"5xe5BK5qQuhuLpIqeBskDw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 93043.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93043.0\"}}, \"5ie5XQWjvBXQxLaFzgtXDw\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 135762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135762.0\"}}, \"Gzcuyo0pazlggDZ6XHZdDw\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 167136.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167136.0\"}}, \"wt1DYPl4mOHftx9dAs51Dw\": {\"metadata\": {\"community_id\": 139, \"customer_id\": 86934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86934.0\"}}, \"g7PJFIG6v9kmGHvuyA2yDw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 36456.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36456.0\"}}, \"6Qt5reoO4qOnN5gAidO3Dw\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 29270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29270.0\"}}, \"9b52fBh0B9XIxWekScLGDw\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 149772.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149772.0\"}}, \"9T2ULlgOdsI1nizKDTvRDw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 102535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102535.0\"}}, \"3wSzQ1qgeYmFkPvbHBrkDw\": {\"metadata\": {\"community_id\": 143, \"customer_id\": 1709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1709.0\"}}, \"AUVdOrb8T3ttoz82yYPuDw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 10536.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10536.0\"}}, \"1Yrvybt4XPQyO7urFEIJEA\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 47846.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47846.0\"}}, \"JDNp0giLIQeKYhAcasUMEA\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 51553.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51553.0\"}}, \"0SHLOfgkxRmjD9fIfz0NEA\": {\"metadata\": {\"community_id\": 145, \"customer_id\": 8689.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8689.0\"}}, \"YnVhfjodTZIUtQxbZcQiEA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 132530.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132530.0\"}}, \"ikGVhYtT4k/Nl3xyp2AkEA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 99183.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99183.0\"}}, \"BPp59nVeguhqaVYfaD8mEA\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 26651.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26651.0\"}}, \"LVLFh/YaYH7KeqgCZAFbEA\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 48637.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48637.0\"}}, \"nGtfX1L62Gs5wlVGT15sEA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 80729.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80729.0\"}}, \"BuYd2X2wZ8mIkolg6ANxEA\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 36757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36757.0\"}}, \"w1kNagJbloN2MOhjO2uFEA\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 169986.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169986.0\"}}, \"1t5D/KAZe4O+o6FXkuWGEA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 22844.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22844.0\"}}, \"zIv5R4lMqa7XQ9Y+1u2NEA\": {\"metadata\": {\"community_id\": 150, \"customer_id\": 5146.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5146.0\"}}, \"HWI3Bjwl14K+GhzMZk+6EA\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 193022.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193022.0\"}}, \"NJYJXom0e+Hss7fw5b/NEA\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 153615.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153615.0\"}}, \"KqW1MSythNQ3Uu61DscFEQ\": {\"metadata\": {\"community_id\": 153, \"customer_id\": 9426.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9426.0\"}}, \"Twc7MU80HZFmKWQy9ecLEQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 144715.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144715.0\"}}, \"hHVQ84R0QsgKrG4nRdsZEQ\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 172358.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172358.0\"}}, \"omwCoi4xiKOAcI5uEwkgEQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 142112.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142112.0\"}}, \"oO6Kd6k9FVO7Ltqb0hQmEQ\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 196713.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196713.0\"}}, \"eWjzxCuVwpc+jrW5PDBIEQ\": {\"metadata\": {\"community_id\": 156, \"customer_id\": 101894.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101894.0\"}}, \"DIiIhMmqvp+ATRGDxBNPEQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 99043.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99043.0\"}}, \"PfXUa5SVqfsZ9lS1QuB3EQ\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 141842.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141842.0\"}}, \"7IpzIJTWaeXhoqXR7PGIEQ\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 99345.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99345.0\"}}, \"gaELPVErzQA3/wtTOOyoEQ\": {\"metadata\": {\"community_id\": 159, \"customer_id\": 42098.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42098.0\"}}, \"jmvmxbSBYu86uPMD/YetEQ\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 15606.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15606.0\"}}, \"Bp5yJKjAGqSlAhZkD8HiEQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 181916.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181916.0\"}}, \"ZYFWfvZW9YI5QbanNPHwEQ\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 50013.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50013.0\"}}, \"kWU94fPkNTSTNWlzE9oaEg\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 143447.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143447.0\"}}, \"I2UHcG7Gi5Jq/6E+hXceEg\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 198966.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198966.0\"}}, \"txxhT5TTaq1HSahSSc02Eg\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 10561.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10561.0\"}}, \"tUYqN6f2sv3djqz70cZWEg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 146179.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146179.0\"}}, \"hSNT1L+/WWfX3E3xDGVbEg\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 137566.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137566.0\"}}, \"5ypDG+vXoAj7aYRiv3hoEg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 69517.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69517.0\"}}, \"XXq6u/cbFQCaHiuvbcRvEg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 182451.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182451.0\"}}, \"A3mWndNu28c7vWzia6CQEg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 120714.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120714.0\"}}, \"XhJTH9q0vJMKX88KdwKmEg\": {\"metadata\": {\"community_id\": 167, \"customer_id\": 157418.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157418.0\"}}, \"M92YjPy0DN7oh97u74C0Eg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 95775.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95775.0\"}}, \"uM6ABrtAGxdrSP3XP8y9Eg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 49720.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49720.0\"}}, \"uSBD5gX8VAzRxNOmqzLIEg\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 65170.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65170.0\"}}, \"7HpSPrL0CiAmbJRmVoXfEg\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 88145.0, \"color\": \"#FF0000\", \"size\": 20, \"hover\": \"88145.0\"}}, \"rkw+3Ic423re66LntM71Eg\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 136419.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136419.0\"}}, \"ovM1WzY69dbgZd2rj5c7Ew\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 178445.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178445.0\"}}, \"EtvEipevPIV+94kEnBlDEw\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 78671.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78671.0\"}}, \"DPO2KhQYp35PfWoP5h9hEw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 156606.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156606.0\"}}, \"wHZn8d9tz5W3bK/Yxzp0Ew\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 148431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148431.0\"}}, \"EqnwVrJtqbj+nF6VjBB+Ew\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 51824.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51824.0\"}}, \"Z9YUiMU+AMQ1KkWYXjCuEw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 192265.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192265.0\"}}, \"4IZ2wwGoYRjr+VSzBxa2Ew\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 41592.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41592.0\"}}, \"PTNvHk5YUZt3KumjjoG6Ew\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 71032.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71032.0\"}}, \"BagtKawfQmam8a6BT4rNEw\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 46582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46582.0\"}}, \"OUc82uPwlL8MMu6vQizhEw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 39723.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39723.0\"}}, \"qBq08MAwQ9kFkITDvTQaFA\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 49697.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49697.0\"}}, \"nkGZYDuCZwgagF/AGbocFA\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 34862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34862.0\"}}, \"faPrc6LisKuEQ29r3v4mFA\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 16388.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16388.0\"}}, \"4DmdVWN83PEzQefueAI5FA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 133684.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133684.0\"}}, \"4/BeRQFQUgYrWpdf9TxKFA\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 114120.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114120.0\"}}, \"qfuAI7Ky2KFKbcYucitdFA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 10056.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10056.0\"}}, \"U2fwMYpVLtQZ2SNSNeFgFA\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 140619.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140619.0\"}}, \"CUpIgtOr0maU4VKMz/1jFA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 23729.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23729.0\"}}, \"GSmYxob/4rkd11kAIeF7FA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 198190.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198190.0\"}}, \"U8HymeeB0K3Ib0acWgJ8FA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 101925.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101925.0\"}}, \"+8wuDVU1YuPiCabH7EfMFA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 15343.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15343.0\"}}, \"SgMaBxIjaJ4QFHkgR8jgFA\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 188131.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188131.0\"}}, \"zmB62BQhhI6XLXm+6ULlFA\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 103823.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103823.0\"}}, \"qv6D+KQaueUpvOa8xj8GFQ\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 63209.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63209.0\"}}, \"L2lyi9WyZ8Wx8c+cAIYbFQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 127977.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127977.0\"}}, \"nwTwB7veJZkBspgGW8IgFQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 181163.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181163.0\"}}, \"Hkbh2Z/duzjyT2lWCNZXFQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 51047.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51047.0\"}}, \"7KX3J2kl0HPi8GywziRjFQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 24919.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24919.0\"}}, \"/Z8QccklhoEKl/T3txCCFQ\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 94002.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94002.0\"}}, \"2qYTLx7xi5LMIcWLTCWaFQ\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 17440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17440.0\"}}, \"YalEWtRbuh74YZNW+V+rFQ\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 32892.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32892.0\"}}, \"jqTQvwtadBvjuu5420exFQ\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 116871.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116871.0\"}}, \"XTfpVCcfORKQ+DknxFbAFQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 159400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159400.0\"}}, \"6Z8s2POb6xRgVr6sXArKFQ\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 75015.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75015.0\"}}, \"sclXs6iGF2XdJL6CuOjmFQ\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 152070.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152070.0\"}}, \"1uQP+qEOk/Iq42/PV6/xFQ\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 32234.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32234.0\"}}, \"cgFr4gR5TzPQo1GlEp/1FQ\": {\"metadata\": {\"community_id\": 184, \"customer_id\": 62728.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62728.0\"}}, \"YhXlhDtrAuoXpfAmHA4TFg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 43520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43520.0\"}}, \"pJCI7DG3PZnN4hb+DaE3Fg\": {\"metadata\": {\"community_id\": 185, \"customer_id\": 8656.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8656.0\"}}, \"NFHpq1UDkaV5/g7ltpNKFg\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 98360.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98360.0\"}}, \"PAQX1YZikBf8Nx9aiRuGFg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 4132.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4132.0\"}}, \"ZU+OQckB0MkyN1L5DK2HFg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 181145.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181145.0\"}}, \"St9Ow3vHlWa+rtlVPRO3Fg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 157123.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157123.0\"}}, \"HOx+OKEcVbnVkHm25ejKFg\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 130294.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130294.0\"}}, \"WbH5BOBw2wFJJDt9YHHhFg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 169187.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169187.0\"}}, \"z58nwbXjBrUUHo0rqUjxFg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 138015.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138015.0\"}}, \"Ha9Vkf8aPNc6T+GtsbjxFg\": {\"metadata\": {\"community_id\": 189, \"customer_id\": 66778.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66778.0\"}}, \"FYUbaJqdExrKUkHpVP00Fw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 84233.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84233.0\"}}, \"TUhSFD6MSB6xXaa6q3dNFw\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 198885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198885.0\"}}, \"kUA3zTQcp1YyO9n7mYZpFw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 57571.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57571.0\"}}, \"ET7J4JcMIZwIEmO2MahvFw\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 140736.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140736.0\"}}, \"EwOElxfoJhlC43UZl4agFw\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 187494.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187494.0\"}}, \"/+gEOXElYTfxaCAILMq4Fw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 151417.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151417.0\"}}, \"ry+Bc8XTG9qHzeTVjhW+Fw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 143345.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143345.0\"}}, \"klOTmfJybyIxWLFRZ4LNFw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 62414.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62414.0\"}}, \"vsUVcjvzycT49sp9EfLRFw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 182072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182072.0\"}}, \"VSygbfdnvtsy1YASYpTnFw\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 37920.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37920.0\"}}, \"ZgH/ubaX0zuODb9Ja1X0Fw\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 90658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90658.0\"}}, \"z4yY0KLuahKFIiCO3ET3Fw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 110499.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110499.0\"}}, \"O0bYqn+5ERSyAfk2Hp0JGA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 19665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19665.0\"}}, \"w3fZ06w50iTjsguyIbkuGA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 140758.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140758.0\"}}, \"bbF+fMAX0AmPgTF5bjA0GA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 17910.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17910.0\"}}, \"9jTabOUPSKMaECQFrBo6GA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 135833.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135833.0\"}}, \"w2g1mby0W+j2A70Q16k9GA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 141793.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141793.0\"}}, \"HxXh0zliSN4s8xGCT2dFGA\": {\"metadata\": {\"community_id\": 193, \"customer_id\": 1211.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1211.0\"}}, \"XOw9Q1YxcvuhPXdiOGJMGA\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 176534.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176534.0\"}}, \"bvn2snQLkRyKUisCg3BwGA\": {\"metadata\": {\"community_id\": 194, \"customer_id\": 32555.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32555.0\"}}, \"uxafDr00Oc9wR3p87+iCGA\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 15871.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15871.0\"}}, \"Ri2CyfNyzGOJEAIOkM6NGA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 81359.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81359.0\"}}, \"LJe1EsF6WVGhJrfpobqgGA\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 55524.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55524.0\"}}, \"mM43sNjG0c/NvOYz/JWiGA\": {\"metadata\": {\"community_id\": 196, \"customer_id\": 123919.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123919.0\"}}, \"EKisYL+aHVjdhvRsM9ikGA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 80221.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80221.0\"}}, \"hX6pHoKkPTVs3B7cOjy6GA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 181912.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181912.0\"}}, \"runqlAXZjxQe04Ry33PAGA\": {\"metadata\": {\"community_id\": 189, \"customer_id\": 154199.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154199.0\"}}, \"UsIPfzCA+x/4AQhfAu/AGA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 38792.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38792.0\"}}, \"xuD5Tu/T3V0eT3pRkefCGA\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 15640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15640.0\"}}, \"DKE0oHHGtU5ACYya+k/FGA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 39251.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39251.0\"}}, \"rIJWEAmHpfJL9ygNVIDmGA\": {\"metadata\": {\"community_id\": 197, \"customer_id\": 141486.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141486.0\"}}, \"Z+3GtyrpKpm+Q8/nh1/0GA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 119281.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119281.0\"}}, \"YiMXGNwaRu0vX1QsGU0eGQ\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 93782.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93782.0\"}}, \"78tJaJJAzpF2sHBJTlVDGQ\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 107199.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107199.0\"}}, \"b2RuDKm6BDQPlGaLg/5OGQ\": {\"metadata\": {\"community_id\": 196, \"customer_id\": 360.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"360.0\"}}, \"3DuZJFarhAU7kKtWJ35YGQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 84550.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84550.0\"}}, \"HiQHZwhiV5ctprO+wg5bGQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 145029.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145029.0\"}}, \"cVmbQo4/1D3qErZymi2IGQ\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 103198.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103198.0\"}}, \"cwo49QWCShomLLSCPzSMGQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 16484.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16484.0\"}}, \"rREDvHm7au3O8D+GCoHzGQ\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 82866.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82866.0\"}}, \"hGN13fAWjXFjkcNbTkD8GQ\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 126477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126477.0\"}}, \"+GJIVPTagS9nGMxEwIgDGg\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 25978.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25978.0\"}}, \"zSIEuhOJCp1RSUg1GfscGg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 141608.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141608.0\"}}, \"Bxy0zu5PiV6ZTGmvaJlLGg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 177657.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177657.0\"}}, \"4AxyPSWTXsFcTxsgK/9MGg\": {\"metadata\": {\"community_id\": 202, \"customer_id\": 152331.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152331.0\"}}, \"Zr1xQbj95+rjQg7NFHFQGg\": {\"metadata\": {\"community_id\": 203, \"customer_id\": 114050.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114050.0\"}}, \"bYXVmppvlbPB4PlIcylRGg\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 159570.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159570.0\"}}, \"z0lL6W6EpkmtxxleyFxrGg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 125766.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125766.0\"}}, \"O2+mvXcdd33t3E2igmFuGg\": {\"metadata\": {\"community_id\": 156, \"customer_id\": 182142.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182142.0\"}}, \"T5bmSMxYLl6Z9C5awJduGg\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 37081.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37081.0\"}}, \"/CORzbjEzOQeZXXaFtByGg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 49991.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49991.0\"}}, \"NVdzb7qEwp+JDEtZEfJ4Gg\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 139985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139985.0\"}}, \"tKeHjSdQxe3Z9h/+9knaGg\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 36722.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36722.0\"}}, \"oIY+UI7EbbGLRm9pCvgAGw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 36254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36254.0\"}}, \"+KNmFytU12EQiuKiLmQCGw\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 159773.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159773.0\"}}, \"/Pf5fjv5qaGt6+W1OJsLGw\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 5513.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5513.0\"}}, \"7HqkGStA2UDQzJDvpHgrGw\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 144701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144701.0\"}}, \"2+CxNgy+Ysn57e25B6YtGw\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 25154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25154.0\"}}, \"sClFZEdxiLr55WlJAS1aGw\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 4946.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4946.0\"}}, \"rfnJwiDawLh1XtIuXn2GGw\": {\"metadata\": {\"community_id\": 209, \"customer_id\": 41134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41134.0\"}}, \"RfMSIv8DiMBSeZkZW9iLGw\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 177037.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177037.0\"}}, \"cuFTE6pk6eDeLzNdCG2NGw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 72426.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72426.0\"}}, \"CudMQtlo+Z7PKAT27MOcGw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 96158.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96158.0\"}}, \"zfRKs2oznM215YUmJDOzGw\": {\"metadata\": {\"community_id\": 185, \"customer_id\": 18697.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18697.0\"}}, \"+LeAE1b8Ja4GZ8hbuVu+Gw\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 87797.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87797.0\"}}, \"evpuxwdu8csQws8vVcHGGw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 111181.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111181.0\"}}, \"gnkptQoFpXTfr9jYgmviGw\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 62363.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62363.0\"}}, \"iPVKv/6OQoTmmrmHPGorHA\": {\"metadata\": {\"community_id\": 213, \"customer_id\": 9074.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9074.0\"}}, \"iyAX5eh3AUHSA/qH3jhhHA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 5318.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5318.0\"}}, \"BEgYfzGevBQjlfcdT2lnHA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 157866.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157866.0\"}}, \"NN+6Qzmj2ZvJu6QWXZ9nHA\": {\"metadata\": {\"community_id\": 214, \"customer_id\": 45283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45283.0\"}}, \"os2gEaRsfryCfJUpkHupHA\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 104610.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104610.0\"}}, \"+Rlz1JkRVqbwaCVUWl/fHA\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 167698.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167698.0\"}}, \"pJz6MHBW7g/FSNEbHh3kHA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 145111.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145111.0\"}}, \"ngeFPVa/1m5AWfQ95RYnHQ\": {\"metadata\": {\"community_id\": 216, \"customer_id\": 128516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128516.0\"}}, \"jbFoGmlTquAm7t9w9GQtHQ\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 56210.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56210.0\"}}, \"wUSvFtg39A812eCTmXdRHQ\": {\"metadata\": {\"community_id\": 218, \"customer_id\": 110817.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110817.0\"}}, \"BsPPFI0hRbbHh2Yj6wNZHQ\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 101472.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101472.0\"}}, \"EOtEMeyM3THrTQQBPf6EHQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 48099.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48099.0\"}}, \"RVWH5KhijIHcLRng2KuGHQ\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 8470.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8470.0\"}}, \"hz+LWfgYGJpvD5KkesmnHQ\": {\"metadata\": {\"community_id\": 56, \"customer_id\": 18551.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18551.0\"}}, \"LvOiWpCmoGTwHrNYQ0mpHQ\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 136927.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136927.0\"}}, \"ZJABKZSq0Pb8qydMTaivHQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 105449.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105449.0\"}}, \"NZOGuB7qjlFhwGOJyC/IHQ\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 70297.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70297.0\"}}, \"oV3IniodoT+MREwyXYDOHQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 100508.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100508.0\"}}, \"zwDjXe56B2Rn4K0LnHnrHQ\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 157396.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157396.0\"}}, \"C1v88cJyGkE/JFrP/EfwHQ\": {\"metadata\": {\"community_id\": 221, \"customer_id\": 141104.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141104.0\"}}, \"Q7Duik1XvaT8SD31GqL3HQ\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 67502.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67502.0\"}}, \"1ZgUHPvya0V9G/so9Hz4HQ\": {\"metadata\": {\"community_id\": 223, \"customer_id\": 34567.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34567.0\"}}, \"bZ3gBkoKIcnZN3xYRrIGHg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 67292.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67292.0\"}}, \"XSSPDACChV7VE4V6eMoaHg\": {\"metadata\": {\"community_id\": 224, \"customer_id\": 194931.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194931.0\"}}, \"9EimI6rdmwmnjs+mU6IhHg\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 74460.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74460.0\"}}, \"TUKfnIVWQOWiFDAoAXcuHg\": {\"metadata\": {\"community_id\": 225, \"customer_id\": 103048.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103048.0\"}}, \"ziAjc86faoPYn9al48FNHg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 116059.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116059.0\"}}, \"rt6bQoEh10pLs01D+2tgHg\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 70427.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70427.0\"}}, \"Vr6vzOHfwIdWVbGufER7Hg\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 194032.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194032.0\"}}, \"0CEfdShHc8kj3nBl7h2IHg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 184209.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184209.0\"}}, \"xUpvP9QHNo94QQLkF2GMHg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 137667.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137667.0\"}}, \"1bZ6aYbjy9atWbMAFdO3Hg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 68701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68701.0\"}}, \"AfT7PVK0yxzKtJ49oQfJHg\": {\"metadata\": {\"community_id\": 227, \"customer_id\": 136076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136076.0\"}}, \"cWs/gMnWHiGA9P5yXIfcHg\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 2260.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2260.0\"}}, \"Wadm1Lv/yBVy7yCmh8nkHg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 179069.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179069.0\"}}, \"TvwnYZLgwH2Zg3y6GBHzHg\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 167359.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167359.0\"}}, \"NXHeZhJqzkRT6S2TvSofHw\": {\"metadata\": {\"community_id\": 229, \"customer_id\": 177367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177367.0\"}}, \"Wqqquk8TBr6fzWvHrWRDHw\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 83678.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83678.0\"}}, \"1Rlo35JxxSopAFTuCxNOHw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 152002.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152002.0\"}}, \"OP3VuJz0MOYOFOeABeBvHw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 35072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35072.0\"}}, \"/BzWE+Rn/GqqV38iITCZHw\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 31118.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31118.0\"}}, \"AUj6QW3vDA5gQHwExjGtHw\": {\"metadata\": {\"community_id\": 25, \"customer_id\": 14798.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14798.0\"}}, \"iF/+MGd6b6rcWMWF/4KuHw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 138557.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138557.0\"}}, \"l5qTdPK/f/oVgA5z56KwHw\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 188142.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188142.0\"}}, \"5bMac/1L9Hlr4864F2GxHw\": {\"metadata\": {\"community_id\": 233, \"customer_id\": 149803.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149803.0\"}}, \"yutKWTkgBBMnkbPoOKa5Hw\": {\"metadata\": {\"community_id\": 234, \"customer_id\": 77480.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77480.0\"}}, \"bOJhqCEnedN5vMG06Nu+Hw\": {\"metadata\": {\"community_id\": 235, \"customer_id\": 71356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71356.0\"}}, \"1JUfBZJztS4NtT5jk77PHw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 63079.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63079.0\"}}, \"v2ros2t94DbEEnUTjOnxHw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 36295.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36295.0\"}}, \"2vun/ii125XeGUDqXi72Hw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 91094.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91094.0\"}}, \"WeN5o9MbjQ3DVYD45BwwIA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 92024.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92024.0\"}}, \"lDzqred3r2TxyB7oTUd/IA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 164353.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164353.0\"}}, \"Hmoij6THJzrv9Ud2clOGIA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 188974.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188974.0\"}}, \"BdDwgZDolJQo4Ovd47SGIA\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 54279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54279.0\"}}, \"eC/XnuuS5o8IEr6SYqzjIA\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 100836.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100836.0\"}}, \"+iDF/+NUmcimkZ/a1vDtIA\": {\"metadata\": {\"community_id\": 237, \"customer_id\": 19455.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19455.0\"}}, \"b4oXjIZRDnnzcBNWeVY3IQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 64718.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64718.0\"}}, \"cTAnscLtT1cdCB8qhxM5IQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 103116.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103116.0\"}}, \"y/GSzVK9/v+yupHu3fVbIQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 119436.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119436.0\"}}, \"v/vdz8S9uvE40Xq38f5rIQ\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 107124.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107124.0\"}}, \"n4dz/aeAHhLfQ2Rgl09tIQ\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 170204.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170204.0\"}}, \"4XGe9HGicBmKt37s8EN3IQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 37216.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37216.0\"}}, \"XANgaiK1FlF7sXU9o9l4IQ\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 39901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39901.0\"}}, \"bxtTY+x3AKEBwP60fpiWIQ\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 105587.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105587.0\"}}, \"Sx+IFJGVaRwglNgrd2itIQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 185968.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185968.0\"}}, \"4sGOLVPefYSglunzn+nDIQ\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 135638.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135638.0\"}}, \"BJeUy+7Q11m2rTvepSzOIQ\": {\"metadata\": {\"community_id\": 241, \"customer_id\": 24120.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24120.0\"}}, \"tnPi10EYwtsy6vOdV8n9IQ\": {\"metadata\": {\"community_id\": 242, \"customer_id\": 47859.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47859.0\"}}, \"dM+UVga4l5SwZ6vnVIcLIg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 52078.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52078.0\"}}, \"rTKRv6DiTA6L5QsdKBYOIg\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 100524.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100524.0\"}}, \"+5enw4eQZD6PzwL03iwbIg\": {\"metadata\": {\"community_id\": 244, \"customer_id\": 153953.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153953.0\"}}, \"4MUf19wYnk7EbEoo8F4rIg\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 78684.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78684.0\"}}, \"uaWvXzfkUgsilOb8D20xIg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 4670.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4670.0\"}}, \"wHmU4WakYx1Hqi9omUJAIg\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 46173.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46173.0\"}}, \"+HdIZL/LiXDO0QMPb2dGIg\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 31841.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31841.0\"}}, \"x/dAel4REdzym5x4X6ZdIg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 174762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174762.0\"}}, \"4g2lGWPTonWIMQgJfV1eIg\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 90911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90911.0\"}}, \"APcebyIsBjD0c87yW+NgIg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 63657.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63657.0\"}}, \"HWEW1PkDeiZClhSCd6pjIg\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 142188.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142188.0\"}}, \"ufEEAwHXUrDrhF2rnNGAIg\": {\"metadata\": {\"community_id\": 246, \"customer_id\": 142001.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142001.0\"}}, \"9cZ7WX4cBDmtHgG91g2OIg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 29044.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29044.0\"}}, \"xExtfAhao3/BSxCKoKijIg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 149612.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149612.0\"}}, \"hzVxuFN90gUwpycD6XSkIg\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 147523.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147523.0\"}}, \"ocMqEnIQQXgXvr8DZo7BIg\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 65110.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65110.0\"}}, \"XF0PlmPVwNzCZ1mS4V3QIg\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 121470.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121470.0\"}}, \"vRAPwQoW49NhdfqTKtHjIg\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 110407.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110407.0\"}}, \"+9xYtL34ZhnLLOnUagvkIg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 193047.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193047.0\"}}, \"OGLpzE/fuAIm0bGjkjrnIg\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 50164.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50164.0\"}}, \"VoQIcll8yYQ6mu4xtEHxIg\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 187578.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187578.0\"}}, \"jWkbRjXrqO1AOdPk4zwUIw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 153469.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153469.0\"}}, \"uAjnNExm68e/VriTomMVIw\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 38370.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38370.0\"}}, \"AuclOJMUqm+qN0kJfBknIw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 26521.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26521.0\"}}, \"CNaUNDtRAy8IVd9syOwtIw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 59753.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59753.0\"}}, \"lmt+OhXHPo6hoVKzUzw6Iw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 33417.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33417.0\"}}, \"pBxTXw3/vIIS3k3LzjU/Iw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 3955.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3955.0\"}}, \"dAmdzT0drYiMbV9rJdJvIw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 9891.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9891.0\"}}, \"Hyv0Y/SRD3XT32vDuFF8Iw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 134880.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134880.0\"}}, \"FEdzgbkfU1GlG3WzAEOGIw\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 178067.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178067.0\"}}, \"4czXzUA3cUHu4vDFhbWRIw\": {\"metadata\": {\"community_id\": 253, \"customer_id\": 184731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184731.0\"}}, \"Yv23/3krJRShpUgClOiRIw\": {\"metadata\": {\"community_id\": 254, \"customer_id\": 113741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113741.0\"}}, \"vgFcKtNQ7SqjM54GthqWIw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 14005.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14005.0\"}}, \"zB4WdokIJ0GBrsT2ZZSWIw\": {\"metadata\": {\"community_id\": 255, \"customer_id\": 75122.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75122.0\"}}, \"TTTqxHqacNkMWmUf98OaIw\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 165558.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165558.0\"}}, \"rW/MwAPM82zAxZRpvjmwIw\": {\"metadata\": {\"community_id\": 256, \"customer_id\": 56026.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56026.0\"}}, \"z7a8e/M7XwRd4+bIXcG9Iw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 190907.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190907.0\"}}, \"1MJAGHkRmHjVpBC7NB7BIw\": {\"metadata\": {\"community_id\": 257, \"customer_id\": 94986.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94986.0\"}}, \"VquO/JxvftDOEyHTE9vJIw\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 180984.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180984.0\"}}, \"t77LdnOEMwCHq0DUADjMIw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 84174.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84174.0\"}}, \"yuiCkTk2AGHm5mClyk3kIw\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 50910.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50910.0\"}}, \"jzNaSu+T3Qs82/UlWxzpIw\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 153685.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153685.0\"}}, \"4amTqPDVM2qaCvJkvE3wIw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 125778.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125778.0\"}}, \"ay/j/DZdTWf6cqT9NS7xIw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 35230.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35230.0\"}}, \"LL8e5mPC9uISxEF+S2UEJA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 54726.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54726.0\"}}, \"0dAKUfUWMi8+E9dg5TAQJA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 126303.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126303.0\"}}, \"rTFzCPICA7CFFNNB+iYpJA\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 20509.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20509.0\"}}, \"FUxstvtv/+rU5Dh+tstgJA\": {\"metadata\": {\"community_id\": 260, \"customer_id\": 1986.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1986.0\"}}, \"Vxb+qrdroK3Yt3RC7EJnJA\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 102679.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102679.0\"}}, \"YB0LA09nHexQq8yaL6RqJA\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 111008.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111008.0\"}}, \"r570zqahkepxsh2eoJ5/JA\": {\"metadata\": {\"community_id\": 262, \"customer_id\": 180377.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180377.0\"}}, \"mp5eORPy8RbLiLTmHwiLJA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 194557.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194557.0\"}}, \"oetHm4+G1SvJebQE4pyfJA\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 191540.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191540.0\"}}, \"YK6pX5qLtyizeuChPu6rJA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 10915.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10915.0\"}}, \"2UD2PaViHF8ssFnmB6i1JA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 111399.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111399.0\"}}, \"OrBRfCSfh8JjEK1NoKq2JA\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 133235.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133235.0\"}}, \"rLQYxyqes6lU2yi9m0LyJA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 147689.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147689.0\"}}, \"G3IPKxmXRobhVHi5Axf6JA\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 124096.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124096.0\"}}, \"Y84rzA1oQbbFi71z+Qn7JA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 177742.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177742.0\"}}, \"uwZmfCzbbNDnrsxq9S4EJQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 108082.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108082.0\"}}, \"fVKL4EddhfGDpPg7OR8RJQ\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 84946.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84946.0\"}}, \"Ljvza8Y1bpL3EvLFOqkYJQ\": {\"metadata\": {\"community_id\": 263, \"customer_id\": 58566.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58566.0\"}}, \"EafAcCecfOXmVtdb/5oeJQ\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 169843.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169843.0\"}}, \"EJdvqKwmYlAS+Xm8bKRbJQ\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 82649.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82649.0\"}}, \"mQJRFdwXYiEx8QpcJ3BhJQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 123918.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123918.0\"}}, \"AgyaMoHm6GHD7OTM7tdmJQ\": {\"metadata\": {\"community_id\": 266, \"customer_id\": 100058.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100058.0\"}}, \"0wVgJQ8f3+v7juEd6iN8JQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 159445.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159445.0\"}}, \"9O1Kb43wxyJilyoZOe+EJQ\": {\"metadata\": {\"community_id\": 267, \"customer_id\": 6274.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6274.0\"}}, \"CJ2M5IpExMq2lCjRAo2IJQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 52628.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52628.0\"}}, \"eKrbGVwxXslFk7tfTUidJQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 72225.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72225.0\"}}, \"4g680cdUyORUJQPIIrvZJQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 94311.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94311.0\"}}, \"5DY6eHZJSWEo3oBtSU/dJQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 123170.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123170.0\"}}, \"f0ZqIe9yBU4CTmvpdjn6JQ\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 185158.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185158.0\"}}, \"2lyFL4MZm9NN+aGet2M8Jg\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 37842.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37842.0\"}}, \"x+e1f4UgQ10sORXUS0Q9Jg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 23029.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23029.0\"}}, \"ma5WzktOIRb2JmWJZwlEJg\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 106599.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106599.0\"}}, \"+ukLSirK9Uz5XpuYpv9NJg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 69540.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69540.0\"}}, \"8LYpRks5YYQzVzoyQElSJg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 82963.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82963.0\"}}, \"nAE3Iupt5EKxe3NeMz1aJg\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 60367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60367.0\"}}, \"foxuEhGkEcv65q+C8blnJg\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 172027.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172027.0\"}}, \"il07b2ar2edXerhF1SttJg\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 30934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30934.0\"}}, \"jJ27Mbj4eUDidX1sAM9xJg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 45380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45380.0\"}}, \"YyTqT6rBjf31jnAhbMJ1Jg\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 71604.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71604.0\"}}, \"ZT9+HaQ7EKCU9tgMRIiOJg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 87060.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87060.0\"}}, \"HjKIWAxyw5ZDmfV2FRGgJg\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 77743.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77743.0\"}}, \"ZpDdANbVisicDILeVLelJg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 179144.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179144.0\"}}, \"yIb+coN9LF9f+cIPj6+sJg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 11010.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11010.0\"}}, \"b3mYkaG76yXTbJpqkNq4Jg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 173535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173535.0\"}}, \"aLzg8ciVdKB4AnwO7AnNJg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 192354.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192354.0\"}}, \"IO3g2MwcyRgMWLIiPvDNJg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 77632.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77632.0\"}}, \"jD2au3yiXlaWJnqGxkfkJg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 50168.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50168.0\"}}, \"eLFnutYUBbSaocV3w9P+Jg\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 116907.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116907.0\"}}, \"yedb80Fwh6vLYA7MQBULJw\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 127614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127614.0\"}}, \"8ec1JUzxjNL2uv25lY0xJw\": {\"metadata\": {\"community_id\": 271, \"customer_id\": 190887.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190887.0\"}}, \"0G6punNxpIrXDMozaIw8Jw\": {\"metadata\": {\"community_id\": 272, \"customer_id\": 154193.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154193.0\"}}, \"QZOuiPvOdXLf0ipjpdZYJw\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 181938.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181938.0\"}}, \"0XjQtad182c9lBYCcGV0Jw\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 198622.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198622.0\"}}, \"W0nU23eN5tbdtlnxiPeyJw\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 148653.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148653.0\"}}, \"PIdgmaizGZMoimTTuaXXJw\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 166089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166089.0\"}}, \"jMWqeq52If22Wh9PvQXaJw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 24832.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24832.0\"}}, \"Dubx0iEFkoMEvZDOOBcHKA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 176748.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176748.0\"}}, \"Bf47983ITZjl1tQpD7wJKA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 148967.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148967.0\"}}, \"0wrfmRz0bC4DiMMMjONHKA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 15333.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15333.0\"}}, \"VUm+A7X8eh0YdMFfZAhOKA\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 141362.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141362.0\"}}, \"6xcSc7RWzxobCUZccCVzKA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 32588.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32588.0\"}}, \"DkeGauT8R8raKKUqw+qMKA\": {\"metadata\": {\"community_id\": 277, \"customer_id\": 123421.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123421.0\"}}, \"G/kLdeAVerSIy1b0YS6PKA\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 197518.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197518.0\"}}, \"LqjvcaTtiAIN4NXPRWqTKA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 142885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142885.0\"}}, \"in+YJvsOojXHH/Ob/Y2jKA\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 94619.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94619.0\"}}, \"iT8BNOTgOOsmg9/VThq0KA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 83223.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83223.0\"}}, \"KMEoeG0uw8FmOZpGW4S/KA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 147698.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147698.0\"}}, \"wMcXwM/zQkUlZqpnLZzLKA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 14193.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14193.0\"}}, \"wA5CI2W0VKI1hEG1273UKA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 53097.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53097.0\"}}, \"K4GUwmOSE5EwoXkl6ifZKA\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 169655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169655.0\"}}, \"ZkWd9g1H/KU363ma8jTeKA\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 39765.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39765.0\"}}, \"pNzciMw4meySKnwq5PrtKA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 138653.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138653.0\"}}, \"iLaCIH3YHmDW8gCcgzHyKA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 169723.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169723.0\"}}, \"JvGAyyIDfzEvsCkSWPoZKQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 85417.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85417.0\"}}, \"scCQ4EkEpjBP4kcbwAYeKQ\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 169599.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169599.0\"}}, \"3E5FvfHnZOL7RkNiaiowKQ\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 61562.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61562.0\"}}, \"k6uUP8gx74Dn1kQ5Q4I0KQ\": {\"metadata\": {\"community_id\": 279, \"customer_id\": 12873.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12873.0\"}}, \"cxmtn2AvCTzQcgJUg/JMKQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 27675.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27675.0\"}}, \"UBC/nd1zjAQ+97PFb05iKQ\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 125620.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125620.0\"}}, \"kejqF7PNFiVj0UUItLSbKQ\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 167132.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167132.0\"}}, \"2126Ui5KZ62zr+niVdOrKQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 93251.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93251.0\"}}, \"HwgiKjwo1WqhyzyKSibIKQ\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 76906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76906.0\"}}, \"+7yOA0qi+lD/BcsfzFjNKQ\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 65585.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65585.0\"}}, \"5998ToEfo0L8YaszINfSKQ\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 159177.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159177.0\"}}, \"MXZNIAJ67ll379Nk+0n/KQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 72036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72036.0\"}}, \"3zEvoHEuEfGdg42FaZwNKg\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 193388.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193388.0\"}}, \"/4ACyr77rb+9baaVrT4iKg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 108581.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108581.0\"}}, \"iFSG61RwkUqV0uuBHuopKg\": {\"metadata\": {\"community_id\": 224, \"customer_id\": 122734.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122734.0\"}}, \"hLcKVFSDYzYhd3ukkH4rKg\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 35467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35467.0\"}}, \"e4ROZ13ccxz2g26f45swKg\": {\"metadata\": {\"community_id\": 282, \"customer_id\": 137264.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137264.0\"}}, \"8n6srpqptj5FhuXzdPRNKg\": {\"metadata\": {\"community_id\": 283, \"customer_id\": 128223.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128223.0\"}}, \"0AV8XBG6I50yWsMa6N9pKg\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 16668.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16668.0\"}}, \"i3MBq8W1fq88lPJPOWWDKg\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 94818.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94818.0\"}}, \"lBimwmPeqlrqfcBOBTWMKg\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 183076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183076.0\"}}, \"/19+KHblwik18G6UCCeQKg\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 55064.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55064.0\"}}, \"7fjN0LsajQqPfVlvDEusKg\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 16935.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16935.0\"}}, \"Ee+PzZHHk1pLNU6kTEnDKg\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 90819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90819.0\"}}, \"UU6wJSRbX+6ETKorOIDDKg\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 186377.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186377.0\"}}, \"Cxa1mNdb+IH5+SvGvFzfKg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 116985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116985.0\"}}, \"4OzUZqFa0qF+o6k0o3L/Kg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 27308.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27308.0\"}}, \"fMymeUFUsDkpl4syocYEKw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 194690.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194690.0\"}}, \"yHBDU4vBCfdsrU8X0BwMKw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 187062.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187062.0\"}}, \"KAKEOkFekajnA5P8iX0aKw\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 68348.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68348.0\"}}, \"jgf1Fvm43ANS9QKsAgIhKw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 76163.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76163.0\"}}, \"gONZ8FNFW+3XX1iIAp4hKw\": {\"metadata\": {\"community_id\": 20, \"customer_id\": 27147.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27147.0\"}}, \"oSOIcWuiSZPMHE5B5bBWKw\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 58935.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58935.0\"}}, \"4HBQRQOTB6JvvuJWXm5vKw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 107893.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107893.0\"}}, \"hP1+cpOWd9uU9/r4Bl2dKw\": {\"metadata\": {\"community_id\": 287, \"customer_id\": 16806.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16806.0\"}}, \"pVlR0mvxmhXylIv/NOu8Kw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 145593.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145593.0\"}}, \"zk77BSjWg14792evZRPLKw\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 49948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49948.0\"}}, \"rWlJxrA/s72KH2o1oRTzKw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 197957.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197957.0\"}}, \"M8HxGRFCNypXwF/eIsH6Kw\": {\"metadata\": {\"community_id\": 289, \"customer_id\": 44099.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44099.0\"}}, \"VdfALO0gD1XZVZq4asFDLA\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 122589.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122589.0\"}}, \"A6Lm5QBypgDp8HuoTthILA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 114548.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114548.0\"}}, \"9eRCLSKhdRxkjv0juzJPLA\": {\"metadata\": {\"community_id\": 290, \"customer_id\": 164696.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164696.0\"}}, \"j7rR44Lsi82gyHRfHndPLA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 22819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22819.0\"}}, \"pfshJY0SJSdlynrp5SpwLA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 11989.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11989.0\"}}, \"FcmC8FNud2LgsDFUfpN/LA\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 20649.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20649.0\"}}, \"fgX7ya7V38qk7fE9/baWLA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 81775.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81775.0\"}}, \"1YhAPzeWqGXyj0MJwKm5LA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 108241.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108241.0\"}}, \"zcgO0wKMPX9rwh9b4B7XLA\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 192993.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192993.0\"}}, \"HrocpK+R2Xbz1ur0/JLxLA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 177583.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177583.0\"}}, \"jjcuIH+Rb4ZSTVL5/BcYLQ\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 190828.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190828.0\"}}, \"b8xddkkcHYN8w22fuuUcLQ\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 19726.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19726.0\"}}, \"3JF5d44TiQe135KITj8gLQ\": {\"metadata\": {\"community_id\": 292, \"customer_id\": 37880.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37880.0\"}}, \"IDGncZABpx7Dz7CreKwpLQ\": {\"metadata\": {\"community_id\": 293, \"customer_id\": 114683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114683.0\"}}, \"CtDI2Ydifk/J2l6kEfI2LQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 177285.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177285.0\"}}, \"+abHxnRqRfh1nZS42+ZlLQ\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 63459.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63459.0\"}}, \"hBaIymmn7uUX5Xp9RkaDLQ\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 62222.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62222.0\"}}, \"p6f1uKYuioXHNdpVxiiLLQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 101346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101346.0\"}}, \"GN80cgRQzi3/LJyYVI2mLQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 97454.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97454.0\"}}, \"laa31xOWPxkSz2RmR/OzLQ\": {\"metadata\": {\"community_id\": 294, \"customer_id\": 46529.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46529.0\"}}, \"eEtdS1uf44YPM0aRYMu2LQ\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 61394.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61394.0\"}}, \"4ANIk4A9ljxROfdROPu4LQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 24332.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24332.0\"}}, \"1dkRbCWZ/SjfQ1T81WrCLQ\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 172993.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172993.0\"}}, \"EeLZzQRqDNrmxT6Ry8jILQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 35079.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35079.0\"}}, \"lotyYjcXgKfDBSZvdowGLg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 85132.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85132.0\"}}, \"9u9ObBHw0ZkLEIYDSjgPLg\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 76589.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76589.0\"}}, \"3gslUUOyf0AwJz5K9OMXLg\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 121373.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121373.0\"}}, \"+x+3cuNFE2sMEo+dTzgtLg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 52652.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52652.0\"}}, \"foxrIAy0Xhl38FjWCJAvLg\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 169425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169425.0\"}}, \"SFALSDMtSkulgxrvfj4+Lg\": {\"metadata\": {\"community_id\": 298, \"customer_id\": 149573.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149573.0\"}}, \"H8ospugtmYNAXA/jIiE/Lg\": {\"metadata\": {\"community_id\": 254, \"customer_id\": 40529.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40529.0\"}}, \"eyAGwsikTSRHjosKLqBeLg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 5776.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5776.0\"}}, \"qAd6USNyWqskG4vch3uqLg\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 143808.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143808.0\"}}, \"fc6IFrUFydQMo2hfHcOqLg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 27697.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27697.0\"}}, \"VGKshU5bzIdPYiX940SwLg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 195691.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195691.0\"}}, \"YhGi57jZutouXnsH9GfHLg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 11691.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11691.0\"}}, \"5Of74SG9/W96DpqLkPXKLg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 55923.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55923.0\"}}, \"y3Vmos9YspAQxCoqI6LuLg\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 139043.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139043.0\"}}, \"+frVo3muv6V06M/IKtzvLg\": {\"metadata\": {\"community_id\": 119, \"customer_id\": 105897.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105897.0\"}}, \"1Oon+nAU+Py1QICO0rL3Lg\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 63737.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63737.0\"}}, \"VARfV1bcE8iSgeX/DUgDLw\": {\"metadata\": {\"community_id\": 300, \"customer_id\": 77216.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77216.0\"}}, \"7pOwWLDQjqEZj812MoIMLw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 125392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125392.0\"}}, \"mrh7Q4e4jyxYkrYaHRIrLw\": {\"metadata\": {\"community_id\": 184, \"customer_id\": 184761.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184761.0\"}}, \"wIe8AMmvGoVrHsQaNupMLw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 160041.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160041.0\"}}, \"RnBcJDQA/ghDLQ6v3nxjLw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 59448.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59448.0\"}}, \"hk5NHur/fG7YKEZ7C3poLw\": {\"metadata\": {\"community_id\": 301, \"customer_id\": 196285.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196285.0\"}}, \"oRsK7fnKlgVc1w5M9v2PLw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 36033.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36033.0\"}}, \"9rFAyGveDQdoTcKZUAqYLw\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 171788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171788.0\"}}, \"deq3qSOiknCWsbVMWkjFLw\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 81879.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81879.0\"}}, \"qhjwK5yVFJXceVtxx9ARMA\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 171176.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171176.0\"}}, \"QTNx6oL4X1f9yslPIOEfMA\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 13328.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13328.0\"}}, \"E+2Xq5DDpUlkLdDvBpM6MA\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 181989.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181989.0\"}}, \"Yo27tV3GL1QlPVO9Xgs8MA\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 43336.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43336.0\"}}, \"c1kd2WQP6EnqnEHUyx5AMA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 54418.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54418.0\"}}, \"118lQL1ttP5xuIWkGz5JMA\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 95037.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95037.0\"}}, \"T6DOy1T+b+BR6BskRAVMMA\": {\"metadata\": {\"community_id\": 307, \"customer_id\": 137911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137911.0\"}}, \"4zizU9T3lsrxZyVd95tuMA\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 100441.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100441.0\"}}, \"+dvhAHBxRpcc3JD0l919MA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 144911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144911.0\"}}, \"yUy3v6dGwda6RCUo5/KBMA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 85288.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85288.0\"}}, \"ihRDb579O7VarQ0579yJMA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 101408.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101408.0\"}}, \"TLWNjDgOrmFv4k8NQe+wMA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 34076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34076.0\"}}, \"sgu2BdeSWV91ulWfcnHRMA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 177937.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177937.0\"}}, \"XWuOWtv1rRFGAv36ULTZMA\": {\"metadata\": {\"community_id\": 308, \"customer_id\": 40283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40283.0\"}}, \"TRMbN56JfWQj7mhdiELdMA\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 91111.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91111.0\"}}, \"QFKPk5ErCFl9tR5YYp31MA\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 145611.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145611.0\"}}, \"eJYBaXb15Ay5PIUOGzwCMQ\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 133589.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133589.0\"}}, \"MVgPo1NwXZR+BngAq2QfMQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 187818.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187818.0\"}}, \"GjYyHz4ObV6kmsjcMvQfMQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 46086.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46086.0\"}}, \"GJ//Aso190vpgiSuCMInMQ\": {\"metadata\": {\"community_id\": 310, \"customer_id\": 36448.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36448.0\"}}, \"uUCzjxRkoKiyOiDmn6dJMQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 153294.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153294.0\"}}, \"VJ4miKmv2dvTOUuQo0FiMQ\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 148909.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148909.0\"}}, \"UZ6y6lAusJZ6T6c1pzhxMQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 85635.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85635.0\"}}, \"6HKS535LPpWhKpn2J6ajMQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 8424.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8424.0\"}}, \"zbj5HceitgxNgyxaCXK2MQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 30365.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30365.0\"}}, \"Wk1nG7TWHHrjkW5jCMm2MQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 24622.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24622.0\"}}, \"8M3rhKck0REhSjpNtC7YMQ\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 49941.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49941.0\"}}, \"xrJ3jQNVEYLKSG2wsIVQMg\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 167087.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167087.0\"}}, \"E5RFxFLm0rwucZ8uZNlUMg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 44254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44254.0\"}}, \"fwR6mM3NYfCOhSS0Vj1bMg\": {\"metadata\": {\"community_id\": 313, \"customer_id\": 154053.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154053.0\"}}, \"l7I3lB3cXywY3HXs1bt9Mg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 138871.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138871.0\"}}, \"3pLi4d+RCLq4lC3A772EMg\": {\"metadata\": {\"community_id\": 314, \"customer_id\": 107052.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107052.0\"}}, \"yP6QOObDsAHs1VjRToyUMg\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 12455.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12455.0\"}}, \"pgCefxI2zE0FtD8nu6O0Mg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 68061.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68061.0\"}}, \"fNb6tc/91t7GAC/jctvKMg\": {\"metadata\": {\"community_id\": 316, \"customer_id\": 46931.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46931.0\"}}, \"mmZH8gVBkIsf/WBYN3zaMg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 65413.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65413.0\"}}, \"zqCo80r14M+NVkN22VzcMg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 13113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13113.0\"}}, \"nYvgrk6azMPgtq4Gr5vcMg\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 80756.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80756.0\"}}, \"M4N56iTz6LyhT1VwgSjoMg\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 102783.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102783.0\"}}, \"JBXEywy8jAIFIaaiea3oMg\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 170921.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170921.0\"}}, \"93f7IAVfiVHO+9CK8tAGMw\": {\"metadata\": {\"community_id\": 319, \"customer_id\": 20384.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20384.0\"}}, \"TkGzF0VtFvMZR00o+IYWMw\": {\"metadata\": {\"community_id\": 234, \"customer_id\": 59945.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59945.0\"}}, \"J7Ke/4dKti+GVxib2RxLMw\": {\"metadata\": {\"community_id\": 320, \"customer_id\": 191687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191687.0\"}}, \"OrtYZ7zSrgx1JQwhYidPMw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 9862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9862.0\"}}, \"+NTLg1n/OAp1T/gBz+hZMw\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 105689.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105689.0\"}}, \"49SU9wSH7GHxDjHGMs+yMw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 145511.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145511.0\"}}, \"rzFcxkmo/fUZ0TWEtvO2Mw\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 130845.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130845.0\"}}, \"dfhJNnLn2T6N+DAzlIfGMw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 63049.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63049.0\"}}, \"6OdEhQQhOWIlGA0ODNLMMw\": {\"metadata\": {\"community_id\": 209, \"customer_id\": 26833.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26833.0\"}}, \"MjI0xmfXGfCgfcHMPbDaMw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 2548.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2548.0\"}}, \"dtYtPCCrTanY+AdLfGTzMw\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 57930.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57930.0\"}}, \"QrdDL6JUD44vKE1FU/wgNA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 154133.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154133.0\"}}, \"Zh+0dGB/2opkTTQr5085NA\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 10731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10731.0\"}}, \"ouCOwW/QrzKxPCVjsHI6NA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 51363.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51363.0\"}}, \"Qcsa0of7TxrhoWN0jPxeNA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 40451.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40451.0\"}}, \"VZV+c0obhQy70SOsyW5vNA\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 93864.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93864.0\"}}, \"kmTGPRz2k0yUZKHmEjiKNA\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 199328.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199328.0\"}}, \"z8HESHrmU9pp0w+KLN2NNA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 24509.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24509.0\"}}, \"MZv1gsgN9o3VF/brc9GUNA\": {\"metadata\": {\"community_id\": 324, \"customer_id\": 182028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182028.0\"}}, \"TETkfceYjomyctQgahadNA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 73451.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73451.0\"}}, \"KMleOwgXGNplcmZFeNWjNA\": {\"metadata\": {\"community_id\": 325, \"customer_id\": 72868.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72868.0\"}}, \"yt8+YJQAZqCKOf5cVKWlNA\": {\"metadata\": {\"community_id\": 326, \"customer_id\": 11733.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11733.0\"}}, \"K1/A/RTcPKClvEGG70qqNA\": {\"metadata\": {\"community_id\": 52, \"customer_id\": 57559.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57559.0\"}}, \"d7cfpeFTwYWLuU7WK5u8NA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 198776.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198776.0\"}}, \"vLFjoEu+CQIXNXB3XvnINA\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 18456.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18456.0\"}}, \"HbngqRZ1/oSZb7WR1lnUNA\": {\"metadata\": {\"community_id\": 272, \"customer_id\": 109486.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109486.0\"}}, \"zvGeU+VcJmW6QjWCy7rXNA\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 177346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177346.0\"}}, \"f24Xi8c/0Fdxk2+NzM7jNA\": {\"metadata\": {\"community_id\": 328, \"customer_id\": 140023.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140023.0\"}}, \"rzJUaPiHt2NUPHoWWCfuNA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 52484.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52484.0\"}}, \"Geq3alYhTi8s1rs4KRQkNQ\": {\"metadata\": {\"community_id\": 330, \"customer_id\": 48212.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48212.0\"}}, \"7Jz2tWyndpnXhKTatCg0NQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 144722.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144722.0\"}}, \"PI1Us3jqDlTa6XXAUUM2NQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 133386.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133386.0\"}}, \"GzbwEpelVBu6aiwYm+Q7NQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 184003.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184003.0\"}}, \"vcGMItDb18P4MiqQtBg9NQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 112482.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112482.0\"}}, \"VW/3wn1Ua34HQooLnX2bNQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 164845.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164845.0\"}}, \"y1ddPhWn8OawoC33VNunNQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 150742.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150742.0\"}}, \"wivzWNqrkkl8zEKhr6mwNQ\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 165604.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165604.0\"}}, \"8l4iqTxQwu+5R2t40Ua0NQ\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 21339.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21339.0\"}}, \"aTd06n7GzqvPoy04Amm/NQ\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 196885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196885.0\"}}, \"FocYZ2czD2rOLZNlCDLhNQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 88415.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88415.0\"}}, \"GGG3GLyEkkn6TlX9FkYjNg\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 173132.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173132.0\"}}, \"+Rb0njpcOXDpaiJ6vmA4Ng\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 153019.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153019.0\"}}, \"U3NKDsVT0UakD3a8oMZsNg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 145129.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145129.0\"}}, \"yyo4QzO+toBAnp5zD/2MNg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 52472.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52472.0\"}}, \"L8yNKzJqcqaVQqBU762QNg\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 35851.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35851.0\"}}, \"rXwmglMMZnc6Yf56zT6cNg\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 197829.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197829.0\"}}, \"Ud/MzJXQJ6KFdZpM+gO1Ng\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 7731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7731.0\"}}, \"o+1THDudDNgd5LeGu621Ng\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 29609.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29609.0\"}}, \"wlAJo/RlvognTYu62pnBNg\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 52453.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52453.0\"}}, \"OI/ydWTogQ/yJqrsKqnXNg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 81319.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81319.0\"}}, \"0yaCMg5tnqv/eCXpc+syNw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 102025.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102025.0\"}}, \"blQQCVqfYrEIWYH4ZHQzNw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 74748.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74748.0\"}}, \"5Mnxw2ItqZFTnRcqOtQ/Nw\": {\"metadata\": {\"community_id\": 123, \"customer_id\": 66229.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66229.0\"}}, \"Kd5jV4cKPchRaI9ODUGXNw\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 46729.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46729.0\"}}, \"JIIcZtdNc3gO1hbq4vDzNw\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 167973.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167973.0\"}}, \"sIgfRFv7kfqGfRO0nED2Nw\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 147655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147655.0\"}}, \"u9tpxhNNcS/7dFt97stROA\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 58691.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58691.0\"}}, \"7VxW5gODW0HzIt9IxfRVOA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 118794.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118794.0\"}}, \"1yukRzWql92dVK/8H+xhOA\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 190031.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190031.0\"}}, \"eWoysQjmb1YXqETtx01uOA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 140251.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140251.0\"}}, \"WmX+Bd3+PspInoASh3GROA\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 132203.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132203.0\"}}, \"X9cbaOn+LnG2DAfiAe2aOA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 141968.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141968.0\"}}, \"HjbBXpRquXhoMGLikIGrOA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 31376.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31376.0\"}}, \"mrM4ROiVkGaCfKkD2OPCOA\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 88758.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88758.0\"}}, \"ii3tszFdiAhbrHyv0f7DOA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 72630.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72630.0\"}}, \"0ffo8htqDpK9tZnBD4THOA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 12274.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12274.0\"}}, \"4IorKL4CJGfv5Xy/10jaOA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 125331.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125331.0\"}}, \"BpRR0QhEMrdljaEKAwDnOA\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 78722.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78722.0\"}}, \"jw3uDJbwqaXK2CElqcXwOA\": {\"metadata\": {\"community_id\": 227, \"customer_id\": 35575.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35575.0\"}}, \"XDch17TWpi6KnT3vVbMAOQ\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 109567.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109567.0\"}}, \"hN89C2iTzaduKojIrKJAOQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 152799.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152799.0\"}}, \"QFU2MEjXqNUYBodQv55IOQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 41409.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41409.0\"}}, \"kVGEDdEcZATOkoKpVm9fOQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 102107.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102107.0\"}}, \"TL5s/frCf3gd9X1oCJZ0OQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 82845.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82845.0\"}}, \"i3zgrHGhwU1ZCoHDBm6BOQ\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 149460.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149460.0\"}}, \"f4qGvK6jVxaOQVXbKMmGOQ\": {\"metadata\": {\"community_id\": 335, \"customer_id\": 34308.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34308.0\"}}, \"DhizICH7mxQCp4zSzsSLOQ\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 82653.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82653.0\"}}, \"7tbayrhcwEFuJlOLEUmPOQ\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 75886.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75886.0\"}}, \"Ydq9OqivGkHhR4sOMxuSOQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 125983.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125983.0\"}}, \"U3CatnBWnxP2vm+b6lWnOQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 81293.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81293.0\"}}, \"sz1wpqB2jxUvK7682RnHOQ\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 26832.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26832.0\"}}, \"VMHBJSbwjrpqQxe7xSHOOQ\": {\"metadata\": {\"community_id\": 338, \"customer_id\": 181984.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181984.0\"}}, \"YKL0iF5OjEnX3U+aQiPxOQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 117453.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117453.0\"}}, \"R20ccImKXtHGaosBHaEMOg\": {\"metadata\": {\"community_id\": 339, \"customer_id\": 25009.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25009.0\"}}, \"6z38xJT8PJ+OX2wGh3AZOg\": {\"metadata\": {\"community_id\": 277, \"customer_id\": 12113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12113.0\"}}, \"SDfPe+g+qKIRwCGUZ309Og\": {\"metadata\": {\"community_id\": 340, \"customer_id\": 69882.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69882.0\"}}, \"DVXpioDNFY1CEMdD0M1BOg\": {\"metadata\": {\"community_id\": 227, \"customer_id\": 77742.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77742.0\"}}, \"tBSpZbKt95ZOs+uKf3ZjOg\": {\"metadata\": {\"community_id\": 341, \"customer_id\": 92202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92202.0\"}}, \"JTvwqLDX31+2hz07xl5yOg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 152084.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152084.0\"}}, \"GrqrBuWDMZVbhSwmYox8Og\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 156681.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156681.0\"}}, \"HIlgfYinDLoYqQs7OaamOg\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 142392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142392.0\"}}, \"Os8EzZqwnhhmbmny3t/aOg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 95118.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95118.0\"}}, \"yB4nFjITPKoh7bEpLPDzOg\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 14575.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14575.0\"}}, \"9kBqWNP1i1TjWuY6XIL7Og\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 64488.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64488.0\"}}, \"+uAcgSKO2bNolKgqpWQIOw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 178410.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178410.0\"}}, \"lzG09nQSYpfLweqcxR9KOw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 177205.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177205.0\"}}, \"/8YpjmS6ea+0tmqCIWNvOw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 139543.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139543.0\"}}, \"pPWaOIY5snaVaOt3uiN1Ow\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 122240.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122240.0\"}}, \"KsAKs7t7Z8NDli2Ph9N3Ow\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 95701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95701.0\"}}, \"rt/IZulKGE61yudVPiWLOw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 109211.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109211.0\"}}, \"DK7xT9uf0LeeXUMjF5eeOw\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 105262.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105262.0\"}}, \"aUsB1m1dWOhCOv1IOrurOw\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 153514.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153514.0\"}}, \"i+mEeURUNZMkwdukcXesOw\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 134166.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134166.0\"}}, \"wx8mXJPztJumhis0sY+tOw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 196997.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196997.0\"}}, \"PTd+448E4V6kEdjyxkzCOw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 50102.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50102.0\"}}, \"AAlv0/vwcPMrCI1zCwbfOw\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 3086.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3086.0\"}}, \"EwsQJO9BG79bRBbT6sbtOw\": {\"metadata\": {\"community_id\": 345, \"customer_id\": 1099.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1099.0\"}}, \"kdyzdInEahDDJDFc45n6Ow\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 52799.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52799.0\"}}, \"NqG+c1a1lIoBlf+gygANPA\": {\"metadata\": {\"community_id\": 294, \"customer_id\": 159271.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159271.0\"}}, \"UMbT8esxzL0+gc3dtkQaPA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 197639.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197639.0\"}}, \"yomEKZktx2kx0s5Uz6Q5PA\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 194664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194664.0\"}}, \"tQITkugM/C3R1+isp/E6PA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 33069.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33069.0\"}}, \"eU//jS/YGhjXUkc31H9SPA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 67741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67741.0\"}}, \"WNsmKI9Jb0iXFNPu7hJ1PA\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 60667.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60667.0\"}}, \"+8ER2sMgrYPshQENDsp1PA\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 95687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95687.0\"}}, \"MLdSmvn3v1YguLOrXiSDPA\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 139655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139655.0\"}}, \"HXJ7/V8OtxHH2EN916GePA\": {\"metadata\": {\"community_id\": 92, \"customer_id\": 191295.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191295.0\"}}, \"lxovHFLCK1G/Kp7GpW2jPA\": {\"metadata\": {\"community_id\": 347, \"customer_id\": 33001.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33001.0\"}}, \"9Qmf5uaVlfG6fz+GqXbAPA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 160722.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160722.0\"}}, \"fiXjQ3gIe6eKQJNBSzjLPA\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 170115.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170115.0\"}}, \"izLXj7XivmVFEI8heob6PA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 6270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6270.0\"}}, \"D5+KfnZfLerid2bgjR8uPQ\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 179692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179692.0\"}}, \"InRmCKqhMYij+gzBJsA2PQ\": {\"metadata\": {\"community_id\": 271, \"customer_id\": 64229.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64229.0\"}}, \"SuNo1A6pPVft9vfEaDA7PQ\": {\"metadata\": {\"community_id\": 10, \"customer_id\": 11187.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11187.0\"}}, \"UpdDOZZ/nnNC6z5GD0lrPQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 80948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80948.0\"}}, \"WC0EmD43hs84OV0WQld1PQ\": {\"metadata\": {\"community_id\": 348, \"customer_id\": 136374.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136374.0\"}}, \"QfPcP1f2mG6CK6IQ/xOPPQ\": {\"metadata\": {\"community_id\": 349, \"customer_id\": 5462.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5462.0\"}}, \"DlQJmZhrLcSFewBXCcWdPQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 124215.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124215.0\"}}, \"ZwC6Jos8tXbLFjtN+qWqPQ\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 176903.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176903.0\"}}, \"KteAmg/1DwFRDn3bRbuzPQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 13994.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13994.0\"}}, \"Tvk5iFzPudwpAjBrr/C3PQ\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 67206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67206.0\"}}, \"Z8jlpMCdujC4++qzmq3BPQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 50330.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50330.0\"}}, \"f3OysywHhD6Z8jwa/VbQPQ\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 185578.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185578.0\"}}, \"xTR0hple3jVx3DJEv73gPQ\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 177906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177906.0\"}}, \"rfNNiCvdTiGlx3UokrcLPg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 179423.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179423.0\"}}, \"8NClRelN6TKhc2JQrXUPPg\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 139234.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139234.0\"}}, \"VZDm4Fhi1cPeNnGwibUPPg\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 155806.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155806.0\"}}, \"bdXYpNo41ar0262WrMYoPg\": {\"metadata\": {\"community_id\": 352, \"customer_id\": 82986.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82986.0\"}}, \"4UwkwFD6vbUHvdt1KNwrPg\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 147368.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147368.0\"}}, \"hUAZT7kt1KUkZ4fbtDs/Pg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 66590.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66590.0\"}}, \"qdvG7gcskrjeWirNiH5iPg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 42321.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42321.0\"}}, \"HF0jaPfeSJtgaaVfxuZmPg\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 103151.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103151.0\"}}, \"v/fbMN99v35S6/2pLoiEPg\": {\"metadata\": {\"community_id\": 354, \"customer_id\": 5202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5202.0\"}}, \"thNRJ+Ek8LABph+n40eNPg\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 100665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100665.0\"}}, \"gx0mZi7s5KN1g7OHmM+XPg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 165617.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165617.0\"}}, \"fEuMTfxSadNfJoNM6t+XPg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 31804.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31804.0\"}}, \"kX1AeJhRCfClQVM+CSaZPg\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 75788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75788.0\"}}, \"egTXUYy7nfoHpJfpy2afPg\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 140999.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140999.0\"}}, \"DH0rbjPPkEJYJ4iOLqWmPg\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 143920.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143920.0\"}}, \"L4+2ZMmnc8gTOu8mN1LjPg\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 144085.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144085.0\"}}, \"pgaiIo5Awks0fC4Gk+ABPw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 77577.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77577.0\"}}, \"NPfCKgsf74P+xfBuYOkBPw\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 23734.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23734.0\"}}, \"dC3LeDMaq+ZhSi3JoXcDPw\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 189573.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189573.0\"}}, \"PvFb6I9HEC3Jb5xbzEwLPw\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 23948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23948.0\"}}, \"/DasHcz9qDrGxipjpxZYPw\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 191405.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191405.0\"}}, \"EjYVLbjXyyFjMsvonN9ePw\": {\"metadata\": {\"community_id\": 357, \"customer_id\": 141544.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141544.0\"}}, \"kE/iXEylgaiZzGqa0NliPw\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 182331.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182331.0\"}}, \"DhYgYjdAip/3+eZn4S9qPw\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 70261.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70261.0\"}}, \"nsXSmtJQKEtoW+A+WbRuPw\": {\"metadata\": {\"community_id\": 359, \"customer_id\": 142850.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142850.0\"}}, \"4hZmMgnJIT+452lBnYuVPw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 163565.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163565.0\"}}, \"dOitCDCE63Unt2Uz+02yPw\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 94673.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94673.0\"}}, \"OUYfjK3qliQPxJkOHd/MPw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 153923.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153923.0\"}}, \"FE7mqW78yTU9wwMAC7HbPw\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 59555.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59555.0\"}}, \"EpddrIm7N5G8G23V6jMJQA\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 29584.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29584.0\"}}, \"xlm0G+Xzw41Rm+YvXlwZQA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 139414.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139414.0\"}}, \"6Ljl9ocEXnB7/rCeJuhBQA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 93826.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93826.0\"}}, \"lZJSocdEIWg2qfH2eRpeQA\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 91176.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91176.0\"}}, \"gdgrqfKRzrB2XWkXMYRgQA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 36660.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36660.0\"}}, \"xVgSzLLJX7f2LxUQjaVnQA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 128852.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128852.0\"}}, \"3ysewCXPmGRHKwwmyptuQA\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 93169.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93169.0\"}}, \"HjiL/TAGzcamF/nUBzeFQA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 148282.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148282.0\"}}, \"gt6r2GNUZyrgLRd88ouJQA\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 57973.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57973.0\"}}, \"Bvlmxnniuxc85ZjU+CuOQA\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 72804.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72804.0\"}}, \"LAnZCtjOl2bhcv2vZlGOQA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 109901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109901.0\"}}, \"wSbdhtDL5S2z1K8YGhuQQA\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 164753.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164753.0\"}}, \"GshRXihzIo3/9uNPAYilQA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 15629.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15629.0\"}}, \"FVzQrHoO4Xmx/ObIjHGqQA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 13897.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13897.0\"}}, \"CfRf9yRZVZ42QN1Q6w/tQA\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 172390.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172390.0\"}}, \"9WCffFE9Mw7TEa6DHJwkQQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 61917.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61917.0\"}}, \"TH2nlEfNlTbfzWVGhDc3QQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 166960.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166960.0\"}}, \"ZzvzUT8crgIkBFwdFBBEQQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 174914.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174914.0\"}}, \"hUiWm2ZzAZ3XyhwYaMGGQQ\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 71241.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71241.0\"}}, \"GvVaeFtGWMdr6uDDVcKOQQ\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 73696.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73696.0\"}}, \"lM1KF8F6d89mNUIA002mQQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 159885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159885.0\"}}, \"Svbu70DdkVOl27oKzxuvQQ\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 102165.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102165.0\"}}, \"nlX50aGPxITwrjO4N7TUQQ\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 31186.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31186.0\"}}, \"OTAk+XizNExtptGmcZ/YQQ\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 142750.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142750.0\"}}, \"+RbgpxXNqLHXHYiw+1f+QQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 21853.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21853.0\"}}, \"NusVDiix1Smp76/E438NQg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 196232.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196232.0\"}}, \"mQ7tVUOG/uH2XHt3C1YnQg\": {\"metadata\": {\"community_id\": 308, \"customer_id\": 187812.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187812.0\"}}, \"+YCMtJjW5r1HUEkrpuZIQg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 152741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152741.0\"}}, \"j4IK5nCCNuS7CCju09hlQg\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 111035.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111035.0\"}}, \"wpR4LPmkbscTQ47aqutyQg\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 55523.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55523.0\"}}, \"4ZZRg+v5JVI9y2rYz/arQg\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 136514.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136514.0\"}}, \"8QVDvYH9xxe4NWKCDrG2Qg\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 182261.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182261.0\"}}, \"nKe2lnx8Wl2cfijCKn+3Qg\": {\"metadata\": {\"community_id\": 367, \"customer_id\": 151330.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151330.0\"}}, \"k0enGgElWRs9A+5NRNS8Qg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 51027.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51027.0\"}}, \"LWvoOHWcJwMOVIrQGvXLQg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 79090.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79090.0\"}}, \"DKAWdo6As2L2HUFCvXjbQg\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 19539.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19539.0\"}}, \"oMgttsFpag2MzaDeUJLmQg\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 122233.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122233.0\"}}, \"VWYTv+j475LNrLs7gCP9Qg\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 108663.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108663.0\"}}, \"eLVohINWQqpjz9ZXpnMOQw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 173615.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173615.0\"}}, \"muD2o32/rvJ6qO3uaY8vQw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 145243.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145243.0\"}}, \"ym1mmV/zdlaPSNH2NZRaQw\": {\"metadata\": {\"community_id\": 58, \"customer_id\": 2337.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2337.0\"}}, \"vjDrwdMF72php/TR16xxQw\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 80453.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80453.0\"}}, \"iOb2c9ib1dpXVg05OiJzQw\": {\"metadata\": {\"community_id\": 368, \"customer_id\": 34134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34134.0\"}}, \"2NkehMA6nPR3sXPYqd12Qw\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 199342.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199342.0\"}}, \"NT51/BBSLEzC/YF2jxWkQw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 80722.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80722.0\"}}, \"22CPbcrrBAQIB6Uhv2CtQw\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 56051.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56051.0\"}}, \"8fOcjVMM97bF0nHRwpmwQw\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 63941.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63941.0\"}}, \"hvQCUOVVWEUK6absn+CyQw\": {\"metadata\": {\"community_id\": 370, \"customer_id\": 98518.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98518.0\"}}, \"rXkCDNRNSVG5itmWEa+0Qw\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 94544.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94544.0\"}}, \"Q8AlycToBKVFjB1QrFvIQw\": {\"metadata\": {\"community_id\": 372, \"customer_id\": 36176.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36176.0\"}}, \"J7dxhY+mTwsgrvRun4vIQw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 94419.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94419.0\"}}, \"NXtITLwY/XNBuvLK70PXQw\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 67519.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67519.0\"}}, \"NMDpgfX8D3+RhKXJwIrfQw\": {\"metadata\": {\"community_id\": 373, \"customer_id\": 191576.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191576.0\"}}, \"77iPv90BW5iJ8c7Iz2LuQw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 187936.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187936.0\"}}, \"8iebXCqtG1eN+lGV7HH8Qw\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 152611.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152611.0\"}}, \"AHkiHkN1YD8HiUKcuM8DRA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 37375.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37375.0\"}}, \"rbgJY/m+OO8EhjJplaEWRA\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 131156.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131156.0\"}}, \"liBrYiJanb7tl/OaVcpARA\": {\"metadata\": {\"community_id\": 298, \"customer_id\": 23039.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23039.0\"}}, \"EZajhl39OsXmqiSpuFxPRA\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 155215.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155215.0\"}}, \"p49Fh3DpndPGDHlKDL5RRA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 178981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178981.0\"}}, \"s5rYWe8YJ6DEhjCr4P5iRA\": {\"metadata\": {\"community_id\": 375, \"customer_id\": 118251.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118251.0\"}}, \"5GNyvObSsBPX6MLHNtxyRA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 7834.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7834.0\"}}, \"e66HgXZ0Dd9pxVG+Mc2JRA\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 23580.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23580.0\"}}, \"QOy58Co3JRbiEU3GogWNRA\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 193935.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193935.0\"}}, \"vyL9TIMjcuScOBNcE+ScRA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 142434.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142434.0\"}}, \"FE4q4bQKSwYZK+FHrWWgRA\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 32217.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32217.0\"}}, \"R9Lpgl8efAju6ZpoTg2iRA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 150224.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150224.0\"}}, \"imzcpoBNOLHSZyZXErylRA\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 197976.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197976.0\"}}, \"VI26TkOgYTwvvdTzNROoRA\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 172741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172741.0\"}}, \"uKRVRvJ+p5AZp6PXEmbVRA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 126158.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126158.0\"}}, \"cJV6ZU5D/C9ybgB24bfVRA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 157767.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157767.0\"}}, \"Ux6au0DBAXaqHpV/RNnaRA\": {\"metadata\": {\"community_id\": 378, \"customer_id\": 191429.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191429.0\"}}, \"aWgN5cqeT7YYPzmmF4rfRA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 154800.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154800.0\"}}, \"O+V1EgwBZppu7hmH3BPzRA\": {\"metadata\": {\"community_id\": 379, \"customer_id\": 91579.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91579.0\"}}, \"Ui/0A3wBxzeKBPvoCCkYRQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 109859.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109859.0\"}}, \"kOMnWfmlMTJk3xPhEQgqRQ\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 17865.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17865.0\"}}, \"J9jUserjmCZ39iAnKJZARQ\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 58793.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58793.0\"}}, \"QNJ0t5GrRws4c5Ryv6lHRQ\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 146837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146837.0\"}}, \"imglETtywlrVcvzIwI5aRQ\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 177357.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177357.0\"}}, \"AB6JX81ub1q0qaT/06h8RQ\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 96721.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96721.0\"}}, \"IYgL0K/UrNk0p3Baa1N/RQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 90024.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90024.0\"}}, \"ihle6Lr2WCOEHf3ter6fRQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 119115.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119115.0\"}}, \"1FGUAXuCvr8NsxHFaO7ARQ\": {\"metadata\": {\"community_id\": 380, \"customer_id\": 144247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144247.0\"}}, \"J53P0IkFKVfzsXe/Ta3CRQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 150744.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150744.0\"}}, \"j2aDJCmt7q7D2VRoSB3JRQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 119327.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119327.0\"}}, \"Jr47GnKDcqO8qnyRy6PSRQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 148638.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148638.0\"}}, \"7t4SY1vCVINoIMbgrdPkRQ\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 146755.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146755.0\"}}, \"CxXkjGu2Nlr/09RxlGrpRQ\": {\"metadata\": {\"community_id\": 106, \"customer_id\": 86165.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86165.0\"}}, \"ALTewdivDV/ha76oe0fsRQ\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 164557.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164557.0\"}}, \"Qyug5sP5mhFfOqoC1UzsRQ\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 48784.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48784.0\"}}, \"e3PtXxVdlrus06SK1N/6RQ\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 33283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33283.0\"}}, \"uRBQkWEdVbeNQ9xfJLkIRg\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 138718.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138718.0\"}}, \"D8uBDEKTvYV7V2AXqdYNRg\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 139308.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139308.0\"}}, \"S72IL4YSDnZZA425LPseRg\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 147768.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147768.0\"}}, \"LO6Cn+YTpzSOAnEo9esvRg\": {\"metadata\": {\"community_id\": 139, \"customer_id\": 151972.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151972.0\"}}, \"lqVFqi7mcd2hzZDi+SNGRg\": {\"metadata\": {\"community_id\": 384, \"customer_id\": 179576.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179576.0\"}}, \"M1y5hXH0hVEApIW5iJ1HRg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 77456.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77456.0\"}}, \"ZXBZdqAF3xm7IzHq5J1VRg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 11488.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11488.0\"}}, \"DO1jzZFQdAAskqacb4ZeRg\": {\"metadata\": {\"community_id\": 385, \"customer_id\": 196835.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196835.0\"}}, \"/p+phwA8hAMIeSUv3ihmRg\": {\"metadata\": {\"community_id\": 386, \"customer_id\": 89156.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89156.0\"}}, \"OTYw29EpzE8fZI954el3Rg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 46260.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46260.0\"}}, \"LUmeD6EQPRf0Zw7B+iN6Rg\": {\"metadata\": {\"community_id\": 42, \"customer_id\": 33346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33346.0\"}}, \"C0lM+vSEaaT/IWOghVGARg\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 30767.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30767.0\"}}, \"NVczU2cHqw/8i0p//W2MRg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 191117.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191117.0\"}}, \"bK6/ywJvHiPC8jeX0h2zRg\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 27007.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27007.0\"}}, \"dBRqkyn6shmbpWrSZaHARg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 2442.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2442.0\"}}, \"EdEant+ae0LEoqOeV6jERg\": {\"metadata\": {\"community_id\": 256, \"customer_id\": 20823.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20823.0\"}}, \"jyjn/VXmPCyky36DAXHIRg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 27678.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27678.0\"}}, \"naXz8IWsp750AAUIcEzJRg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 113579.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113579.0\"}}, \"CoryOarI0mEf4885yBnMRg\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 175777.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175777.0\"}}, \"LUjjh0xV0bKoEVWW1hnWRg\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 198053.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198053.0\"}}, \"Gan7ZZVQhOZ9l4LX4oznRg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 17216.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17216.0\"}}, \"mnk4NmT6j5Sgh6UeBYfuRg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 155974.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155974.0\"}}, \"KJEfvuLac+nSxhHuB/L7Rg\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 115071.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115071.0\"}}, \"0tfzKiqfAXj9nFago+QBRw\": {\"metadata\": {\"community_id\": 80, \"customer_id\": 18706.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18706.0\"}}, \"8r55dj/JwBrDybXJWyQSRw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 102581.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102581.0\"}}, \"G7/xMwCxUY6aMLpdikocRw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 19386.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19386.0\"}}, \"oCOW0mRITDqwiopKqDIiRw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 124912.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124912.0\"}}, \"SssatqK3hP1QznpmsvEoRw\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 30361.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30361.0\"}}, \"pYlTvg387QEobSKG4JksRw\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 16516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16516.0\"}}, \"AgTa7bKh9MmBJAaiAAE6Rw\": {\"metadata\": {\"community_id\": 194, \"customer_id\": 193291.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193291.0\"}}, \"rXfvX3u/2hfcp3byjIJBRw\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 69270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69270.0\"}}, \"DJnQmC7rRNI9KohvnfZERw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 123241.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123241.0\"}}, \"N3vEw/7LBzj7u0aepCJFRw\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 50862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50862.0\"}}, \"jgVNAsOxee4qAIu4Pw17Rw\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 148169.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148169.0\"}}, \"zK2i3Ls/9w5NBkwfx7F7Rw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 155809.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155809.0\"}}, \"pcAaJGkNoaKboOUIf7l9Rw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 199620.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199620.0\"}}, \"Y4HpFSDpB/pb5VCJTwiQRw\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 13655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13655.0\"}}, \"JglA7absRTpBaoWEMEWXRw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 3040.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3040.0\"}}, \"/5BFUkTesobt+C2GA42cRw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 64727.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64727.0\"}}, \"/oz5D6qx21CJbLduu9mkRw\": {\"metadata\": {\"community_id\": 134, \"customer_id\": 34598.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34598.0\"}}, \"aZ9AyPjf2OgaKfRYk4KuRw\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 132984.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132984.0\"}}, \"nSw0eUskiHWpYHPIy4zIRw\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 107818.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107818.0\"}}, \"5hZtqsiLHbi1NqVfW5PKRw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 72977.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72977.0\"}}, \"SNmVHg4+txr17tuDDEzSRw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 152897.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152897.0\"}}, \"eNm73uTArP4UKMj8vLHpRw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 75130.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75130.0\"}}, \"CG15xx+fRRlt+sL6G1fqRw\": {\"metadata\": {\"community_id\": 390, \"customer_id\": 119095.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119095.0\"}}, \"I1AeZzIB6CjfTTcTE7n+Rw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 114644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114644.0\"}}, \"71iA9qV2BUl8sqhSgukASA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 155674.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155674.0\"}}, \"tWOkiXBLW15DgKI96XQQSA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 107555.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107555.0\"}}, \"0AvZ3yTTfxKv6PWjeYkiSA\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 1306.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1306.0\"}}, \"8ZQvaCv1scRUhplnRb8mSA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 146940.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146940.0\"}}, \"tZ670LCRnqYmZFgy501YSA\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 74338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74338.0\"}}, \"/SXshfQ4e66loe29E5xgSA\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 154242.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154242.0\"}}, \"wtugXF+7qE82ez/dX8NvSA\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 8219.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8219.0\"}}, \"QcnP7E4XqR4YLJ2LdOJ9SA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 182338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182338.0\"}}, \"JhqYKo/AXz59R4vLLyeJSA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 189470.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189470.0\"}}, \"8gDLDfXLxM28SJRP0dizSA\": {\"metadata\": {\"community_id\": 79, \"customer_id\": 107569.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107569.0\"}}, \"9F6DxcwNzhY3s6yudOTDSA\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 101066.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101066.0\"}}, \"nXuX1q5CqzGnJV+eNRDISA\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 49631.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49631.0\"}}, \"5/iIlMEl3Flhj0dFtY7JSA\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 15202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15202.0\"}}, \"oV0tCAoy/67CcunzmRnpSA\": {\"metadata\": {\"community_id\": 391, \"customer_id\": 159403.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159403.0\"}}, \"VwrOoBFsxcsMJpuOmUULSQ\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 1217.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1217.0\"}}, \"5htVZaN4DNSg5D/11IMaSQ\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 135779.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135779.0\"}}, \"lO9MQjl7ZdMuYQV0CokeSQ\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 128660.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128660.0\"}}, \"SECy+0u+2YtIyzgbZIcgSQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 51691.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51691.0\"}}, \"OG2o1vAj49gdK8LP2VooSQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 148732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148732.0\"}}, \"roNyJxmSzevCeoq7B4MwSQ\": {\"metadata\": {\"community_id\": 393, \"customer_id\": 137993.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137993.0\"}}, \"x9gxsxVegryFTUoduSA1SQ\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 67267.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67267.0\"}}, \"XU24yr/ZZYJLIUWRlyZPSQ\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 162105.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162105.0\"}}, \"wbPAkwU7l5fq1Q4QU4xUSQ\": {\"metadata\": {\"community_id\": 395, \"customer_id\": 170282.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170282.0\"}}, \"zu1oyAK0SZx27NVzxCVkSQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 166306.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166306.0\"}}, \"SBNtJnW3Lo3nbtXncDpmSQ\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 189.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189.0\"}}, \"GPneXxn/W3TbBC5am7l0SQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 186159.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186159.0\"}}, \"oGIy1SeOMj2/qGAyuTp1SQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 58300.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58300.0\"}}, \"5YGAR6dLsSNn1A529+x/SQ\": {\"metadata\": {\"community_id\": 396, \"customer_id\": 101498.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101498.0\"}}, \"MAxDghRGm9FTe6u+ICeTSQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 49581.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49581.0\"}}, \"evFrRg0OxE/+9bIf43KaSQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 104360.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104360.0\"}}, \"z30Gf3D0E1lDmg/K5I26SQ\": {\"metadata\": {\"community_id\": 397, \"customer_id\": 148529.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148529.0\"}}, \"7Oho6Z20dihFORKOVpu6SQ\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 97116.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97116.0\"}}, \"OSeyIFxuP+o3Yh/Hwo4aSg\": {\"metadata\": {\"community_id\": 244, \"customer_id\": 159981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159981.0\"}}, \"H6Q8EBjmrFQ71jp9fVgjSg\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 180686.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180686.0\"}}, \"9mzsTI4zPBXs++IY6nIwSg\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 143837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143837.0\"}}, \"Q4z7ZXuTWCeHiSWjY/RLSg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 70566.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70566.0\"}}, \"7JHQoIsP0g4FS2VokidWSg\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 153641.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153641.0\"}}, \"VTOkVft5FrNUyE5fBt51Sg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 54388.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54388.0\"}}, \"0PwYW8mRbpa9Mpnu9DSNSg\": {\"metadata\": {\"community_id\": 399, \"customer_id\": 196102.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196102.0\"}}, \"SmZUCSQkckSaD6bxuaqjSg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 82164.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82164.0\"}}, \"h3tGHaX0JqWf6UeIgZeuSg\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 60858.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60858.0\"}}, \"w/FcbfRxQvw1pK7Q0yqzSg\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 58089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58089.0\"}}, \"eo4vpF7nVaIftXjavEnGSg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 166478.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166478.0\"}}, \"uUCDilQXqpQUOOB0ZFjJSg\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 44424.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44424.0\"}}, \"gAzw07bKPCnVDOF1lzf8Sg\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 155089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155089.0\"}}, \"4n9iCHRmvy7wi5E8w50CSw\": {\"metadata\": {\"community_id\": 401, \"customer_id\": 176278.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176278.0\"}}, \"k4BLc8VJPYj1HiQLZE0fSw\": {\"metadata\": {\"community_id\": 287, \"customer_id\": 98172.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98172.0\"}}, \"aWe7skIST5t4AzA77+EsSw\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 95812.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95812.0\"}}, \"TCY550vk9vsifylpEHU9Sw\": {\"metadata\": {\"community_id\": 402, \"customer_id\": 108976.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108976.0\"}}, \"hBTV8gHKW131TEj7XT9BSw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 103200.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103200.0\"}}, \"L2ysSMWtWvLFNQcmBeFLSw\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 29952.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29952.0\"}}, \"dAHx8sgeJ7beftxxEKR1Sw\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 15731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15731.0\"}}, \"9uuEGhRv+nnRtMzAzjB2Sw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 138104.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138104.0\"}}, \"yFABn+VCmS63kgHUgUp9Sw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 161263.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161263.0\"}}, \"WS2zfixx34S6YAYVqPuFSw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 97569.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97569.0\"}}, \"SYg1UZl2xRlPu6/W05iOSw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 38842.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38842.0\"}}, \"e2hKmTwsutq/a8SqkTmUSw\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 22255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22255.0\"}}, \"BBcjp3mKb0dkgN5rywu5Sw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 93507.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93507.0\"}}, \"nQiQKsGxgxQbKUGv2pLTSw\": {\"metadata\": {\"community_id\": 403, \"customer_id\": 180253.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180253.0\"}}, \"BY1jEgFuwflESgCTbV/XSw\": {\"metadata\": {\"community_id\": 404, \"customer_id\": 138114.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138114.0\"}}, \"lkzhROxDtXgOQX5cWdPhSw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 28551.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28551.0\"}}, \"CTCn3Fgh6h156cuq7dXkSw\": {\"metadata\": {\"community_id\": 405, \"customer_id\": 86114.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86114.0\"}}, \"tMN/g0oGryogyXQvhLf+Sw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 13918.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13918.0\"}}, \"wd8lEJNfPOaevsTPxygQTA\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 67983.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67983.0\"}}, \"Vd7FOp9N0ziiH4xcw34vTA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 188473.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188473.0\"}}, \"XeGKIwBj2l/BdnCHeKgxTA\": {\"metadata\": {\"community_id\": 294, \"customer_id\": 142039.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142039.0\"}}, \"Xo/JU3qR/3/wCmPN37SrTA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 144293.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144293.0\"}}, \"MbYMRdaNc3zs4dLbhIazTA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 66091.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66091.0\"}}, \"+Tr4VhOKdmGJNou32+26TA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 41553.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41553.0\"}}, \"Z2Wr1N00QeD7yeo+jzHHTA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 139609.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139609.0\"}}, \"pk5B0OVLBJS0AxojkgDPTA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 12346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12346.0\"}}, \"PiJmAxkbdCeOWOHSKl/zTA\": {\"metadata\": {\"community_id\": 319, \"customer_id\": 23244.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23244.0\"}}, \"p2QDiSm6RlYOAvJqDpb0TA\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 69243.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69243.0\"}}, \"3twap36E2VebRsb5toQFTQ\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 30107.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30107.0\"}}, \"KHMZW0HFBIMS9c1KqNoXTQ\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 76367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76367.0\"}}, \"ocP4qC/3EO7sFT+R6aIZTQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 48145.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48145.0\"}}, \"ODH4G/1dGsJI0ltnCWxSTQ\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 199972.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199972.0\"}}, \"Aqj0URYRADum8//AEpFSTQ\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 78442.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78442.0\"}}, \"iqOPT8+OtBjqMEsIZx2STQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 165642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165642.0\"}}, \"S9DJVAo6zDaYb5A5jomrTQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 192437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192437.0\"}}, \"coP2kJECHHeByJYNxousTQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 169454.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169454.0\"}}, \"CFWuU/FXzLqvDkRrko+9TQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 146581.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146581.0\"}}, \"UZtMHjAFyNCmnx136tTiTQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 147535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147535.0\"}}, \"SAnjE/h7IlLpDbjn5yTrTQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 148699.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148699.0\"}}, \"Wto8vJIj6WsdCigVs77sTQ\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 9287.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9287.0\"}}, \"fqxr4U/A0rdSg8HIaSj3TQ\": {\"metadata\": {\"community_id\": 279, \"customer_id\": 43016.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43016.0\"}}, \"3cXQAbgNdDz/sNaHNM74TQ\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 186181.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186181.0\"}}, \"lkzI2Rx1MC72pWODaKz+TQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 18520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18520.0\"}}, \"0vdskl6n1tgJivLOYQUDTg\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 16295.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16295.0\"}}, \"yepgno4n/p28H6591WQMTg\": {\"metadata\": {\"community_id\": 384, \"customer_id\": 100330.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100330.0\"}}, \"YUMbaFzgJYeU3f4B//ckTg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 83683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83683.0\"}}, \"xOM0gzz1LKYOC78FcTpKTg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 152408.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152408.0\"}}, \"aS/j8kZ+FFHiJeK+4iBrTg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 52358.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52358.0\"}}, \"0yjqf58zkAQzd+DJ0YVrTg\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 180970.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180970.0\"}}, \"deCbWH/yBvku8SIrHZFsTg\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 21703.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21703.0\"}}, \"c8YTUXnfbNhnroJsMeNvTg\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 6628.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6628.0\"}}, \"8PbUOjV/HGRgJS2xNNuMTg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 57791.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57791.0\"}}, \"4xdm24WVWkGKofY1jbq5Tg\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 80031.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80031.0\"}}, \"cTkKFRE9ldy7qptah1XVTg\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 23959.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23959.0\"}}, \"JAC8a1Q+hochqr5jsbLVTg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 6513.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6513.0\"}}, \"aQooP03pBVj41aWCxfDcTg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 123705.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123705.0\"}}, \"5XK5uESvVd9GptLA6xQbTw\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 92445.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92445.0\"}}, \"n1X4/KHhJoXEHcu2C8kfTw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 21796.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21796.0\"}}, \"amjJXGmeCcKNQx7MWIwyTw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 118019.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118019.0\"}}, \"s1UQaN0Z9EukrsqUTC9QTw\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 110789.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110789.0\"}}, \"rsPQmgY+do4/UOdN5mFlTw\": {\"metadata\": {\"community_id\": 410, \"customer_id\": 112891.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112891.0\"}}, \"ie6msI2TYud/Jyyog2mBTw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 40944.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40944.0\"}}, \"c9jP3tBKcgKqgs7kLyiHTw\": {\"metadata\": {\"community_id\": 411, \"customer_id\": 94226.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94226.0\"}}, \"O66Wkht0x+Gx+BpLls2hTw\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 143149.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143149.0\"}}, \"e1URD8x/rbvMsJPCYU+iTw\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 90399.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90399.0\"}}, \"/b0x2nU/CBynvjL3VeytTw\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 63319.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63319.0\"}}, \"1A50rC9DmpBJi2Rzbw+wTw\": {\"metadata\": {\"community_id\": 106, \"customer_id\": 143566.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143566.0\"}}, \"gs3RLxMx0umpkYbzZnTATw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 83687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83687.0\"}}, \"rHM9RQATp1jHQEMKoPrBTw\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 25575.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25575.0\"}}, \"dIOeiHNYRJZ2wusE/rvlTw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 66751.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66751.0\"}}, \"mmjXNMU5LKHfipb9N8jlTw\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 62709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62709.0\"}}, \"IBSjXE/BZwDBw+/y9M/xTw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 129955.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129955.0\"}}, \"2yyjPHHujpqv9H3nU+D7Tw\": {\"metadata\": {\"community_id\": 313, \"customer_id\": 168263.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"168263.0\"}}, \"haibKGg3Ak8S09mApb0CUA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 13984.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13984.0\"}}, \"mTMmy/NAdwV89W4WJPIDUA\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 110217.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110217.0\"}}, \"sGb1o4in+YADYHRotfA/UA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 58184.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58184.0\"}}, \"KRbWUou+wGv9McaxQY5CUA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 100387.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100387.0\"}}, \"WNgnbHrT1w6mws7dn7ZEUA\": {\"metadata\": {\"community_id\": 412, \"customer_id\": 188601.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188601.0\"}}, \"/e/C4D3oo7qUojV0ezVHUA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 77530.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77530.0\"}}, \"HJnZCVM1Suydwko0rNZiUA\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 49758.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49758.0\"}}, \"+7mhXK/ObCSwV/qE+rxsUA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 115004.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115004.0\"}}, \"NZGxHLsNhMltwN0o1OpzUA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 195206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195206.0\"}}, \"tTO1LQu/M4nsk0dADel4UA\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 65644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65644.0\"}}, \"l8yihHYF3jYLqYPs4PnAUA\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 127438.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127438.0\"}}, \"gkorgH/UGPyBdCL13IruUA\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 140804.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140804.0\"}}, \"K0pUol7h3ozvqSJCzt/0UA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 72611.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72611.0\"}}, \"1ThrLo2r7sbGKGToF5D/UA\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 109483.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109483.0\"}}, \"0HqZ+gKQEfBndFGw6c8NUQ\": {\"metadata\": {\"community_id\": 339, \"customer_id\": 20368.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20368.0\"}}, \"4mos+N852EkXkPJhdwEaUQ\": {\"metadata\": {\"community_id\": 413, \"customer_id\": 49934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49934.0\"}}, \"X67JQd6BDRfyuEz1nK08UQ\": {\"metadata\": {\"community_id\": 197, \"customer_id\": 144237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144237.0\"}}, \"U2FTpl/umiF3aEY5yyFBUQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 19008.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19008.0\"}}, \"ra/QjUDbZ1C23TLGAV9BUQ\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 73269.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73269.0\"}}, \"xrfWfyWvrn2oZzLIjT1bUQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 10836.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10836.0\"}}, \"0KoYr1/sBKYT1rfW8DhgUQ\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 54210.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54210.0\"}}, \"UOeum7MZGHUNQopudJNtUQ\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 83311.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83311.0\"}}, \"cDrqV5O9SkmmDl0mmuF2UQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 23468.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23468.0\"}}, \"7eOLDy+7tMw6Uf8HgmmSUQ\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 147819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147819.0\"}}, \"So39yTeC3xz+XFDiEbKrUQ\": {\"metadata\": {\"community_id\": 403, \"customer_id\": 65846.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65846.0\"}}, \"Gbr8vIeA/iN+DDLrM2WsUQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 137859.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137859.0\"}}, \"DfFk7TlxB0SKkRl+KSWwUQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 85054.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85054.0\"}}, \"XwwhNgQzRMen644eZD7KUQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 112887.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112887.0\"}}, \"2OOBe7bONoWbO75n1P7PUQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 106449.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106449.0\"}}, \"Yzj89dd8zQuXn/2N5QvYUQ\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 7788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7788.0\"}}, \"hvLxb+HIIMnAXb5rrsTYUQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 143614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143614.0\"}}, \"xr0BKa4pvuxbmEAUMl/lUQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 6664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6664.0\"}}, \"FTOR0zQk/QrNO8A3N7P8UQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 66490.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66490.0\"}}, \"+cJX4tUrBIaK7+EkSfsAUg\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 165965.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165965.0\"}}, \"uAvywguLcy7TEJ62HqUCUg\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 184308.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184308.0\"}}, \"X60IMjZAXkAUxMSqc1sFUg\": {\"metadata\": {\"community_id\": 253, \"customer_id\": 195296.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195296.0\"}}, \"Dv4zoru8CYXEoSA9TYIdUg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 144403.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144403.0\"}}, \"NRtep0ikkpPpFE4deg0kUg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 4335.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4335.0\"}}, \"BFKorU/ZsAaR2zzN1iAkUg\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 176376.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176376.0\"}}, \"fOMm6Ou37Z2W7aJSC+0sUg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 36260.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36260.0\"}}, \"RChrb4rJ7Ifl6jZk2ttSUg\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 103692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103692.0\"}}, \"HnEC6Xs9NMQdLmJhPfdnUg\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 29049.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29049.0\"}}, \"A3oYY2V68Bkc4zN29dZqUg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 19265.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19265.0\"}}, \"JLJ/TFle8PFG1cHz1E1uUg\": {\"metadata\": {\"community_id\": 417, \"customer_id\": 163052.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163052.0\"}}, \"7ldQ2Bb1e9My15lZ+EByUg\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 167537.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167537.0\"}}, \"sWKWSenk2C9eaWrxecV1Ug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 91841.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91841.0\"}}, \"djPc9CUQxRvQdtbRzAyjUg\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 80934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80934.0\"}}, \"/H0ynYgQrKSlcy6FNPCqUg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 150444.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150444.0\"}}, \"sAbMJ4JNtrkiNxfJM/22Ug\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 17776.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17776.0\"}}, \"suSw4S5oHiaXj/kWA7m4Ug\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 81420.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81420.0\"}}, \"5azXQZMF5UTinlXaZIC7Ug\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 164133.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164133.0\"}}, \"mTB/opsLISz/IYCbZWnQUg\": {\"metadata\": {\"community_id\": 419, \"customer_id\": 161918.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161918.0\"}}, \"WmyNCi3UI7xVfgyEgQTfUg\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 96467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96467.0\"}}, \"bjgiBt1reGHjsHTW+QP1Ug\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 78765.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78765.0\"}}, \"ck6ssgoFVr2rk/XKn1AnUw\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 38317.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38317.0\"}}, \"1ECPLScyImUDmwsrLCs5Uw\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 155368.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155368.0\"}}, \"UnMVJbIAOTybaBsAyfxQUw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 16839.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16839.0\"}}, \"WRVIPJmmW1C9askKNNRiUw\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 165940.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165940.0\"}}, \"402+Q4nAghzmmhzcXv9sUw\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 91508.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91508.0\"}}, \"9vM/M/R88223PZSDUnV8Uw\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 156696.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156696.0\"}}, \"Ciq4M1yRMrhQLd85nBeOUw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 139370.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139370.0\"}}, \"/sG+lWv0qnoQuVdyd5KUUw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 127862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127862.0\"}}, \"vD9s1XC8nMshE2yQpfmXUw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 133275.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133275.0\"}}, \"n/wtIbSj4hJctHmq4SrGUw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 190662.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190662.0\"}}, \"61eleyxtAaRL9cz885XIUw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 40563.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40563.0\"}}, \"F9CMSEB+Yw3UKbZKivXiUw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 1659.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1659.0\"}}, \"bv3PChfP/0t22LDSCoYRVA\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 129316.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129316.0\"}}, \"NQ2Kua1CDQH1/zRWd1YaVA\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 9622.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9622.0\"}}, \"MvO9GEb2B9OFQ1vFyxccVA\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 178207.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178207.0\"}}, \"VzXB6IJaLXEXJ8d8MMJbVA\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 177834.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177834.0\"}}, \"BJbJMVQIq8Prb7R9KmqRVA\": {\"metadata\": {\"community_id\": 420, \"customer_id\": 171124.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171124.0\"}}, \"AFbeOfS8Fhf7S6zrL2GYVA\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 196069.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196069.0\"}}, \"ODOfjCoQGHXAkZ+DJzahVA\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 4791.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4791.0\"}}, \"z+l8ckU+S5XnZDQNlVahVA\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 55009.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55009.0\"}}, \"Gf88tDhAetc/OxboxVK8VA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 159761.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159761.0\"}}, \"I7hEb7oVDnJItkadyKrCVA\": {\"metadata\": {\"community_id\": 422, \"customer_id\": 131929.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131929.0\"}}, \"7iLqJ+rwS9A/DZ3vrRjTVA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 170584.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170584.0\"}}, \"/FbYCEQvYjAF7sxBwUvWVA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 90520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90520.0\"}}, \"IibzINOrT7+RADphvGLbVA\": {\"metadata\": {\"community_id\": 423, \"customer_id\": 198736.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198736.0\"}}, \"57lEGqv3yMd/4KTgvYbdVA\": {\"metadata\": {\"community_id\": 424, \"customer_id\": 189934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189934.0\"}}, \"Cqan0D3Fg33T/2CdKx/gVA\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 111073.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111073.0\"}}, \"/XdeD6LQuOcKj3zG8GDqVA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 75864.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75864.0\"}}, \"pb73mVNEl7N+Chk55BH2VA\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 188168.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188168.0\"}}, \"P7GmEF9OEFNMiorXM0//VA\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 174481.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174481.0\"}}, \"mfNb4PePcIOAfwupmedlVQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 2650.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2650.0\"}}, \"YrrsQS8pOEwx8jIkOi12VQ\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 155676.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155676.0\"}}, \"FKCFaiakBcRnTlkVYzyIVQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 13839.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13839.0\"}}, \"bjM1RTxMkbo9D2ZgF6+JVQ\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 95403.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95403.0\"}}, \"FvJM048TPlichlBDXcGLVQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 109979.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109979.0\"}}, \"B5o2moO+zZgiWlvKn6eUVQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 171892.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171892.0\"}}, \"lgCoz88OaqYPJJTBOXurVQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 104477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104477.0\"}}, \"efrUM+KiMZNcsDhX4gXcVQ\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 57423.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57423.0\"}}, \"dSSZ+HP6teRDlmQgSqDoVQ\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 17959.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17959.0\"}}, \"hGEk18My+bGDzPUGuGj1VQ\": {\"metadata\": {\"community_id\": 289, \"customer_id\": 3644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3644.0\"}}, \"D32fNkXbGb8JntDyIq0DVg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 111269.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111269.0\"}}, \"Ae9DRMtLdxRiRvwoQZcWVg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 15324.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15324.0\"}}, \"KaWuVUZ3E9K5pqffOyoaVg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 84522.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84522.0\"}}, \"93HOrLa/6emnc4Mf45A8Vg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 116224.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116224.0\"}}, \"TJyQjmH+Od59eoQ7hHxGVg\": {\"metadata\": {\"community_id\": 426, \"customer_id\": 160958.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160958.0\"}}, \"UzNqOCgoTFGUyAk8syFNVg\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 180866.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180866.0\"}}, \"Of3cqqWX3hgee7b+lotWVg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 156464.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156464.0\"}}, \"imqM2tAn9iI3UoMOfiJ9Vg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 50527.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50527.0\"}}, \"PAOaHKlVSzf3ntsoHnOGVg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 131751.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131751.0\"}}, \"6s1uAbZCzoVJ6MCikPyIVg\": {\"metadata\": {\"community_id\": 257, \"customer_id\": 87056.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87056.0\"}}, \"NqzCCjAYhYA57dD9FeKWVg\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 10180.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10180.0\"}}, \"v6OGQ3IGrh7t1+9Pc5ClVg\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 193984.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193984.0\"}}, \"Howi1yXCwy8xQvfqMDCwVg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 58969.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58969.0\"}}, \"NHOlG6qRJsYm8dvs+h/UVg\": {\"metadata\": {\"community_id\": 427, \"customer_id\": 15181.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15181.0\"}}, \"xJHtdpGIDLHQjNe8T6/tVg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 3375.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3375.0\"}}, \"C0NnqLBhV+x4qrVn6I0TVw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 162324.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162324.0\"}}, \"9/jm2PrbMRIBoEk4C/ojVw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 44757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44757.0\"}}, \"KBvffIWk1pKZrIIrmmUtVw\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 137219.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137219.0\"}}, \"ENFraASWg5RdTlQ8G8E6Vw\": {\"metadata\": {\"community_id\": 428, \"customer_id\": 179554.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179554.0\"}}, \"1c9qdGnhBhonltEFNBk+Vw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 88911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88911.0\"}}, \"eCws2fVFKsN6qLY70X9GVw\": {\"metadata\": {\"community_id\": 429, \"customer_id\": 150992.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150992.0\"}}, \"48shU8rWkVDv9ux1mYNJVw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 54641.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54641.0\"}}, \"gYTNxn8CAsLGcly8ASpLVw\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 97410.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97410.0\"}}, \"SToRdrEwGm/BztKtepZaVw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 75395.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75395.0\"}}, \"LAr9yFll6jcyvIbcPNFfVw\": {\"metadata\": {\"community_id\": 429, \"customer_id\": 118725.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118725.0\"}}, \"xSijYTPxbvF64cPzbe9oVw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 49945.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49945.0\"}}, \"ju2FdjnvEwJERaFrBSF1Vw\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 111573.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111573.0\"}}, \"TsyJJhx24NuArVGKSiK9Vw\": {\"metadata\": {\"community_id\": 153, \"customer_id\": 151333.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151333.0\"}}, \"1eS0SAabJx3xGSCwWSbPVw\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 103817.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103817.0\"}}, \"WPY/12VLyv/ZGCMOGvjPVw\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 110338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110338.0\"}}, \"34hValFnV2+dT4B4gubXVw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 137205.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137205.0\"}}, \"ztcyThZuB1bSoMVv35vfVw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 100431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100431.0\"}}, \"ulMN+MhAnO/xSs9XqSD1Vw\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 39253.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39253.0\"}}, \"rOaXdLN11aUlsObk+Cn8Vw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 58229.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58229.0\"}}, \"cq9Ea27BfLntD/Il3YYHWA\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 196498.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196498.0\"}}, \"sZQt0HcBdAnBVufRutAdWA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 66271.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66271.0\"}}, \"1zegi/QAelz/NhbUIXIkWA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 157589.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157589.0\"}}, \"72sWJrEiMlL0pIoWjHY5WA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 107501.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107501.0\"}}, \"qkDwhgegxr+4Q7DZidQ+WA\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 178811.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178811.0\"}}, \"qvgHYr//5UeK5A/rGOI+WA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 193636.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193636.0\"}}, \"01UXGd9bYhs21penRlNEWA\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 130797.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130797.0\"}}, \"2l287p85LameY/XlSjFLWA\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 149640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149640.0\"}}, \"9otxW3iqkb6mUsVibfZLWA\": {\"metadata\": {\"community_id\": 431, \"customer_id\": 135776.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135776.0\"}}, \"L4R7iZWb3a4kArkl2EZPWA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 191673.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191673.0\"}}, \"wwgZ4aqOeVTXMNCdUON5WA\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 24414.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24414.0\"}}, \"aIIgb7T9OT5k+4MjasF9WA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 9886.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9886.0\"}}, \"W6goBNVWB0Ihs8xMQ0iGWA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 76195.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76195.0\"}}, \"kbys4oCqW7mu52nFXjihWA\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 197921.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197921.0\"}}, \"jSN7JY5CiEq76H/IKAPBWA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 122715.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122715.0\"}}, \"rTMHQmIf07jtnjcUShfGWA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 183280.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183280.0\"}}, \"COZSAihw0piprQZNqhPTWA\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 116786.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116786.0\"}}, \"3fUOLgr8CbZwWyLGmWvaWA\": {\"metadata\": {\"community_id\": 433, \"customer_id\": 44103.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44103.0\"}}, \"gUFSWzIUmsXeT+D4FdTbWA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 66146.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66146.0\"}}, \"VjjH8fRdx0M/KrNVGsogWQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 127582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127582.0\"}}, \"7Qw8vIzjf/i1LCT9VUE8WQ\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 178089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178089.0\"}}, \"rK+9r/bJqlMdwX6xNutDWQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 198339.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198339.0\"}}, \"y/EwmqIjSs3C9CuihUtVWQ\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 96479.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96479.0\"}}, \"sTbdtccB3oN5Rz44Z2paWQ\": {\"metadata\": {\"community_id\": 435, \"customer_id\": 38665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38665.0\"}}, \"CY1ASUvL41NMGfDtdMFmWQ\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 36531.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36531.0\"}}, \"SbGcVcraYDc/7ZlQ7SJ3WQ\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 149424.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149424.0\"}}, \"RTckRKEGiClaU/kOghmIWQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 54113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54113.0\"}}, \"2qeJ2xkq8iCVJMJx6+6KWQ\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 179851.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179851.0\"}}, \"6NRZyNIXOo0yh70A0I2iWQ\": {\"metadata\": {\"community_id\": 437, \"customer_id\": 46753.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46753.0\"}}, \"Fq7qvVEGpK+4BKNxxNn7WQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 7290.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7290.0\"}}, \"kkXV8yqVeCt4dSV3PqIJWg\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 62173.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62173.0\"}}, \"h8KNYZHf0bxUHrr8W4MKWg\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 59644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59644.0\"}}, \"ehhpQk8GXvQZRIxOZggVWg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 102367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102367.0\"}}, \"eUot1iW5hlu7RiRC2m4gWg\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 71724.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71724.0\"}}, \"YRplCx8z9GNMnXrPdwUkWg\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 41073.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41073.0\"}}, \"oz8+VHSy77Ift85Thf8zWg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 34583.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34583.0\"}}, \"0MLR6jlBtVCGZVRTpK9XWg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 181554.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181554.0\"}}, \"/aM4gHYQGmLOHeMeBo9xWg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 26246.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26246.0\"}}, \"OYH5ske6RuFozNHIa7hzWg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 138314.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138314.0\"}}, \"/2rrq0GcdJM54Cu4x7d4Wg\": {\"metadata\": {\"community_id\": 439, \"customer_id\": 62565.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62565.0\"}}, \"wuWhg4Yw6D8Ry0qr0sGCWg\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 73203.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73203.0\"}}, \"VHmR3tDa7EGSZ8FpyTy4Wg\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 180893.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180893.0\"}}, \"YWjU6xATC2Q0iWOLiX/MWg\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 20218.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20218.0\"}}, \"nPeh2fAxx1RfouYcbSPfWg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 186505.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186505.0\"}}, \"G61pOLo45+GyyS5e8k3vWg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 179331.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179331.0\"}}, \"4G0IR8MZNUMbPoD8p68XWw\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 70751.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70751.0\"}}, \"LMiOnh18K5J2ysJ7jEkoWw\": {\"metadata\": {\"community_id\": 440, \"customer_id\": 35470.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35470.0\"}}, \"0l/H5+6WdS+zglOIO0swWw\": {\"metadata\": {\"community_id\": 441, \"customer_id\": 43435.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43435.0\"}}, \"cjaT01wvS95eIsEKQUdEWw\": {\"metadata\": {\"community_id\": 6, \"customer_id\": 184563.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184563.0\"}}, \"ruqNFuUB6tHVOz0EcqpPWw\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 43161.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43161.0\"}}, \"X9jduueKJ+ghpIqAdXSLWw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 17819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17819.0\"}}, \"navgg+2v2IpcTItMEGeWWw\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 143733.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143733.0\"}}, \"9BqTzf+HI3o6WFXzcgP6Ww\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 32609.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32609.0\"}}, \"cjBusNr5IUANno8M2pAeXA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 130860.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130860.0\"}}, \"r822x+ZsDaqU9LZ1qUcvXA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 166290.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166290.0\"}}, \"AXXDOz0vS2tmKhyIhXZEXA\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 85468.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85468.0\"}}, \"MX1iQXm9JIumNefXUd9PXA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 67843.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67843.0\"}}, \"74bZRN5X5IW1TnM8MGtaXA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 158917.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158917.0\"}}, \"wxNjDbtynlXPoy/Q5D2AXA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 172045.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172045.0\"}}, \"qIoEZ9sS5H1dN+Jo7fCcXA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 11255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11255.0\"}}, \"HKsqt90NplyxlSg6LyWgXA\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 197814.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197814.0\"}}, \"r23aQzJKO9y3d2dOK0ijXA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 165709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165709.0\"}}, \"mDhEd8i5IRTiz5zzp+nHXA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 127079.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127079.0\"}}, \"oFQNBM4xI+HgY5Q9FrzhXA\": {\"metadata\": {\"community_id\": 204, \"customer_id\": 23583.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23583.0\"}}, \"V+s32xIiYLwU4mBWjW8iXQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 116686.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116686.0\"}}, \"fTIctR0vW2sc4q6ZyMg6XQ\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 29343.0, \"color\": \"#FF0000\", \"size\": 20, \"hover\": \"29343.0\"}}, \"WVpCA2eA54bnl3oSospTXQ\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 101338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101338.0\"}}, \"claAW9BD3Hw/5DoSlbSKXQ\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 12779.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12779.0\"}}, \"PcXLA8V21+Wb46Z5bgKSXQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 179367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179367.0\"}}, \"ogQ/15xsZTPagM0jd0GpXQ\": {\"metadata\": {\"community_id\": 444, \"customer_id\": 65045.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65045.0\"}}, \"UQUtbMtXhRdVUpHFPw/mXQ\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 106334.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106334.0\"}}, \"LoiEF56LLlDPf+Us5wX/XQ\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 24852.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24852.0\"}}, \"aKkEMSzcA3tK7Ey9aHwJXg\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 197080.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197080.0\"}}, \"KCJwaDRWgE9q3q7OmKEJXg\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 186827.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186827.0\"}}, \"wRRfjVSXW26fS6X5yakhXg\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 88809.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88809.0\"}}, \"85ApQUxq0xx83S44A+NLXg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 40421.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40421.0\"}}, \"IEvjI9DghsvK8rqHLAZbXg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 125325.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125325.0\"}}, \"JqM77VUcNwh2YpJxMTdfXg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 15027.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15027.0\"}}, \"C0Wtey5jUwozMtZQ/zCGXg\": {\"metadata\": {\"community_id\": 189, \"customer_id\": 145770.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145770.0\"}}, \"vL+/RI7kdpbY/Np/ysigXg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 175658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175658.0\"}}, \"nL/ewA9/7hfFwMYmieKsXg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 141300.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141300.0\"}}, \"N5rUu9Z9APXGiNRDfx7hXg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 10462.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10462.0\"}}, \"+WN1SyOPTILYm74gipLlXg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 22.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22.0\"}}, \"wneYD+VDwhkmw532fW7qXg\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 79152.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79152.0\"}}, \"llovrNhzEbhUrsORmDYEXw\": {\"metadata\": {\"community_id\": 198, \"customer_id\": 11607.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11607.0\"}}, \"mt56Y7tQ3sCIsVJj4zkXXw\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 197990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197990.0\"}}, \"AFFAXTu2gNkQUc+It6w8Xw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 181375.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181375.0\"}}, \"hu8ICB4fKw3AVpjcGUhZXw\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 49477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49477.0\"}}, \"1wbch8nHNaJm78RwT0NdXw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 146533.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146533.0\"}}, \"s933IHR2SOYkrslDC3JgXw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 53914.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53914.0\"}}, \"O6j0sHDBfrnArqvkE5CKXw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 122349.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122349.0\"}}, \"2q/2mxK7z5s4ow/GfXubXw\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 55358.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55358.0\"}}, \"pslubpS6aAxQnPsj4LiuXw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 56838.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56838.0\"}}, \"QL8CggzdkKjyhEKfupbCXw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 113837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113837.0\"}}, \"hW366XCp/i7HQnhv+RXHXw\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 87511.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87511.0\"}}, \"iwHVSQbCvnI2VmbeHJzpXw\": {\"metadata\": {\"community_id\": 263, \"customer_id\": 63774.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63774.0\"}}, \"9DtTLKdp0pHZCbYalxQFYA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 70078.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70078.0\"}}, \"KFHWcKdMUM2lpGAGG5QHYA\": {\"metadata\": {\"community_id\": 445, \"customer_id\": 140512.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140512.0\"}}, \"fiycSpGQtRIfH6qDzzcOYA\": {\"metadata\": {\"community_id\": 446, \"customer_id\": 44309.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44309.0\"}}, \"mg8Nu7Q5bKwFsnbmTm8hYA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 190830.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190830.0\"}}, \"qnfy1S5fbWxIZW6Zb7k6YA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 93037.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93037.0\"}}, \"kuBx2V5/s9xhPbFh+oNQYA\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 105586.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105586.0\"}}, \"js8Y0lf08jWreDJNejVvYA\": {\"metadata\": {\"community_id\": 405, \"customer_id\": 11517.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11517.0\"}}, \"0i+8vwHItC+FNSCN6RN8YA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 6705.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6705.0\"}}, \"KqHNtZd2xUrZodIDS0CcYA\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 47247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47247.0\"}}, \"iCmnZi9CFvdYvyiq1vugYA\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 22393.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22393.0\"}}, \"xYBnEJB+6rnvZzZiDcWrYA\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 81004.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81004.0\"}}, \"9lPR2cQoicAzSOP9+WO8YA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 160348.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160348.0\"}}, \"89h2vLD4vEBZ5Cp2urzkYA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 75134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75134.0\"}}, \"CfMMoO/qZjDVZ7RWqmTmYA\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 62202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62202.0\"}}, \"TPUTckho+StrbYBpi7L0YA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 57876.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57876.0\"}}, \"z+8oF1aKjRu86R3aUjcFYQ\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 184394.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184394.0\"}}, \"ZdnDVxJ8lr+5jJxYfk8HYQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 129096.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129096.0\"}}, \"96ej3oz+rX9j51QcdY4qYQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 177279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177279.0\"}}, \"hddOV5f0YEFb3ePvE1FUYQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 70068.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70068.0\"}}, \"Tkjte2I8ttkrymdWYWyFYQ\": {\"metadata\": {\"community_id\": 448, \"customer_id\": 37924.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37924.0\"}}, \"sHv2V4ZuvehzCwHPCnOQYQ\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 29066.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29066.0\"}}, \"A8RHRlYqsCVKm8quwQqhYQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 101206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101206.0\"}}, \"1TdVU0dsTMlPESXgZHGtYQ\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 167644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167644.0\"}}, \"KF/ggkreIF0LsX56a0nTYQ\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 53301.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53301.0\"}}, \"h8PJ8ykifxVNLeHWFe/lYQ\": {\"metadata\": {\"community_id\": 449, \"customer_id\": 181206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181206.0\"}}, \"Rr9emPI1nLHqljrbD4DvYQ\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 53674.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53674.0\"}}, \"pejzevFVc+aG7TCaqhshYg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 80555.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80555.0\"}}, \"IXdPVWFghod/SBOsAt1aYg\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 92342.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92342.0\"}}, \"81/t15zn23kc/9M+VRloYg\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 11932.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11932.0\"}}, \"/i+pP6jIG4qaUe+SGq5pYg\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 151693.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151693.0\"}}, \"HCQKKS5z1h7eYqav2fhzYg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 49889.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49889.0\"}}, \"xI1aLjQUZ7LtO3/xEnJ+Yg\": {\"metadata\": {\"community_id\": 450, \"customer_id\": 191269.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191269.0\"}}, \"8eST8m92csATI1mdEtKGYg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 8440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8440.0\"}}, \"uSDlN/LPFKzTcwmARYOSYg\": {\"metadata\": {\"community_id\": 451, \"customer_id\": 68905.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68905.0\"}}, \"dyG5yCEuXNa7zINq/JKjYg\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 23202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23202.0\"}}, \"T9flAVJsWQvGQcCuP9ajYg\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 99189.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99189.0\"}}, \"EMY6LHYwmd0QTiRrnsetYg\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 91325.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91325.0\"}}, \"cS/bpu52WCU9X+jUmZu+Yg\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 28763.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28763.0\"}}, \"J+ybODI7/elM6CANxmPBYg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 137520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137520.0\"}}, \"DhHo3HeMfTGX/H0KDyMNYw\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 17012.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17012.0\"}}, \"OJf7EQPGS6EnYbiBM5pSYw\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 109705.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109705.0\"}}, \"olk1QAFpHTZg1V+12hNUYw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 119873.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119873.0\"}}, \"Ow3h3bI7n0amMosQn3tVYw\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 53869.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53869.0\"}}, \"GnAbts15yBTBPSTHzQh7Yw\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 61024.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61024.0\"}}, \"1THmiGWj4fAKDegLXyKkYw\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 135635.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135635.0\"}}, \"TECaccIMdVH1O/B8fm3MYw\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 148884.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148884.0\"}}, \"vD6OZSkKU8GFj6Hs3gPXYw\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 145506.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145506.0\"}}, \"F5HRLcAVvtui7yRoAlPYYw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 59161.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59161.0\"}}, \"PYoMtmsPFxpKNYEV4SDZYw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 85162.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85162.0\"}}, \"e/1HN0Ox0h0DrOXmQ7b/Yw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 99438.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99438.0\"}}, \"ZvBzxChZplZxvBcbRvQNZA\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 198931.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198931.0\"}}, \"XLl7+jPIy0KntxXZsFAjZA\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 75109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75109.0\"}}, \"eQM+KwEzGGQwXa5pfTsnZA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 131388.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131388.0\"}}, \"gvm93D0ferkbDxApCNsyZA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 190732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190732.0\"}}, \"+JdY8sLhBcaEI+2fsGZAZA\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 175446.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175446.0\"}}, \"LkM0/MtyKDGvzCG666tvZA\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 93259.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93259.0\"}}, \"vD7RLkl2lIfpCxXIygFzZA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 153883.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153883.0\"}}, \"tgEPD4FvU264xMKgydt9ZA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 108398.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108398.0\"}}, \"SVozJ8XW8FPd0iHVZjCBZA\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 151747.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151747.0\"}}, \"PSO2XmC4lzxblJbq6YuYZA\": {\"metadata\": {\"community_id\": 386, \"customer_id\": 165568.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165568.0\"}}, \"BZ7Hiow+j1NpeSNm7razZA\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 108308.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108308.0\"}}, \"8CMoYUu+332sDGqV2kLCZA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 61690.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61690.0\"}}, \"XLIYgIjAAid/Qw1RCyL2ZA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 193572.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193572.0\"}}, \"oovK5xsuIoYuG1M/X4IYZQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 150640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150640.0\"}}, \"1BEj44DRcK5n6B3ptY4zZQ\": {\"metadata\": {\"community_id\": 453, \"customer_id\": 119076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119076.0\"}}, \"zexMlqrIwQf2AHpu4iZCZQ\": {\"metadata\": {\"community_id\": 454, \"customer_id\": 1130.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1130.0\"}}, \"SVncppnuBWX66nGOzF5GZQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 172606.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172606.0\"}}, \"9x3ved1T7wjAWcFR2XFOZQ\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 152060.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152060.0\"}}, \"pwFegFZIy5bhsBwci3trZQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 192435.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192435.0\"}}, \"5VUgL1dwfNm5AVOz+sx4ZQ\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 83490.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83490.0\"}}, \"WzOSjHpZKSZojzA4iL99ZQ\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 21585.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21585.0\"}}, \"5apR11MR0AvAuPyXKe+BZQ\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 41547.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41547.0\"}}, \"3kCb/KZ8/abI4WHLBJ7HZQ\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 5915.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5915.0\"}}, \"4vGANuz0+6hyot70AcHRZQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 70478.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70478.0\"}}, \"z/Vc98OXYInOmO1oD+PRZQ\": {\"metadata\": {\"community_id\": 455, \"customer_id\": 27067.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27067.0\"}}, \"yGAvhgaNrM/b3CFteWTrZQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 151407.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151407.0\"}}, \"4CjMN3w9g2bQx0m7+UELZg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 111893.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111893.0\"}}, \"C4iU4YuGrw2y7Sbvl5ANZg\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 97940.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97940.0\"}}, \"t20xkxierOcBE/o0aSAdZg\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 80007.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80007.0\"}}, \"G2x4mpYTKaEwCFfOF/MpZg\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 146549.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146549.0\"}}, \"uTX3fyUcUp+b6NWtu4o0Zg\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 176912.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176912.0\"}}, \"Z+Df51fCeSuCjkjYnEc8Zg\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 152517.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152517.0\"}}, \"6A0X+/4dUpd8rUBixdZYZg\": {\"metadata\": {\"community_id\": 457, \"customer_id\": 110220.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110220.0\"}}, \"oTiCLEa9X0uHTa1BlilnZg\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 122885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122885.0\"}}, \"MevGjFG48jL1EP+uRx5xZg\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 82683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82683.0\"}}, \"VMCQwzdpsrbNN/t27liDZg\": {\"metadata\": {\"community_id\": 459, \"customer_id\": 179739.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179739.0\"}}, \"vsoziab71WlVH4X6m9+FZg\": {\"metadata\": {\"community_id\": 455, \"customer_id\": 12011.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12011.0\"}}, \"f0mUmJg46NO2Wq++aSKWZg\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 196661.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196661.0\"}}, \"7Ye5q+ZygboyV90IkLK0Zg\": {\"metadata\": {\"community_id\": 460, \"customer_id\": 190571.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190571.0\"}}, \"VywXO7h+uJoHcQ2zWV+7Zg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 11126.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11126.0\"}}, \"68Q7ajA1itdZfaO6FmPPZg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 8800.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8800.0\"}}, \"dEZXBUvT5+bmK/KeFiTjZg\": {\"metadata\": {\"community_id\": 461, \"customer_id\": 19854.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19854.0\"}}, \"NJTaln+qmZxCCN/Hx5IDZw\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 108562.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108562.0\"}}, \"HYymt0lDvgI53eZlSzAjZw\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 44070.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44070.0\"}}, \"dTkENAnFlFXuxJCq9UEvZw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 1874.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1874.0\"}}, \"yHCcWJQDbIob4E9ckP4/Zw\": {\"metadata\": {\"community_id\": 462, \"customer_id\": 120760.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120760.0\"}}, \"l0Jn5R0PeAMlVCjBWql4Zw\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 78772.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78772.0\"}}, \"q1K2qTkP+36lkCo+WF+UZw\": {\"metadata\": {\"community_id\": 463, \"customer_id\": 65532.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65532.0\"}}, \"VTFcc+n6qFLhfTxVnmyXZw\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 138861.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138861.0\"}}, \"zN1upeQhUgH8ySChSc2hZw\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 116859.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116859.0\"}}, \"mgg/lhrwL5Rtr3eKy9uiZw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 189160.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189160.0\"}}, \"ZQL4xUI0Lik7CwBB2L6kZw\": {\"metadata\": {\"community_id\": 465, \"customer_id\": 66968.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66968.0\"}}, \"blqYEvP+cEm13ZzWBP2yZw\": {\"metadata\": {\"community_id\": 466, \"customer_id\": 63553.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63553.0\"}}, \"8wqfLFNes7JUPFwY54jBZw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 24093.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24093.0\"}}, \"bBf/i8CpRj7/MKQGf3PcZw\": {\"metadata\": {\"community_id\": 290, \"customer_id\": 93434.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93434.0\"}}, \"O/gDisntYgEbfhuQHG3dZw\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 24593.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24593.0\"}}, \"knFzwzP5e4R9p7/JRtP1Zw\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 193228.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193228.0\"}}, \"bsdaANpcjpHWpeczatoMaA\": {\"metadata\": {\"community_id\": 134, \"customer_id\": 94265.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94265.0\"}}, \"Q0MjucCUh+7hOM6ESTwQaA\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 171443.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171443.0\"}}, \"YzTYwzGBsaucgy6itdISaA\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 52356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52356.0\"}}, \"39tEVdjFayXjM/S2U1YbaA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 118642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118642.0\"}}, \"iPRckEZ+9fRyg2mbWpNZaA\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 73621.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73621.0\"}}, \"5jKIs3ds0x1ZmVoyo9FaaA\": {\"metadata\": {\"community_id\": 246, \"customer_id\": 195480.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195480.0\"}}, \"k55CIte3Gp7p6qcb3qdhaA\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 8862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8862.0\"}}, \"wKp/+GpkbgJu8Y1W+8t2aA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 57892.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57892.0\"}}, \"pFJxA6EP5BLy+6YQ9ZTIaA\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 4983.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4983.0\"}}, \"3CAi1BHCJ4F6GOSyN9ndaA\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 137117.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137117.0\"}}, \"XvFXpKAybOJaTrHjTz/raA\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 121129.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121129.0\"}}, \"8kqbzDvYbTAr7mFfFJfxaA\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 162137.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162137.0\"}}, \"0yNF6u5zyDfG/4h5/Uz0aA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 43849.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43849.0\"}}, \"DUr4X9Dd3Yw1TKmF0wT6aA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 115353.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115353.0\"}}, \"T34SlORyNdAitBu1jVAVaQ\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 6693.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6693.0\"}}, \"NOgXNpFsliy0bzyuE6EfaQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 133751.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133751.0\"}}, \"EpfkuD4XamCx7taDA1QtaQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 159837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159837.0\"}}, \"NIgmiC1e5egjTL/hoRRzaQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 149245.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149245.0\"}}, \"2oENxDAeO3msBRvThWGNaQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 138597.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138597.0\"}}, \"LR0o1Gp5Q/56VArLa5GfaQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 180075.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180075.0\"}}, \"AGdleYZfLD0f2H9xzK+zaQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 91666.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91666.0\"}}, \"MP2QXYF3sENxb7Uc+MG2aQ\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 58577.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58577.0\"}}, \"u8wMRBA97dXpAFjbPoTBaQ\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 68025.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68025.0\"}}, \"OybZPZewW/5uo77pf5EOag\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 95931.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95931.0\"}}, \"4GJpnaHGtLQaFFP0ev8oag\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 81687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81687.0\"}}, \"vaGjZfTrhaqBV96NI8ZAag\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 176221.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176221.0\"}}, \"AGqG5c/VWKGwOacxedtJag\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 147307.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147307.0\"}}, \"InCEqoKCHEMy7JVnqgiDag\": {\"metadata\": {\"community_id\": 468, \"customer_id\": 87211.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87211.0\"}}, \"i1FG2HVaFaWVKq8Gmr+Fag\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 66551.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66551.0\"}}, \"GPxTZE2+n5xhFFsIWTiSag\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 149231.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149231.0\"}}, \"FaeXygmksygb2560fsqvag\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 2180.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2180.0\"}}, \"t//zurDsECjhkSF+dDy3ag\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 71380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71380.0\"}}, \"CfL6ulaZMR+EipbGh9u3ag\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 107145.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107145.0\"}}, \"oGVIZCXdUXvIMETXa+zMag\": {\"metadata\": {\"community_id\": 445, \"customer_id\": 9146.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9146.0\"}}, \"qMV0wqJZhGOHoZqSaUvaag\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 30555.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30555.0\"}}, \"scx4zJSDGqh6BG0zTMf3ag\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 49064.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49064.0\"}}, \"gsc5I5v27i46ZSFXLzgsaw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 151079.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151079.0\"}}, \"XBVUEkaFxyRusIcv+usuaw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 164386.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164386.0\"}}, \"LLqUTf2C7DiwEPqO9IAzaw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 15666.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15666.0\"}}, \"hyPvCBbOFv+5NE6yWVE/aw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 185249.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185249.0\"}}, \"4CO33mHHgJhhEMark/hFaw\": {\"metadata\": {\"community_id\": 460, \"customer_id\": 140431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140431.0\"}}, \"Kp/uA317xD3ySXD3jBdRaw\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 189515.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189515.0\"}}, \"6fa0BGC1aByXuIyb1BZZaw\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 18953.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18953.0\"}}, \"rDPPMTD4vnxKGOpF+2Zlaw\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 29858.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29858.0\"}}, \"1PEOSb2TBTMGMiYjdZK2aw\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 19563.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19563.0\"}}, \"nl3iba56oz4+Ct7sc/zDaw\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 55467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55467.0\"}}, \"sqqi1xhWXx4zcDMSSSnHaw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 73425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73425.0\"}}, \"CwpEQuIi8zSScd15Vffgaw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 9380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9380.0\"}}, \"gaZz3FRaKrrPotJgszj/aw\": {\"metadata\": {\"community_id\": 267, \"customer_id\": 143201.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143201.0\"}}, \"K53b7HORgyhLUuQ9WN0kbA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 23664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23664.0\"}}, \"w2jFy/pE8Fy943fFYEonbA\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 82573.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82573.0\"}}, \"EKGxuN6zNqEuBdsNTTQ2bA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 134737.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134737.0\"}}, \"BbkarsI6ax7N0cDQt6BIbA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 60237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60237.0\"}}, \"opm/9DV54pobtdoC3kNUbA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 55516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55516.0\"}}, \"DFjBfWb05mwJPNpOXP+ubA\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 61824.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61824.0\"}}, \"7waZWOlEZD3wAUOfyTK/bA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 24402.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24402.0\"}}, \"xqgM3rfoMtsn1TX/WLjvbA\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 55289.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55289.0\"}}, \"BNzwQD1dzf4lnoWRJxD1bA\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 123963.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123963.0\"}}, \"FDPwNBUTwho2jWg6cpf7bA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 136661.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136661.0\"}}, \"8825VNagmfuRs5bexVc1bQ\": {\"metadata\": {\"community_id\": 470, \"customer_id\": 21685.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21685.0\"}}, \"2d2hzbOfsjmEbK+aYDo/bQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 121350.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121350.0\"}}, \"OyTztUYnRhTYYxoLBI9FbQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 70664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70664.0\"}}, \"o+m2QQS9epHCXQOZQQFibQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 142147.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142147.0\"}}, \"PwyhAzA0omnIl03SygN+bQ\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 34045.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34045.0\"}}, \"+qwToh+fbgIAa8uOXduCbQ\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 137710.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137710.0\"}}, \"Xlz0x8DwRxDmhPVIPBGTbQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 195112.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195112.0\"}}, \"ZIy/WsAB3wJpL965LjmTbQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 197314.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197314.0\"}}, \"jZp0wulp0qyqJdux+qWZbQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 184049.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184049.0\"}}, \"swE/d75dr8jLE+X9IPWubQ\": {\"metadata\": {\"community_id\": 437, \"customer_id\": 112214.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112214.0\"}}, \"AfC+yExwuC/ENoHJ7zWxbQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 50622.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50622.0\"}}, \"vWcvRByQP51uOlZDbmbUbQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 159344.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159344.0\"}}, \"TkBKnFxeFnG+2hBRM5TjbQ\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 117033.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117033.0\"}}, \"AAdsS+Z6oVUTY7oLucX8bQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 75055.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75055.0\"}}, \"ldrAqDxNlz3Q/ph+om39bQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 36753.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36753.0\"}}, \"CsBrCPcDPAJEOxlYUpn/bQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 47683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47683.0\"}}, \"L49IPcN2EYZ4HFO7oiofbg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 87279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87279.0\"}}, \"Z1owg5XRBMZ+UZarVUEvbg\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 165624.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165624.0\"}}, \"j2myGcumhmoz/9p4EAE2bg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 32350.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32350.0\"}}, \"295KUQrNgS524KdPjhY2bg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 103406.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103406.0\"}}, \"OK7AnboiWZ7PRgIMjmpHbg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 100358.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100358.0\"}}, \"pgQHSJE9LdFJ4JX4uLFkbg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 8104.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8104.0\"}}, \"1iE3IfSpcAwr1GJpuN1wbg\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 186790.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186790.0\"}}, \"dXQRUJXsvJSlmLomDmF3bg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 29822.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29822.0\"}}, \"6rVzMgD/kufbnz2W3Qp6bg\": {\"metadata\": {\"community_id\": 472, \"customer_id\": 59264.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59264.0\"}}, \"vGKrdKXZtH3UV90EhYaebg\": {\"metadata\": {\"community_id\": 370, \"customer_id\": 162406.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162406.0\"}}, \"d7hMwlTj5Ir1NfCOJZinbg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 185224.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185224.0\"}}, \"qsZtcjv/Pr7Ps1rIbC+obg\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 101355.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101355.0\"}}, \"wf9PwOKlrt0/GTUhJmPSbg\": {\"metadata\": {\"community_id\": 473, \"customer_id\": 23514.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23514.0\"}}, \"L2R99MXyAwQ7moUkSDjUbg\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 137420.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137420.0\"}}, \"ENvW+sJ6QytVUMPBHRsybw\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 159746.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159746.0\"}}, \"KXmPvXyy4ZqMu2NJW680bw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 58193.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58193.0\"}}, \"u+59gZNV53zMJQVuIatFbw\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 118078.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118078.0\"}}, \"RMQXn+wpC1BAUZ8mxJZebw\": {\"metadata\": {\"community_id\": 475, \"customer_id\": 25493.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25493.0\"}}, \"HWZAYVBnOATRXMF9hCxmbw\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 23128.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23128.0\"}}, \"A7DMC5xh2BOv+DzA5zFtbw\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 14515.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14515.0\"}}, \"s/iJc9+3ONWQha7FBfKMbw\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 158457.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158457.0\"}}, \"OgPOP14AXvUmCvsSYLWvbw\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 183832.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183832.0\"}}, \"zW9OFngqkdFLKaWtIXKwbw\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 4508.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4508.0\"}}, \"ibKgv6nUXTOjrleyRQKzbw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 159107.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159107.0\"}}, \"59SqJ30Y4ewJfCaPESjibw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 101437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101437.0\"}}, \"jDNhsvbjunwQKLmvhy38bw\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 49017.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49017.0\"}}, \"As5V4Gv3sXDtJd09xlVJcA\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 82279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82279.0\"}}, \"88NA5Yp9ZlnX1Wm69tZScA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 37497.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37497.0\"}}, \"nT9sAxVshwusku821xJacA\": {\"metadata\": {\"community_id\": 476, \"customer_id\": 109213.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109213.0\"}}, \"0RJgJMYTybpAEfPhQMBfcA\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 11346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11346.0\"}}, \"Y+G3nXp82AZ2n2QjEgtncA\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 198820.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198820.0\"}}, \"FVDkPmeCBusht6HcouaOcA\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 191037.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191037.0\"}}, \"vSJWqBZbFjSkYqQRa1OlcA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 94028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94028.0\"}}, \"yn7/uMKk6kJRsbDh+tSncA\": {\"metadata\": {\"community_id\": 6, \"customer_id\": 78440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78440.0\"}}, \"g/R1uTvqZfKj5drIlOC1cA\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 135677.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135677.0\"}}, \"Bk5yEVdT2xlTxi/P+2TucA\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 96204.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96204.0\"}}, \"tfw90wbD4QM/PpDbMLj6cA\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 14358.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14358.0\"}}, \"IeJ7QCNZxGb/t4BwOpkGcQ\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 186418.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186418.0\"}}, \"KpuI9ZyZiW/bVAiiQ+AScQ\": {\"metadata\": {\"community_id\": 478, \"customer_id\": 130391.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130391.0\"}}, \"ZTZGPr12qhPT39K3XPATcQ\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 18932.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18932.0\"}}, \"vLCqCMMOYK7bZQa0iDw1cQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 28284.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28284.0\"}}, \"rc9cGHeo4/6jfGrrxTE3cQ\": {\"metadata\": {\"community_id\": 479, \"customer_id\": 189918.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189918.0\"}}, \"jhsBQMeLZl7h/WCH+CBTcQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 129821.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129821.0\"}}, \"gKWDlf3LZCGgS60wxil8cQ\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 128595.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128595.0\"}}, \"klquQJ0Jl9OUmVEJRbqZcQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 92121.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92121.0\"}}, \"mIrtzl5yLLagVORQq8OocQ\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 195841.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195841.0\"}}, \"HT8WzeCrcJmlevEIilDccQ\": {\"metadata\": {\"community_id\": 213, \"customer_id\": 38032.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38032.0\"}}, \"UInmirHyfIxrNstUKFfycQ\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 27911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27911.0\"}}, \"heKhrRBgLEzQGdjEiVb4cQ\": {\"metadata\": {\"community_id\": 463, \"customer_id\": 139189.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139189.0\"}}, \"C3i2f3Tc4fbceLtEVoj8cQ\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 149196.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149196.0\"}}, \"SHfZgdFBroXem8lXNwkJcg\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 134161.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134161.0\"}}, \"0QxdZHIr10eUjJDIe0wOcg\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 179204.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179204.0\"}}, \"vb3iPzp4Mxw4ldK8eS8fcg\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 58230.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58230.0\"}}, \"XkYOl3ks1X2aSgiy+kcncg\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 67371.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67371.0\"}}, \"wQSV256APV//sMgwNlozcg\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 20929.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20929.0\"}}, \"q+Kqu3d3s3abK4QbQdM2cg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 14231.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14231.0\"}}, \"pdr20bR379SCSQrEwtRfcg\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 186921.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186921.0\"}}, \"3buh1bQHBjYvBLTs3k1pcg\": {\"metadata\": {\"community_id\": 3, \"customer_id\": 30620.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30620.0\"}}, \"mnfai98sLmWktUK5TjaVcg\": {\"metadata\": {\"community_id\": 417, \"customer_id\": 100848.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100848.0\"}}, \"fvLIVlHEmcDCxxbt9TS0cg\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 162915.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162915.0\"}}, \"7h9Fg1B195k0e5jbUGH+cg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 151081.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151081.0\"}}, \"2a+0fWSXMHaZ2Hov9wcXcw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 190667.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190667.0\"}}, \"rDXjhpwwH1xRUqGN59Ikcw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 183582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183582.0\"}}, \"bDdU/0byIvyGkNcVnGcpcw\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 69406.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69406.0\"}}, \"RXvDBU82q16Pw9nStf8zcw\": {\"metadata\": {\"community_id\": 340, \"customer_id\": 58623.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58623.0\"}}, \"2fLiXD3Oi+ti5kp4tkA5cw\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 136905.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136905.0\"}}, \"H8DT+1a16Vl5KIs2uBGBcw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 1415.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1415.0\"}}, \"Nk2/mu/0OeJQu+AFrLKfcw\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 142933.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142933.0\"}}, \"4iidBzFOnffMhDtuDP6vcw\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 149279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149279.0\"}}, \"GFLSiVWZGF82QrEToTu6cw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 103640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103640.0\"}}, \"72DKQaPaO96hRQn8R8y7cw\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 145709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145709.0\"}}, \"oU7VQtJtQKoDumxH+arzcw\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 105985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105985.0\"}}, \"heu1DWdPZrJDexWytU/+cw\": {\"metadata\": {\"community_id\": 483, \"customer_id\": 22075.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22075.0\"}}, \"QpOXviT1zeIlL17B/cUDdA\": {\"metadata\": {\"community_id\": 339, \"customer_id\": 39554.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39554.0\"}}, \"HkyJqonOnWVZWmP5+cUodA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 143511.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143511.0\"}}, \"nOP4S0nytASLUL4bvWE0dA\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 18167.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18167.0\"}}, \"hJkECJ2HLr0UQKVZy7OAdA\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 47716.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47716.0\"}}, \"VtkRrPYhEQerNJ9qrGuGdA\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 58721.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58721.0\"}}, \"vnyniFSktkOEVu5IMtWNdA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 112443.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112443.0\"}}, \"zEUlGrpc2A8953RQVcuadA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 164428.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164428.0\"}}, \"9RMeAtKVYJRuO+o0RzSsdA\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 24224.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24224.0\"}}, \"kp36vTNmEWarycaRrpDadA\": {\"metadata\": {\"community_id\": 485, \"customer_id\": 136515.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136515.0\"}}, \"cdtm284VM0XW/UkAuEnudA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 156159.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156159.0\"}}, \"Skc+Mdjm58tEJezDmDP8dA\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 124539.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124539.0\"}}, \"H51lkjTGo0qqwQ7sEroFdQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 14642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14642.0\"}}, \"3+LDwxMue3XlbersVpJYdQ\": {\"metadata\": {\"community_id\": 486, \"customer_id\": 160257.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160257.0\"}}, \"2HdF9Vrsld08yjF+lXBrdQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 165125.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165125.0\"}}, \"FbZPBgWRbURp0aLL0Ad4dQ\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 84632.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84632.0\"}}, \"up9psA1MqaBe3U64WLyMdQ\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 18209.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18209.0\"}}, \"VGoT3pblWNeNvo3RyQyadQ\": {\"metadata\": {\"community_id\": 203, \"customer_id\": 52162.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52162.0\"}}, \"wUJVdpgD0n69bX8KbhSmdQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 33825.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33825.0\"}}, \"HQ5PLb8USOfOCBh65VitdQ\": {\"metadata\": {\"community_id\": 399, \"customer_id\": 4294.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4294.0\"}}, \"v+ezx4sOZJKr7IIWcKfGdQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 139628.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139628.0\"}}, \"pTUiejm1wpNhKBFOzILidQ\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 50345.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50345.0\"}}, \"xj4TkhnOXAJQcnNkii8Hdg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 168900.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"168900.0\"}}, \"xdb7EalTUhFl41uzMWYMdg\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 4951.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4951.0\"}}, \"koIW9iwU5uZe/6B7Rj8bdg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 80147.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80147.0\"}}, \"D0PcKw6Dd0cPukvB5boldg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 53373.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53373.0\"}}, \"BN+YmIxT+3E9xyYfA94pdg\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 142559.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142559.0\"}}, \"WAP9f1egYnZin84aLSc0dg\": {\"metadata\": {\"community_id\": 241, \"customer_id\": 153623.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153623.0\"}}, \"W9820uGVNNrihcyqAVBEdg\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 12989.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12989.0\"}}, \"n6dIyXbT6o6OBFNHTaJkdg\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 48244.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48244.0\"}}, \"efFeB1sBxrXang8mpgSWdg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 151853.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151853.0\"}}, \"QDWv7h3lOsHFQ1F5qRaXdg\": {\"metadata\": {\"community_id\": 120, \"customer_id\": 151338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151338.0\"}}, \"1ZSXt9jbtVvWUxZ8Cm+kdg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 195609.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195609.0\"}}, \"rv9CCzm9yv3/yk7JavW0dg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 23891.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23891.0\"}}, \"wtljH1bOIKRg3l1tzqq9dg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 69664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69664.0\"}}, \"OmSfnOYOTGiS6crbu4XSdg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 3809.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3809.0\"}}, \"E1+WI9OuYxMGF9bKHnDWdg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 109948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109948.0\"}}, \"kD0Flo+4T5a+cZgS2c3wdg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 161605.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161605.0\"}}, \"qIj/x2KLaVJKHUV1/qf0dg\": {\"metadata\": {\"community_id\": 487, \"customer_id\": 27317.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27317.0\"}}, \"WfCuGqTioXh9WvVwOoX3dg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 73365.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73365.0\"}}, \"m+eJkUkV2waU1kg+shQUdw\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 161741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161741.0\"}}, \"tRJwNHh9csMWQV2GvAFjdw\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 75225.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75225.0\"}}, \"4VZ10HmA8GdBbgDi2qppdw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 85861.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85861.0\"}}, \"DiTNRzvHxe9KujjLA7t6dw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 42792.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42792.0\"}}, \"E0dFImBZ43XFNFgdbt+udw\": {\"metadata\": {\"community_id\": 459, \"customer_id\": 105242.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105242.0\"}}, \"neUebpMrrYX3e5BjAvyzdw\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 30408.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30408.0\"}}, \"okyPJsnutK0dtiCAaMf5dw\": {\"metadata\": {\"community_id\": 488, \"customer_id\": 71952.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71952.0\"}}, \"0pyXxMZeE/GIVMGUOpgBeA\": {\"metadata\": {\"community_id\": 325, \"customer_id\": 61537.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61537.0\"}}, \"6qLyFjJCSb5H4btWpQA2eA\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 162246.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162246.0\"}}, \"499FzlfKPXgh1Wu0DvB6eA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 52319.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52319.0\"}}, \"Pog8kgYwJacWPRhW1D2FeA\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 129129.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129129.0\"}}, \"rv1QjpEbuSQW+45lpZSGeA\": {\"metadata\": {\"community_id\": 449, \"customer_id\": 5961.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5961.0\"}}, \"SZlsdfqqOK9cfUzLjo+PeA\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 144270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144270.0\"}}, \"p4G/w3mNcdDVKXnZE6KmeA\": {\"metadata\": {\"community_id\": 490, \"customer_id\": 4221.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4221.0\"}}, \"HIvlvNgs59hiOwj2O06peA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 30203.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30203.0\"}}, \"9lplDmateBrR+nSpSFW2eA\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 87038.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87038.0\"}}, \"Kii3w+OpNXvyJU7mN5vIeA\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 17460.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17460.0\"}}, \"ZZJDKMc/Vgqe1yTcnDfOeA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 101307.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101307.0\"}}, \"QBIN35QPRhWmSIUTJVMHeQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 64122.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64122.0\"}}, \"gKSpp6rNIVNrN6mTLjkJeQ\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 34383.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34383.0\"}}, \"jT41S00SsjFOo6Y4qaYaeQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 198494.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198494.0\"}}, \"7K8cFM5yp8Sw9JTNMhxteQ\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 78583.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78583.0\"}}, \"wxurhkLtKTUYBM/ptT12eQ\": {\"metadata\": {\"community_id\": 492, \"customer_id\": 177761.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177761.0\"}}, \"CLSpACpTt/VOa/AJlK2HeQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 821.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"821.0\"}}, \"+0BvGvmt4QbfLkDdaZmPeQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 175303.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175303.0\"}}, \"/naWOtKyFnAFT5TWtQeieQ\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 139108.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139108.0\"}}, \"f+E8VIalbsW65FQq5Z+peQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 189095.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189095.0\"}}, \"z9SQ8Yfw19I4E86iEKyweQ\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 121535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121535.0\"}}, \"EyFl/rmMefeFDR3ZPbq9eQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 74400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74400.0\"}}, \"aLpHxNNDNRGUvBG7y5bCeQ\": {\"metadata\": {\"community_id\": 237, \"customer_id\": 80125.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80125.0\"}}, \"4KZxx1hXO+Ed7jMGA0XGeQ\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 26229.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26229.0\"}}, \"2/lkZHTivYSEytZl2ubteQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 107919.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107919.0\"}}, \"iFjI4Rd3CKYVzlxd3JT7eQ\": {\"metadata\": {\"community_id\": 133, \"customer_id\": 44814.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44814.0\"}}, \"NRnlOwVe+amgRrIlq5b9eQ\": {\"metadata\": {\"community_id\": 159, \"customer_id\": 41060.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41060.0\"}}, \"YyQl1eJdobquxuw0oBQZeg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 107652.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107652.0\"}}, \"7P2CnvCzpPTOvj19qNgoeg\": {\"metadata\": {\"community_id\": 493, \"customer_id\": 18637.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18637.0\"}}, \"k8C+/RAYosn3Aj3IE4M0eg\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 83975.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83975.0\"}}, \"osRoK7EJhp/uYrUewqNieg\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 59305.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59305.0\"}}, \"yJIJ7wkgqGm/P0x11wpmeg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 154711.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154711.0\"}}, \"Hrftt1kQzCVPx8AxEdZneg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 24764.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24764.0\"}}, \"1cFc0SNcjc0CTgGlR8iCeg\": {\"metadata\": {\"community_id\": 494, \"customer_id\": 126467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126467.0\"}}, \"85AtVP7rVmeJpWphnOyLeg\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 71013.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71013.0\"}}, \"wnGOX2Ohd0MS41aad4+jeg\": {\"metadata\": {\"community_id\": 496, \"customer_id\": 189363.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189363.0\"}}, \"AiBoaQxP8X4ZGTH7DL/geg\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 108299.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108299.0\"}}, \"NXaF4wgnso10h1wD9sQQew\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 178911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178911.0\"}}, \"vb55pYg/AOTWKfMFbVM7ew\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 39201.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39201.0\"}}, \"tMYQJ9GjNmp4dSHdunw7ew\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 47907.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47907.0\"}}, \"st4pZAhzBQKvT58+t+JCew\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 3182.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3182.0\"}}, \"191Ea/Jawze72ts2Yv9mew\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 87798.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87798.0\"}}, \"0+rvvOXJDQjr7VAdZsx7ew\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 26440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26440.0\"}}, \"HAOzB/UXYT43MrMLWyx9ew\": {\"metadata\": {\"community_id\": 368, \"customer_id\": 47244.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47244.0\"}}, \"+zyhG4nujadKknUVwouJew\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 99381.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99381.0\"}}, \"1dO0VYT01GcVIwHyIyaOew\": {\"metadata\": {\"community_id\": 497, \"customer_id\": 28089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28089.0\"}}, \"XJcqpIcy69YD5Aees5ecew\": {\"metadata\": {\"community_id\": 450, \"customer_id\": 132865.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132865.0\"}}, \"gKIU7Gl4oIeRvEvPu/O/ew\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 98901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98901.0\"}}, \"zs/qGBZegqxG9zpefbXLew\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 159898.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159898.0\"}}, \"oxHMD6A4LMydU8u3KxvNew\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 66594.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66594.0\"}}, \"itkq/JLDZHb1t8KZDUjOew\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 10063.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10063.0\"}}, \"cbMQ/mrbiirmV3vrCBzVew\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 172076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172076.0\"}}, \"BMl2T4INigVgCJo/c67Yew\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 73936.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73936.0\"}}, \"OHRmMm9MoQrhWchvhvLgew\": {\"metadata\": {\"community_id\": 500, \"customer_id\": 69002.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69002.0\"}}, \"eg9iTlZdkaMzSWySu9YNfA\": {\"metadata\": {\"community_id\": 501, \"customer_id\": 63397.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63397.0\"}}, \"KZtvq/LYMl5NR+CL3I0cfA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 122051.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122051.0\"}}, \"6PmG+WOw26Drh15tZVs1fA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 180524.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180524.0\"}}, \"Hq0dfG8heMrt8RqXXqpDfA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 178311.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178311.0\"}}, \"bUR856SolxjVuhh51iNJfA\": {\"metadata\": {\"community_id\": 175, \"customer_id\": 142163.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142163.0\"}}, \"bXuzTviHiDvMf/HlellLfA\": {\"metadata\": {\"community_id\": 194, \"customer_id\": 94220.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94220.0\"}}, \"0UT4NffRLCfe0ltowmFefA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 124245.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124245.0\"}}, \"qh37fflxH4crnFBSNG1ffA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 138998.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138998.0\"}}, \"hM8yiIQ7+esJXnbg0aGGfA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 150556.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150556.0\"}}, \"Pa0w5caR90aooguYcb2JfA\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 102983.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102983.0\"}}, \"NzlMJMnlHuCbxGhinyGmfA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 118222.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118222.0\"}}, \"4JS9z+LuF7i6jaW2OUysfA\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 131566.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131566.0\"}}, \"Lsm4YXngM+SdFC/A8mDKfA\": {\"metadata\": {\"community_id\": 235, \"customer_id\": 183776.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183776.0\"}}, \"ZtDbhNjj6nHmZgeG3NXffA\": {\"metadata\": {\"community_id\": 494, \"customer_id\": 122446.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122446.0\"}}, \"LOSl8aE9nEoPZ/lS3NzlfA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 120667.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120667.0\"}}, \"gIxrZCDuvc5b7R0ldO3ofA\": {\"metadata\": {\"community_id\": 66, \"customer_id\": 151803.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151803.0\"}}, \"dQJc1MumJDhkpndnjaPvfA\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 97477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97477.0\"}}, \"IIyzz7785kpQU9iuynoZfQ\": {\"metadata\": {\"community_id\": 479, \"customer_id\": 132047.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132047.0\"}}, \"3vO6fTiJWeBW8Ovt00gmfQ\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 30424.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30424.0\"}}, \"ca50n8gu7GeZJp8RRhk0fQ\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 81782.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81782.0\"}}, \"T03vnlhpoiPKW+i4msNpfQ\": {\"metadata\": {\"community_id\": 422, \"customer_id\": 70773.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70773.0\"}}, \"byLzCXNaqxT/CDt05ruSfQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 72083.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72083.0\"}}, \"/d5n79emA1gmv3Otf5+nfQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 3820.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3820.0\"}}, \"VrJZ30qKInj1L/u4OmCrfQ\": {\"metadata\": {\"community_id\": 132, \"customer_id\": 99284.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99284.0\"}}, \"9+UpStn+i+Z+AhdJplnWfQ\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 67339.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67339.0\"}}, \"zSnw+wtmM+4SOAAYxPTifQ\": {\"metadata\": {\"community_id\": 502, \"customer_id\": 92094.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92094.0\"}}, \"xrWu5aeUX9Np83JY2t36fQ\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 29023.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29023.0\"}}, \"hpWsF97VyPcb0sPpYMwZfg\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 81483.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81483.0\"}}, \"/+tEWbza2NMQ+0GqgeYlfg\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 125450.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125450.0\"}}, \"XmgJm7ulMhmz4WN52CFLfg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 121081.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121081.0\"}}, \"xsZ3QoOsiYVsocqIeU1Yfg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 91137.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91137.0\"}}, \"40znihu3LPMCNVYXPwxqfg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 32635.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32635.0\"}}, \"G5Uzi+Wb4tL6BY/O1Xt6fg\": {\"metadata\": {\"community_id\": 503, \"customer_id\": 58238.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58238.0\"}}, \"BqVAoi3vwE1iMVUXAiWGfg\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 102947.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102947.0\"}}, \"vpHUCpSg+ZkJ7DgCJ4ePfg\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 46673.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46673.0\"}}, \"n4Wjg3fw8S/ocGI9gGSqfg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 127142.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127142.0\"}}, \"N43YIvZdED2amMBcfCuvfg\": {\"metadata\": {\"community_id\": 504, \"customer_id\": 64368.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64368.0\"}}, \"Emni82nbGNjkVtShNsS7fg\": {\"metadata\": {\"community_id\": 279, \"customer_id\": 64004.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64004.0\"}}, \"Phron2p9O2Ta3MB1nqnQfg\": {\"metadata\": {\"community_id\": 11, \"customer_id\": 21996.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21996.0\"}}, \"/6AIdDDUcu7WAdktrPjYfg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 47417.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47417.0\"}}, \"yZj53swFyts7fWbyvsPafg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 167115.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167115.0\"}}, \"DUG1RSltevasAkSeJQrffg\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 27488.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27488.0\"}}, \"m+d2LV5NUpBGnNEZWOrgfg\": {\"metadata\": {\"community_id\": 150, \"customer_id\": 189745.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189745.0\"}}, \"o2CKozplhIEEwPMwuJwHfw\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 106717.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106717.0\"}}, \"5RDTYztzVBjOOGuLnfYJfw\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 161006.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161006.0\"}}, \"ZsxjhsAD6Sv1A0bFckkNfw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 94134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94134.0\"}}, \"Mv/Oa4soOpXSvQQaWX1bfw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 146133.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146133.0\"}}, \"Lkgw2dolfwaJQyooYYppfw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 147210.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147210.0\"}}, \"xOvTZEopT/cbeclaxyRyfw\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 20716.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20716.0\"}}, \"iCmJjgRRw00iNyTBA5WEfw\": {\"metadata\": {\"community_id\": 11, \"customer_id\": 28590.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28590.0\"}}, \"Z40sY+dpymk2VZt++4Odfw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 42587.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42587.0\"}}, \"ZU6/wYRtpnWbayzt0gCnfw\": {\"metadata\": {\"community_id\": 239, \"customer_id\": 116340.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116340.0\"}}, \"S5qMzFe0Ze5xFvVuhWerfw\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 110184.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110184.0\"}}, \"09toO23JoZDM1eQNPC65fw\": {\"metadata\": {\"community_id\": 506, \"customer_id\": 12537.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12537.0\"}}, \"9Gwg2EmcZbMB7v8/o0Xbfw\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 178802.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178802.0\"}}, \"as1AvPNQ1U3vjyhWZXXbfw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 197819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197819.0\"}}, \"ABNMMdHuqvyWm6YJkjwegA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 120918.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120918.0\"}}, \"oRE0AvTcLVRIeRdSc98jgA\": {\"metadata\": {\"community_id\": 507, \"customer_id\": 80177.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80177.0\"}}, \"mf/sQ2DSs0ULStqjM3UzgA\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 189334.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189334.0\"}}, \"SzOCs7c2CI/xNi9n68tDgA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 100042.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100042.0\"}}, \"43LU6BgGpBXwOzgEUBR5gA\": {\"metadata\": {\"community_id\": 485, \"customer_id\": 98344.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98344.0\"}}, \"xJiz3I1kHzo5E+2oylh5gA\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 8467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8467.0\"}}, \"ZWpyM5rMePFwPpv5CF6JgA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 119044.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119044.0\"}}, \"DykH5PpzRDCrHn459hWegA\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 212.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"212.0\"}}, \"KWWMpirq65RWiugWtSapgA\": {\"metadata\": {\"community_id\": 508, \"customer_id\": 84409.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84409.0\"}}, \"6/iAnL6duYjqsI6xQ8y1gA\": {\"metadata\": {\"community_id\": 509, \"customer_id\": 91000.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91000.0\"}}, \"LyS4NoG1akOcBiR9Y4fkgA\": {\"metadata\": {\"community_id\": 266, \"customer_id\": 101502.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101502.0\"}}, \"SFY3Ky0iR7dV6QrHD34ggQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 193508.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193508.0\"}}, \"53NfwwUwa8dZBEjNAOYzgQ\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 55895.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55895.0\"}}, \"MsJMsnfAPOMulh3NVLhMgQ\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 180599.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180599.0\"}}, \"2FUWUn57d9WkTiJeBNJWgQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 8501.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8501.0\"}}, \"hZDdVGpM32AGBnhx8b1lgQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 87391.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87391.0\"}}, \"ul28Dil0Q9FmcB3y/n13gQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 176525.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176525.0\"}}, \"9xlQC1cVGGA060Zj7md5gQ\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 57699.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57699.0\"}}, \"KB7edPf4DYwXNqs6bTZ+gQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 192776.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192776.0\"}}, \"SpFHLZG1AQhFGxOLcTCBgQ\": {\"metadata\": {\"community_id\": 465, \"customer_id\": 63906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63906.0\"}}, \"CDlP7HSYXLmFaiyN5IqYgQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 85535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85535.0\"}}, \"Bql4aQyUJhajEaLPowiggQ\": {\"metadata\": {\"community_id\": 196, \"customer_id\": 120347.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120347.0\"}}, \"XRXBu87tOvpos1ClJ6ajgQ\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 183028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183028.0\"}}, \"GdAR33PKO7t7itLwkcSkgQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 56740.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56740.0\"}}, \"sRWsct1emvL0oeoGMbmogQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 63368.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63368.0\"}}, \"VQWWWRLbO/6gR2x5xDP3gQ\": {\"metadata\": {\"community_id\": 195, \"customer_id\": 155801.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155801.0\"}}, \"kZJvIqFrqBfAlh05aHf6gQ\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 123904.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123904.0\"}}, \"3pBelMFKaSd2kR58ooYagg\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 3154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3154.0\"}}, \"pQvmcHKlsQVD46e4shkngg\": {\"metadata\": {\"community_id\": 427, \"customer_id\": 180764.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180764.0\"}}, \"OEXsyZle1VYYL8uWesEogg\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 59862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59862.0\"}}, \"27Jts6i+ZslYObeJLVoygg\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 125397.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125397.0\"}}, \"DfJsJTOjR+NX+PmleFU+gg\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 16852.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16852.0\"}}, \"1Tlrs/pYCh/l3xCFOlNOgg\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 48065.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48065.0\"}}, \"46aKlHUWbk6T7f6FIOuAgg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 75809.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75809.0\"}}, \"odyKSpT9GgrtoCbYSPq6gg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 60418.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60418.0\"}}, \"ugotZicfaCxO89ywurXDgg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 156600.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156600.0\"}}, \"q7GHrWPuuYSRoO8P6Qvfgg\": {\"metadata\": {\"community_id\": 470, \"customer_id\": 173992.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173992.0\"}}, \"pUettJS0B/38xCxmsnnjgg\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 28166.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28166.0\"}}, \"sG/dTTSTiFiKB3E24Q71gg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 183520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183520.0\"}}, \"beJ4oL6Wy5sXtqlO2LH4gg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 149785.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149785.0\"}}, \"4FMBsVtLVFe/Q7jRSBv/gg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 119478.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119478.0\"}}, \"4dMxSfZ1tUlPl97TOccMgw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 11983.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11983.0\"}}, \"DOsl6zK+y/hfIPJ3VtMngw\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 42192.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42192.0\"}}, \"m4x3ssVqGyiYYK9y9OQqgw\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 95442.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95442.0\"}}, \"JZ/SP3mwjV46p9S5v9Mwgw\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 9750.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9750.0\"}}, \"wnxxkY/h8HD42E/vv4Y7gw\": {\"metadata\": {\"community_id\": 130, \"customer_id\": 158206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158206.0\"}}, \"rbYbLjhTXolr8pqM9pVJgw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 180573.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180573.0\"}}, \"tRTiUT2q7boLzf2OSBBKgw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 177529.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177529.0\"}}, \"SPnVEAItdFjPGaU3ufZSgw\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 62587.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62587.0\"}}, \"hNssRjdsVPWPIXeaQ55ogw\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 12563.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12563.0\"}}, \"QZH8vfYtCBAc59swD26agw\": {\"metadata\": {\"community_id\": 423, \"customer_id\": 22795.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22795.0\"}}, \"+SUT8HUDFF9VwUvjKqCggw\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 131070.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131070.0\"}}, \"cB4k/wvjlkEyABHiHtqigw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 172173.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172173.0\"}}, \"raakfeUY5abYonuzW1G1gw\": {\"metadata\": {\"community_id\": 488, \"customer_id\": 590.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"590.0\"}}, \"gkzABWaToN7RXcv0rf/Ogw\": {\"metadata\": {\"community_id\": 512, \"customer_id\": 108600.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108600.0\"}}, \"fzbpoYXB7t3QDILutC3sgw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 122832.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122832.0\"}}, \"813MKAEw6poYGq6K5JHtgw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 50091.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50091.0\"}}, \"BwE/g8Wgt3CdH7ApP+YShA\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 177659.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177659.0\"}}, \"XHApgMrcyJKBXYHBHMgahA\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 181252.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181252.0\"}}, \"LlaVgzJQejxtWoYhKnBQhA\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 46947.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46947.0\"}}, \"GQFoIQ9wL/eZEy/wZDZehA\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 73204.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73204.0\"}}, \"4Z23zzva4euaLRBGl9VehA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 60951.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60951.0\"}}, \"icW9xFiUc3lytmLbrRx/hA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 92252.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92252.0\"}}, \"QYuYhJq6PcBT0c+DRYWAhA\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 139231.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139231.0\"}}, \"qO5g9FMOF+kipT/dNQiJhA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 67491.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67491.0\"}}, \"amTcXluqwFvvCKvAyPmXhA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 28942.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28942.0\"}}, \"J3mNS9kxe26Yi816SQSYhA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 37476.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37476.0\"}}, \"yQjWDPTgU22NCJ+ors/lhA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 199267.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199267.0\"}}, \"GigVNO8Fs+XEzbfNezzphA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 115911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115911.0\"}}, \"pkVC7mSNtEwUuxi1LLrwhA\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 30254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30254.0\"}}, \"eEG8U3fO2muTeIM7JCQChQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 101701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101701.0\"}}, \"a1dPxbwXNfiONYdhIiQNhQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 37810.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37810.0\"}}, \"3GtPhtMHl5X4mu4HSukWhQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 131026.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131026.0\"}}, \"s/k+WFHQ5W9aHWgEMM8XhQ\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 139029.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139029.0\"}}, \"HxdyC6c/hI78wBGO81UahQ\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 166607.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166607.0\"}}, \"bDci8BIt+vso5WXBUfZPhQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 130356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130356.0\"}}, \"rEsQIeJFhjmEloI3VS1bhQ\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 3417.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3417.0\"}}, \"ZOXH4sYXO8arQZZMzYldhQ\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 31029.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31029.0\"}}, \"v6rEtj7X5ZMJKzcuXNJhhQ\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 113294.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113294.0\"}}, \"/RiRhji19HANI2EN5WdnhQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 1778.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1778.0\"}}, \"Ykn3g3QC0rQT10FGrwVuhQ\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 154604.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154604.0\"}}, \"Mxcr8MDLOsrUcNOZZAmDhQ\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 61020.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61020.0\"}}, \"vujxY+ZC8FCpdhHZeh2YhQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 59202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59202.0\"}}, \"lDMw8TfqrCgHHpa7WOOYhQ\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 160406.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160406.0\"}}, \"NSh4yoNJhqwR/mYpwpaehQ\": {\"metadata\": {\"community_id\": 242, \"customer_id\": 71089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71089.0\"}}, \"lojx+gIGkFIte9+XWtSjhQ\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 32830.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32830.0\"}}, \"cJ/Kh60Lwl2Y5mZRFzjJhQ\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 151838.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151838.0\"}}, \"Xmq2gZjfpOmqc205fCPhhQ\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 40761.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40761.0\"}}, \"WB2s2HpFbbHYpva2vHoChg\": {\"metadata\": {\"community_id\": 185, \"customer_id\": 196549.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196549.0\"}}, \"wph8PLZvlqygec2g0ZIIhg\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 129301.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129301.0\"}}, \"xu7RHPhCjrChYtE9udUIhg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 33109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33109.0\"}}, \"oklVnGTYPCdUOJPs4w8Lhg\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 199150.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199150.0\"}}, \"iweGkp1urOOrJF2VoRZNhg\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 148876.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148876.0\"}}, \"7u2XSrqa0R2siPqtptBvhg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 76339.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76339.0\"}}, \"DOJ3OEl+wag5/2KgunNwhg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 153398.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153398.0\"}}, \"1PYg/GeRNUSgHhIJQlmZhg\": {\"metadata\": {\"community_id\": 412, \"customer_id\": 179267.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179267.0\"}}, \"RdxNld8Jy3rGVLi1TUSehg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 6520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6520.0\"}}, \"P8GKZk+TH9Fs7Xg2twighg\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 192877.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192877.0\"}}, \"RmJICEOyIUQIJLdMilO4hg\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 162539.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162539.0\"}}, \"vMgwA5HwD33hVvy4pK/Ahg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 67961.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67961.0\"}}, \"Kbhv+XSqvDoMD13AFgLghg\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 55277.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55277.0\"}}, \"pP36UZKw6kXrWeW9WIf6hg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 63416.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63416.0\"}}, \"pQPJ271k9bUoMV49g6IUhw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 75538.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75538.0\"}}, \"yIi9qzDFMl9qt0xAuWtGhw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 47874.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47874.0\"}}, \"o2bKAZR6aYNtSggKGSVPhw\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 59028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59028.0\"}}, \"p3tybEF2UpLMP4gDgTlShw\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 69437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69437.0\"}}, \"TodOSaFZiYOH8gsHOfldhw\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 35812.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35812.0\"}}, \"cCPJgnmqfGiAytewr9+Ahw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 83150.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83150.0\"}}, \"8rzeo+EaMha06b3mPHaFhw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 19614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19614.0\"}}, \"0sfaCWjVStturOAXfaGRhw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 85023.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85023.0\"}}, \"OTBYEyX2QOB4W51Qglmqhw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 75508.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75508.0\"}}, \"5cV0GYVtl1fh/DI7O5TBhw\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 69503.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69503.0\"}}, \"yUoUSvScDsB2mWYtcrHuhw\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 154623.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154623.0\"}}, \"Q1bmXHnbChJuHI/NXkr5hw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 65828.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65828.0\"}}, \"eI+GLSSPGpM0YzAynKwBiA\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 110548.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110548.0\"}}, \"wjjHMDS+oPWRjv725xcDiA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 113437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113437.0\"}}, \"vk1g0t3PzUZjffECtPwdiA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 43408.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43408.0\"}}, \"fcFSRQ5f5s0sLFOMwmYsiA\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 108614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108614.0\"}}, \"rtQmcpROqcblEzxYvOdFiA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 31720.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31720.0\"}}, \"x/rpyDH2fFCbE+u0d79MiA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 166929.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166929.0\"}}, \"SVHlmn1r2bsNbwqdYmNdiA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 195102.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195102.0\"}}, \"D/A8t0cmv3N4b8hDFamTiA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 176784.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176784.0\"}}, \"US5Qo6JtPJRWWdK1sh2UiA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 133186.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133186.0\"}}, \"MrbW31/GLJu0yonpmKadiA\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 116925.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116925.0\"}}, \"lmBINJAFKbwThqfREy6/iA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 35314.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35314.0\"}}, \"dlr2R44ETn3xtO4mnELFiA\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 73057.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73057.0\"}}, \"7o2xRBk8+bEnyRLzDpH7iA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 12911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12911.0\"}}, \"dJLrv9jk7ldi+jAgapgViQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 40099.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40099.0\"}}, \"ELU9OZuGG7mvNMcFBlEmiQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 49866.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49866.0\"}}, \"7LoXRQyN/WUR4uMbgJgsiQ\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 193522.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193522.0\"}}, \"t4T3wmGipQx4c4H54HxOiQ\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 33206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33206.0\"}}, \"MeX6DDISi5cEsrtmH2FZiQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 9801.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9801.0\"}}, \"N9GHwM2Vq3oyzQrCqt5ciQ\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 152528.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152528.0\"}}, \"qiADwYywQwryVlnMOEJtiQ\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 151760.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151760.0\"}}, \"KuY19ZpJ9pyPPEUlZSFuiQ\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 117815.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117815.0\"}}, \"5//GAO7hi2HIxr4ipP2KiQ\": {\"metadata\": {\"community_id\": 514, \"customer_id\": 25116.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25116.0\"}}, \"HRfIlCMyjqCLOAdE7RCTiQ\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 176018.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176018.0\"}}, \"GKx7Kx08P5oJYYDzmxGTiQ\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 144470.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144470.0\"}}, \"S1/wc5PKbfp7F7b/fdnEiQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 42502.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42502.0\"}}, \"s3qP/XBlR8cGjJ1s3pX2iQ\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 51539.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51539.0\"}}, \"AdIBqPKbWZ1ixMQ1vwkHig\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 157895.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157895.0\"}}, \"GfC4/nvDCu7sIotSuigJig\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 30109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30109.0\"}}, \"F6WHsN/AKDjztOrLCVQxig\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 61031.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61031.0\"}}, \"zjO5j9qIwyI+tAwMdBI9ig\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 90323.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90323.0\"}}, \"1jKoWPtNZuyTySc8hwFBig\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 50182.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50182.0\"}}, \"vWvb8EkPpgQ/qY160Axdig\": {\"metadata\": {\"community_id\": 497, \"customer_id\": 161296.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161296.0\"}}, \"7lhN4GXU1jN/cw81F5Viig\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 99442.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99442.0\"}}, \"gbTBrGKYi9EDhNNNZpNjig\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 67338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67338.0\"}}, \"PL5jtLk+zPAXhB/EpkN0ig\": {\"metadata\": {\"community_id\": 448, \"customer_id\": 153507.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153507.0\"}}, \"QoHi3matwhw+B0if9Y6Dig\": {\"metadata\": {\"community_id\": 461, \"customer_id\": 74347.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74347.0\"}}, \"7Gk9r9+9dPSxFKRaRSiRig\": {\"metadata\": {\"community_id\": 282, \"customer_id\": 8801.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8801.0\"}}, \"ZK6YeSt70T5UPes8Tj68ig\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 106614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106614.0\"}}, \"aU4n2x4OPkJodk0KxvLYig\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 11679.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11679.0\"}}, \"L2474WrP9VHTSD5GjTHeig\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 24392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24392.0\"}}, \"/9wvd4VqJwRqnTWtDanhig\": {\"metadata\": {\"community_id\": 240, \"customer_id\": 103253.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103253.0\"}}, \"lJcfjh1B0QC8wlaorKjnig\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 159625.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159625.0\"}}, \"LbpAv4RD73ZyJlP8Viv4ig\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 91211.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91211.0\"}}, \"LlZMdonbcTzMHX8tffT5ig\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 99443.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99443.0\"}}, \"EDp/Q2VCkQFOz0Iplgj9ig\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 13400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13400.0\"}}, \"RcN8xiuUhv2kkieL87f/ig\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 125780.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125780.0\"}}, \"2WuhL5d5X3mqFFxzpE4Siw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 160664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160664.0\"}}, \"NWZIDb0hOgiqfdVF/d8Viw\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 41356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41356.0\"}}, \"0l4RTgkLvmQmKCNvIiUziw\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 41517.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41517.0\"}}, \"tag4XqPZ1ovS8C2YXBc2iw\": {\"metadata\": {\"community_id\": 70, \"customer_id\": 113375.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113375.0\"}}, \"b3tzFgpkl9x19kBFzaQ7iw\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 141516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141516.0\"}}, \"AnqqRMSFJIdjqNTRgBhGiw\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 35505.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35505.0\"}}, \"aZ94xZmWiU/6fGBxFlmAiw\": {\"metadata\": {\"community_id\": 515, \"customer_id\": 27615.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27615.0\"}}, \"mPxvKKa8/IHMUITnO0yOiw\": {\"metadata\": {\"community_id\": 486, \"customer_id\": 17940.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17940.0\"}}, \"b5vs1fwa84/qK2dkqpWviw\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 149752.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149752.0\"}}, \"l530hSXtzJ0CZmjTdke3iw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 132658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132658.0\"}}, \"7ARtNFnnaQ6GXiln4T/Qiw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 141861.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141861.0\"}}, \"dhusCwGFABIyWc0D0Gbxiw\": {\"metadata\": {\"community_id\": 516, \"customer_id\": 38474.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38474.0\"}}, \"7WnSaJh7YZRbTu+sts30iw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 181525.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181525.0\"}}, \"34JltuWiUJGNu5yr30D4iw\": {\"metadata\": {\"community_id\": 379, \"customer_id\": 124433.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124433.0\"}}, \"xmdiNDAZrXb96DU6G+YMjA\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 125015.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125015.0\"}}, \"AYUi4YjxI3sjyh69XmUZjA\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 142357.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142357.0\"}}, \"tNAIkX4qZor6WS+AzCs0jA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 184187.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184187.0\"}}, \"ezkzW2wuFCumEZ/ag1Q4jA\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 95953.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95953.0\"}}, \"uKun7xuFYzhGRl+S+nJjjA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 161658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161658.0\"}}, \"lr6ZvC4jKRd6K7+kcQKNjA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 81731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81731.0\"}}, \"APTLNvOckRQErfs6WtWkjA\": {\"metadata\": {\"community_id\": 406, \"customer_id\": 162823.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162823.0\"}}, \"J8SjBvJCmPKOGw5leXvCjA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 41320.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41320.0\"}}, \"b1M/wYdBaDni3Ofh4l3HjA\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 181805.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181805.0\"}}, \"Yz2zqM3ottFo16zf8VP/jA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 56431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56431.0\"}}, \"su6tafi80XozMhq/bUQQjQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 36217.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36217.0\"}}, \"HHin+VkuwzW1+zW1nIAhjQ\": {\"metadata\": {\"community_id\": 380, \"customer_id\": 48589.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48589.0\"}}, \"kVhIf9Yg6rCX4/kOHXUnjQ\": {\"metadata\": {\"community_id\": 338, \"customer_id\": 173431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173431.0\"}}, \"uYIu5+gtVaTQVZiPGapHjQ\": {\"metadata\": {\"community_id\": 375, \"customer_id\": 7501.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7501.0\"}}, \"8Ow4dabxHnWh03IJriBQjQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 185982.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185982.0\"}}, \"oaRnYnhvO/FYGlQNqix0jQ\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 130646.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130646.0\"}}, \"2lQwbRqYwBClEYuT3sl5jQ\": {\"metadata\": {\"community_id\": 150, \"customer_id\": 6670.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6670.0\"}}, \"VwYIikUAhpUNQ87/LkyMjQ\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 171957.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171957.0\"}}, \"/LWWbQVfFEGRdmgHBX+hjQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 35184.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35184.0\"}}, \"zBYtW6j0BVVb87hgefOzjQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 118236.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118236.0\"}}, \"iRbYHE+vW9ThiDFrH1S6jQ\": {\"metadata\": {\"community_id\": 262, \"customer_id\": 88723.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88723.0\"}}, \"GE7TD8juiqQ9vJOTdh/WjQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 179115.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179115.0\"}}, \"EI1Bb3iYtYtE0JmXrzbhjQ\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 84999.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84999.0\"}}, \"STJBi8oPwc2BctwyE6sWjg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 125022.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125022.0\"}}, \"P3ZfkdUWoPHfTnvoEZovjg\": {\"metadata\": {\"community_id\": 320, \"customer_id\": 103009.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103009.0\"}}, \"J6oUjOAH1BBqpI0I1+A5jg\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 29464.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29464.0\"}}, \"qZrorchi2uCuBRCn13Jfjg\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 148150.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148150.0\"}}, \"EngmqUh4gyea4TS7OO9yjg\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 86055.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86055.0\"}}, \"kjHwdaup66csMOCG3ROKjg\": {\"metadata\": {\"community_id\": 446, \"customer_id\": 182730.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182730.0\"}}, \"jSRfMZy/4td8W+2rHbKKjg\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 104290.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104290.0\"}}, \"2S4DHIPXmBRy4ga7Mw3Fjg\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 47546.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47546.0\"}}, \"tSRwNpETY7Lfodms/g7djg\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 179408.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179408.0\"}}, \"75emx1Xn05NP13ZlbDnqjg\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 5988.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5988.0\"}}, \"Wu9y2fqKtlmpQc2y8UYBjw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 142508.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142508.0\"}}, \"Svv21VeSyogknGWZLq0qjw\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 29770.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29770.0\"}}, \"dj5gNj2/vVS39LTElZcvjw\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 3876.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3876.0\"}}, \"+vqV5drJz8mV3S8VFpkwjw\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 102921.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102921.0\"}}, \"Vt0YjdF6gca6IHVC9Hs5jw\": {\"metadata\": {\"community_id\": 424, \"customer_id\": 12272.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12272.0\"}}, \"XgXD4ybBbpiAlnG51DRSjw\": {\"metadata\": {\"community_id\": 38, \"customer_id\": 149297.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149297.0\"}}, \"LjIJIsWr2kj76XygrEd5jw\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 193757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193757.0\"}}, \"7KcKrZ7VTELYyhbcB1CLjw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 104231.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104231.0\"}}, \"KSy197RLM9KmZkkCLRjLjw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 168879.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"168879.0\"}}, \"y+bS1hJzb7DfBIsDLnbkjw\": {\"metadata\": {\"community_id\": 507, \"customer_id\": 164294.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164294.0\"}}, \"aT7jTvJmQNGLTi4X6y7vjw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 68259.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68259.0\"}}, \"EmDKU/Z/uCBSXOGi++/1jw\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 15254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15254.0\"}}, \"tt5c/hfUXcsvf076ArMHkA\": {\"metadata\": {\"community_id\": 98, \"customer_id\": 51007.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51007.0\"}}, \"leIQh+Nv7Br6jyV3azMvkA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 163085.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163085.0\"}}, \"tT56pcNitJCJsWGjol9AkA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 67343.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67343.0\"}}, \"XqkxpgKTYkq8YB+YxQNJkA\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 190700.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190700.0\"}}, \"ymZAIf0E6zclGzrp8HZOkA\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 57332.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57332.0\"}}, \"wm0P02CMDxZMbW0FmLdvkA\": {\"metadata\": {\"community_id\": 493, \"customer_id\": 195551.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195551.0\"}}, \"8DMefT1OSM5d4f8qFzt9kA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 70476.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70476.0\"}}, \"qrsjsWUS7pNe8p0FWJp9kA\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 79917.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79917.0\"}}, \"mwwTgvkZoGiAGW1oNL+LkA\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 14028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14028.0\"}}, \"hdbnBT9t2fyEJTsarj2ckA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 131635.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131635.0\"}}, \"7+546eOPGtXQD4e1DDKtkA\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 53488.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53488.0\"}}, \"s1Cp/MWD2ItYJBSRuQDQkA\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 82169.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82169.0\"}}, \"yrXDjH5Y3GviTTblofUhkQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 18462.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18462.0\"}}, \"uYfni3DsnHLywrApmbU6kQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 102136.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102136.0\"}}, \"mvm8uzRObfOilYPlJTJ9kQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 147267.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147267.0\"}}, \"OnleVs9vYySxKt/ycEmYkQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 197679.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197679.0\"}}, \"0cSWpJdc3Akr/N3MCnC8kQ\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 24641.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24641.0\"}}, \"nJ1II7w+Iraj91Z0NlS9kQ\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 36511.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36511.0\"}}, \"+jed9hT4PCjAgcZW7k3BkQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 58477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58477.0\"}}, \"xhxYTYvGcyJprp8iGNPxkQ\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 77322.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77322.0\"}}, \"K8C5ZUWabbBM5OUN4Dopkg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 106.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106.0\"}}, \"vmO6Y+KYqGplY91Uh4otkg\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 68206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68206.0\"}}, \"1vnevzowu+uO6Fw7bnhVkg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 56594.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56594.0\"}}, \"MD286c3p+1wLoCXHWXNekg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 101672.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101672.0\"}}, \"fVODvtXqbIUOpKDyQOeZkg\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 19251.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19251.0\"}}, \"JWq9Z94VJ3KnTaJTzG6rkg\": {\"metadata\": {\"community_id\": 517, \"customer_id\": 96255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96255.0\"}}, \"aY38F1Hi68kXNObkjJy0kg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 58943.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58943.0\"}}, \"GT+3GNQqNXtZnm7G2RrQkg\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 40061.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40061.0\"}}, \"BP7DgF9QPNEPPG09OT3xkg\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 87668.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87668.0\"}}, \"gCCFDdahxk6vhMbz8r0Dkw\": {\"metadata\": {\"community_id\": 518, \"customer_id\": 130279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130279.0\"}}, \"q1hIpuJfhsRHeVqWKvcwkw\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 1042.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1042.0\"}}, \"V39HVLs3gAxLStN2ZbhDkw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 183503.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183503.0\"}}, \"w/1S2jjYrh+t4IF1b9hDkw\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 65404.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65404.0\"}}, \"vRASEJmApd9kVKJdViBVkw\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 124796.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124796.0\"}}, \"5mpJr5Sfqf4U8mpiqhJ7kw\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 30101.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30101.0\"}}, \"coyiMRwZqLI5ZdJOoZeykw\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 12999.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12999.0\"}}, \"wWOB65sUCgBZmtKzkj+zkw\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 21184.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21184.0\"}}, \"M/+0wuChC+y87lbk0nzOkw\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 107838.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107838.0\"}}, \"2XgKwEYu+xnjpKxCZsXPkw\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 107380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107380.0\"}}, \"PT8VvCe2+xblFYSQtULWkw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 43934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43934.0\"}}, \"+hcPbiZB+EqklCe9mW0OlA\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 117791.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117791.0\"}}, \"RFhRmMGBBEPoXxsodv9AlA\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 157320.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157320.0\"}}, \"0OJgoCy/iRkK0pdhLZlDlA\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 101392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101392.0\"}}, \"1e8Ls517tKCbpK1LBq5blA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 188488.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188488.0\"}}, \"stm5O3lA7Tm784XxpVddlA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 107071.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107071.0\"}}, \"R0VympemlR1IDHdJpudzlA\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 18996.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18996.0\"}}, \"pzrkk3XBurZ98mVCu1qMlA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 37130.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37130.0\"}}, \"YL7u6Ftz6it+yHZ1zOCPlA\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 31656.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31656.0\"}}, \"X9RJFsdiJwVjivPdqJGglA\": {\"metadata\": {\"community_id\": 100, \"customer_id\": 67516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67516.0\"}}, \"0l7C/zbIFeNPorEw6JmxlA\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 196687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196687.0\"}}, \"iQM2EjFgUk/83dUXxYq3lA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 169611.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169611.0\"}}, \"uavpFtRH+63SmDObMUHmlA\": {\"metadata\": {\"community_id\": 478, \"customer_id\": 167339.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167339.0\"}}, \"wd8a5USSMAFt1nzWAND3lA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 163941.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163941.0\"}}, \"qTBjKwL3Q0ouakCUEcv7lA\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 102626.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102626.0\"}}, \"0/q+Y7rDgFo0pIuKyYUPlQ\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 162713.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162713.0\"}}, \"MVzuargAqRhEhH9ikjoTlQ\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 48252.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48252.0\"}}, \"3Inzja40kbY1hPZTZY4WlQ\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 69072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69072.0\"}}, \"C7kYsxu3YlUXLJe+cxAXlQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 160349.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160349.0\"}}, \"g7BClnljHMe7t/6wyE8flQ\": {\"metadata\": {\"community_id\": 520, \"customer_id\": 70691.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70691.0\"}}, \"a5nwKdFepWlrJsQ5uDgklQ\": {\"metadata\": {\"community_id\": 521, \"customer_id\": 150690.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150690.0\"}}, \"gRn+/8gycwpXhkV24zExlQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 33567.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33567.0\"}}, \"difYUkvCfs1qtJHSw4xdlQ\": {\"metadata\": {\"community_id\": 509, \"customer_id\": 77834.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77834.0\"}}, \"H4uou4s2t0Bc4QGhTbWClQ\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 24650.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24650.0\"}}, \"Ev9lGJvuC87K+6RDWUCSlQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 135908.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135908.0\"}}, \"uDOUHvwuMFbU5lxW8kemlQ\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 57084.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57084.0\"}}, \"plg79dOordUluDMn0QerlQ\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 12119.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12119.0\"}}, \"lu/KWGLuVxFjTOsFrAK1lQ\": {\"metadata\": {\"community_id\": 159, \"customer_id\": 145794.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145794.0\"}}, \"wLHG6RNrCE68R009G9u3lQ\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 189708.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189708.0\"}}, \"e1Y/y58FpDPgmAh5G8G4lQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 55272.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55272.0\"}}, \"aMtomuAEu+BPWSpp9f67lQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 59431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59431.0\"}}, \"BrKEzkZl+oeSpp1lEm/RlQ\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 121218.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121218.0\"}}, \"DhYeLFCCR/CLQlVcB+30lQ\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 110311.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110311.0\"}}, \"RsEcyneOsOsiTwGvQLs8lg\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 85976.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85976.0\"}}, \"70aYqyv9oeYGbgxhrjo+lg\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 16195.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16195.0\"}}, \"7/bDMg+CgSBsSBxSvS5Jlg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 53769.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53769.0\"}}, \"ORrKkkolP4HTZZkv84pXlg\": {\"metadata\": {\"community_id\": 506, \"customer_id\": 115097.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115097.0\"}}, \"2RiLIE1K1TPlUCCANP1Ylg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 166048.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166048.0\"}}, \"pnzwd6zA7P0nwxXLzK5elg\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 187411.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187411.0\"}}, \"9NyRQB1LYCsbPHrE6bFjlg\": {\"metadata\": {\"community_id\": 146, \"customer_id\": 156928.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156928.0\"}}, \"FqlSDenR1ixjbu54Vutxlg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 29381.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29381.0\"}}, \"bruKgrPMaRoxZXRCGPN7lg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 89534.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89534.0\"}}, \"B1+BS78xBzICq4XtMwmzlg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 71200.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71200.0\"}}, \"Pn48zoj9DvyN79bhDOnBlg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 151409.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151409.0\"}}, \"XpcTNKSSMnAhHOy06+3Dlg\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 146601.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146601.0\"}}, \"skKOLxoTeRihqW43U/fRlg\": {\"metadata\": {\"community_id\": 522, \"customer_id\": 188390.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188390.0\"}}, \"IMy6N7C+hCRMkf7TI+/alg\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 39272.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39272.0\"}}, \"HTmlpp/Iumoh5z1ZeAr6lg\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 6700.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6700.0\"}}, \"A4GDSAA4mHRobOibWak3lw\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 51550.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51550.0\"}}, \"/cpUGyXhspITs2LY9v5Vlw\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 82190.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82190.0\"}}, \"eJr98/w3TNjFYYEosmJmlw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 59140.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59140.0\"}}, \"Ye9kqudPVvs1pgQ+Rc9mlw\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 58620.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58620.0\"}}, \"PFQQFTwxo7gAyWxkxct3lw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 47248.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47248.0\"}}, \"nOU0JofEhmOu14V1gJCDlw\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 25687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25687.0\"}}, \"Mm96JWwrURGUG7NvDFmFlw\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 40798.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40798.0\"}}, \"3AKM2uMCMBowR2F0SPaRlw\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 65665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65665.0\"}}, \"wzAftnwgVrYbBviqd5/Nlw\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 51142.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51142.0\"}}, \"lAzBrk9QGzuamP+I91TWlw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 55607.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55607.0\"}}, \"E5HA829CEYozUMuleqDXlw\": {\"metadata\": {\"community_id\": 523, \"customer_id\": 120985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120985.0\"}}, \"e3WYn1OreehJ2jK6m8rnlw\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 169851.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169851.0\"}}, \"6lApIV2MCrZkWFZZJf/rlw\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 123938.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123938.0\"}}, \"s55XD/vCmr3qzY+v2f8CmA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 154237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154237.0\"}}, \"Rd6VoO4/XbQaKWB9PSUNmA\": {\"metadata\": {\"community_id\": 524, \"customer_id\": 112755.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112755.0\"}}, \"fOV5Br0GYDzZFRxI+gQRmA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 198158.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198158.0\"}}, \"TxvBO7S9xqj6+BYalhASmA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 142321.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142321.0\"}}, \"3Mmtn4en3D2UNWbeME8UmA\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 48303.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48303.0\"}}, \"uEQS6OisQD2R3qCxp/0amA\": {\"metadata\": {\"community_id\": 525, \"customer_id\": 152151.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152151.0\"}}, \"I2xubWo3ds1VoHwxbTE8mA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 90161.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90161.0\"}}, \"FbNmAv8ufmo03YB7SphOmA\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 129128.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129128.0\"}}, \"7464ADYEqh2JXvYPcQ9YmA\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 109205.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109205.0\"}}, \"4sJOO8Vxy+D5M1iVe7lYmA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 191086.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191086.0\"}}, \"ZZkUAgtwxPW4ue5corBtmA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 83899.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83899.0\"}}, \"eUllzuIfKGJ2N2NV6xyHmA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 91966.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91966.0\"}}, \"dOUE10943msMhph80cKHmA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 52264.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52264.0\"}}, \"Z9dCRzGkhMPsUVW2ZxiKmA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 198779.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198779.0\"}}, \"2tErsV7PrIgWpryU+hSNmA\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 42.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42.0\"}}, \"0qB9VvsBljzCFo868ROkmA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 122970.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122970.0\"}}, \"r+Can401isBVNhLUfNf6mA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 122525.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122525.0\"}}, \"ciq0t3t4csHVxzE/sPowmQ\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 141710.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141710.0\"}}, \"0njIZzPiH4ZQ3yQroYg0mQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 60083.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60083.0\"}}, \"/hg11VBlQNdhRdNquj44mQ\": {\"metadata\": {\"community_id\": 364, \"customer_id\": 169954.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169954.0\"}}, \"026x+hkDchtogP27DW1BmQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 4425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4425.0\"}}, \"kHs2Gj+5NnOYE8qC1kZImQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 37202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37202.0\"}}, \"HZQlAg8cz/q0rps2qUxTmQ\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 134627.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134627.0\"}}, \"eXyRv8MXYpLkGNQSuZBjmQ\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 198659.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198659.0\"}}, \"foEOhXqE/MBXNZlfAAZmmQ\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 55109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55109.0\"}}, \"cbBd9N1KLhKdXGpN8o10mQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 105931.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105931.0\"}}, \"UsfNfeGSTAvJn67KIlF1mQ\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 14248.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14248.0\"}}, \"/VK6UvapYnz8anaV+QeKmQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 2201.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2201.0\"}}, \"OJiYUyGs6B5DAq7vTuuOmQ\": {\"metadata\": {\"community_id\": 32, \"customer_id\": 149172.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149172.0\"}}, \"O1RVC+p7aPV8bOsQ6e7fmQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 13786.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13786.0\"}}, \"GogN3PGHqIxQPq1ggN//mQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 104923.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104923.0\"}}, \"qZLjmxMAXLWRVlLqWDUUmg\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 45024.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45024.0\"}}, \"1RXEjZUbzQlv/sF+7lcjmg\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 192586.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192586.0\"}}, \"0itFxQ86XIpBvYaqkb0rmg\": {\"metadata\": {\"community_id\": 518, \"customer_id\": 19033.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19033.0\"}}, \"J0Y7X8OuVoDvRFkvRDo+mg\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 98122.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98122.0\"}}, \"+WsOH4nJKjn2CB/iEjBAmg\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 167761.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167761.0\"}}, \"/VSjNgh6mEKfWVR2yolAmg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 167645.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167645.0\"}}, \"WsADvQUexHH226piNwJkmg\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 85100.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85100.0\"}}, \"vLiqq6XAkt5wPpqWnOCCmg\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 33422.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33422.0\"}}, \"N71NdD65ClhwHhQI+8WYmg\": {\"metadata\": {\"community_id\": 526, \"customer_id\": 117480.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117480.0\"}}, \"AuPs8xIujNSsWmRixEWlmg\": {\"metadata\": {\"community_id\": 527, \"customer_id\": 64986.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64986.0\"}}, \"V0X2HIuhS0Ps7WOiYcGtmg\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 29174.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29174.0\"}}, \"kWrxTjv+GDZWFiLdsajHmg\": {\"metadata\": {\"community_id\": 395, \"customer_id\": 11980.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11980.0\"}}, \"raoyK7i9VADXHBEd5q/Img\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 121683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121683.0\"}}, \"bVoAGD67kCzsNOh18bHUmg\": {\"metadata\": {\"community_id\": 341, \"customer_id\": 50484.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50484.0\"}}, \"NQycxBqIh2cAluZ/Nfbimg\": {\"metadata\": {\"community_id\": 52, \"customer_id\": 54788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54788.0\"}}, \"t1GlVhkS7JUA74ZRrn7omg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 32847.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32847.0\"}}, \"A14BetnIopZaaGAnjtv9mg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 150271.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150271.0\"}}, \"+hre7gCyki7DbDJpF54Emw\": {\"metadata\": {\"community_id\": 224, \"customer_id\": 89968.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89968.0\"}}, \"5AKiYlk9S8R3PhStCTMGmw\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 75706.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75706.0\"}}, \"n+6GBSL9r88/k1XUx+wJmw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 44980.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44980.0\"}}, \"IUCSc8JrpOX9siFlq4kTmw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 84361.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84361.0\"}}, \"1xvTFcy1sizvpJ70mbM5mw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 90190.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90190.0\"}}, \"6ft3Z993zOtMnqoGYxFImw\": {\"metadata\": {\"community_id\": 2, \"customer_id\": 60572.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60572.0\"}}, \"E/fvpVf6HaKe2VQD8N5Mmw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 65855.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65855.0\"}}, \"0pM8Ak4i3j5S+FA0NY5Xmw\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 142795.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142795.0\"}}, \"orCV8VMs0nLuHGGOymdYmw\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 27901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27901.0\"}}, \"NtNWeCyveb2+3kcn+atfmw\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 155152.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155152.0\"}}, \"cH7hwoKgMaOJsY5D3kVnmw\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 193080.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193080.0\"}}, \"ULTEbZ9xWlg84CiPGN5+mw\": {\"metadata\": {\"community_id\": 522, \"customer_id\": 193034.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193034.0\"}}, \"oLBEewI2+TtOi/P+zFONmw\": {\"metadata\": {\"community_id\": 121, \"customer_id\": 47132.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47132.0\"}}, \"Tj1QpznbGlgcl36CONWxmw\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 185728.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185728.0\"}}, \"IsbmmrPvHfOSoTAvdVW3mw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 142447.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142447.0\"}}, \"hWotMeINwSMsuStZDvr2mw\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 131149.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131149.0\"}}, \"Ifsn31I/BxOTLopfp+ELnA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 11987.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11987.0\"}}, \"KvjMCetZz2V1Zmw8U58vnA\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 181810.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181810.0\"}}, \"t7Lm24o8Qqbykt2A4VlQnA\": {\"metadata\": {\"community_id\": 440, \"customer_id\": 194987.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194987.0\"}}, \"HASgCJE/Y8hAt4Al2gtgnA\": {\"metadata\": {\"community_id\": 516, \"customer_id\": 13093.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13093.0\"}}, \"MuG/pOvxWpq41fkfo/RhnA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 194316.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194316.0\"}}, \"Snf67yCbEURPNP44X86EnA\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 197958.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197958.0\"}}, \"HHkXkBT/54litQTh/BmLnA\": {\"metadata\": {\"community_id\": 528, \"customer_id\": 105803.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105803.0\"}}, \"wUALAJQSrjDS74qqSXWanA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 185477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185477.0\"}}, \"MFadgRNeoJXgS6129bqinA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 6665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6665.0\"}}, \"ngOZ4hkbAkeH9Y4DYwuonA\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 99856.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99856.0\"}}, \"Q4EZp1LH5wD+RGBFB5XKnA\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 119165.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119165.0\"}}, \"6Yh6K3qHkI0KgShV8S7RnA\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 162928.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162928.0\"}}, \"PTV3NYO5Go72N57MchX0nA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 92268.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92268.0\"}}, \"wXF+o2ujVwvWa8meOksFnQ\": {\"metadata\": {\"community_id\": 391, \"customer_id\": 146458.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146458.0\"}}, \"qzKEcvwdglP92ELKCY0LnQ\": {\"metadata\": {\"community_id\": 529, \"customer_id\": 111621.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111621.0\"}}, \"C1sFWu3crVsj+1K+/+YOnQ\": {\"metadata\": {\"community_id\": 490, \"customer_id\": 76600.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76600.0\"}}, \"Hu6/TvmZK8UiWeZ2sq0rnQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 135850.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135850.0\"}}, \"EZCqsbBxog066gDQ9no/nQ\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 36285.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36285.0\"}}, \"VYKTf58Y/3PKyKyODXVDnQ\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 130037.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130037.0\"}}, \"EOUXKxeOsabsew6mhTtFnQ\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 157778.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157778.0\"}}, \"mEZ6ATXL3dtFAQpxVo1GnQ\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 160757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160757.0\"}}, \"WKrQA0XiJ3QhQ37m9UxbnQ\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 29944.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29944.0\"}}, \"LJByc82blf4I6Ekd8kx7nQ\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 184133.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184133.0\"}}, \"MHef1Rs4455vMbiW11h8nQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 69044.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69044.0\"}}, \"CZUI2rMtgbqzvrBv4i+mnQ\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 186198.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186198.0\"}}, \"7b2RfDpW6ux8JFAhGs6unQ\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 172150.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172150.0\"}}, \"xdPBng9vNQkVKMcV3dLUnQ\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 197724.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197724.0\"}}, \"riYzk3GZZhFYefWPcH7rnQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 122732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122732.0\"}}, \"mRbA34kTgrTVR5ssP2vtnQ\": {\"metadata\": {\"community_id\": 347, \"customer_id\": 139773.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139773.0\"}}, \"nunbAapYEUBfVO+HWtr0nQ\": {\"metadata\": {\"community_id\": 462, \"customer_id\": 111770.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111770.0\"}}, \"NI1i9raj16VxnRqrILX1nQ\": {\"metadata\": {\"community_id\": 310, \"customer_id\": 81842.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81842.0\"}}, \"LRlDXzrTF6Ri+zf9byUDng\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 146371.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146371.0\"}}, \"81f+4meCZgFFZXrAqsoIng\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 180757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180757.0\"}}, \"JJueDA4IKbhbPiTTsHAMng\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 188313.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188313.0\"}}, \"fE6HcnXHKbr/hLbDIc0Yng\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 69588.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69588.0\"}}, \"lPFtf1Q/ImK+Yr1CW143ng\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 85165.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85165.0\"}}, \"G5ipCSZyCiz77d8Gi5A/ng\": {\"metadata\": {\"community_id\": 428, \"customer_id\": 48117.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48117.0\"}}, \"SQ42EOxBogb4ZYJ+L6pPng\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 55750.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55750.0\"}}, \"/vCuxHcLbkZ1JpcEBDRrng\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 159909.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159909.0\"}}, \"owASgHoCXg8ZWEml7Td3ng\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 42836.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42836.0\"}}, \"BQWNiwP0OY809P39BOuOng\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 50247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50247.0\"}}, \"+OvKwxEMof0l0CAhF/aWng\": {\"metadata\": {\"community_id\": 530, \"customer_id\": 3902.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3902.0\"}}, \"9Qxb7XcFglFwNdMpk/iung\": {\"metadata\": {\"community_id\": 487, \"customer_id\": 16900.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16900.0\"}}, \"txTXlRobNKgppIbcfQ7eng\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 175225.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175225.0\"}}, \"JwgF3TNIvzasqJg5v/oRnw\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 108349.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108349.0\"}}, \"ds30CGNRVqJEmviGG5Mqnw\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 184582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184582.0\"}}, \"n6Jg/gVSETfLFTXNshownw\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 167121.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167121.0\"}}, \"B/w7bWKqIekFMsM0huAwnw\": {\"metadata\": {\"community_id\": 517, \"customer_id\": 167523.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167523.0\"}}, \"3Jk8W0OQRDbN2UwPVWg3nw\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 84533.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84533.0\"}}, \"pYz+Bh5cLgD4u37ISthJnw\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 87453.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87453.0\"}}, \"7njeFt4dGgGvsxh33HpOnw\": {\"metadata\": {\"community_id\": 283, \"customer_id\": 156429.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156429.0\"}}, \"+v4QPdKqrYzi44heM0Bfnw\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 136058.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136058.0\"}}, \"vU3OpI4mB3qzER4N/RBhnw\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 103715.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103715.0\"}}, \"z+9dH9mOBGtV12klfo+Inw\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 151207.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151207.0\"}}, \"Kah82w+S/u4725mVZgjAnw\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 16146.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16146.0\"}}, \"xS3sElVAWTp0wkMv017dnw\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 51737.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51737.0\"}}, \"71gwi7Mo8rnVUTFfwjLlnw\": {\"metadata\": {\"community_id\": 255, \"customer_id\": 175252.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175252.0\"}}, \"sBHxxv8TDcRka7cQD0Trnw\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 147826.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147826.0\"}}, \"pfw6cFOu3J2geMdfjUn5nw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 157108.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157108.0\"}}, \"hur+DI1LU7t3WWr94OogoA\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 165367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165367.0\"}}, \"tNPQOgx1QK26mgnI8Z8woA\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 118551.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118551.0\"}}, \"rZGX7tiTLIup6b1UOtdDoA\": {\"metadata\": {\"community_id\": 24, \"customer_id\": 187483.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187483.0\"}}, \"TX+5JEGDptCeafACyExaoA\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 31894.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31894.0\"}}, \"NB36u7yBXPdWuZqt6xVvoA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 153979.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153979.0\"}}, \"hYb/rNnUevsWhOUyS1R9oA\": {\"metadata\": {\"community_id\": 113, \"customer_id\": 42201.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42201.0\"}}, \"suNMjRNdU2uGcnzGvZaFoA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 158538.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158538.0\"}}, \"JtLiGrVMyc63d3hcU/qYoA\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 89899.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89899.0\"}}, \"WQX69Rb8P7YI2vlnX1KzoA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 143849.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143849.0\"}}, \"Nl5ZJGG1euH+Lbec7t3RoA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 124249.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124249.0\"}}, \"1CYNn0c/dSMW7awW+ln8oA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 53685.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53685.0\"}}, \"JHN1RRKwapnUWKCl3tIioQ\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 100819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100819.0\"}}, \"uorSEJpZYH5T0K4M6kopoQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 17729.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17729.0\"}}, \"TsndRw82xTWIzr8YhLs7oQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 76356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76356.0\"}}, \"HgsIdygAhnuFuhgyxTRYoQ\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 134083.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134083.0\"}}, \"1WjfVSCScOY81ocVLG5loQ\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 184376.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184376.0\"}}, \"FgYx9haFz7m/jpwNa8RpoQ\": {\"metadata\": {\"community_id\": 89, \"customer_id\": 71021.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71021.0\"}}, \"LTaDkNz2mZP7yiaR9otroQ\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 142464.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142464.0\"}}, \"gg8gSKkaDuBXakmAggtwoQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 61575.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61575.0\"}}, \"yre3anFHnU5uIwIzFZBxoQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 68211.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68211.0\"}}, \"U/fhW6N6mo7uVhkMHY58oQ\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 130990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130990.0\"}}, \"BZgWCBNlAJw0MgydF4igoQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 157704.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157704.0\"}}, \"NkzWZRIpTwu3DUJFtrOqoQ\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 181524.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181524.0\"}}, \"jz9J9As81u6mk8QhToO4oQ\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 145173.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145173.0\"}}, \"hy3RRSsumWzxUjk/5iTCoQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 350.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"350.0\"}}, \"jx/g1L2CPlipWbkZRdDfoQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 109273.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109273.0\"}}, \"AC76g5K8wAxvtnuruj3moQ\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 166423.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166423.0\"}}, \"Xx2MKu3v/ca2MdNY+roAog\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 181718.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181718.0\"}}, \"p3DWdLyxBb2M4TQNRHwLog\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 106507.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106507.0\"}}, \"Rz7xx0+t9Pg49kUuRAUxog\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 53309.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53309.0\"}}, \"PXDoJ1dCnYjkw81cC+M2og\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 41252.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41252.0\"}}, \"JC9CR/h5Zd8Lo5hza/4/og\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 68096.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68096.0\"}}, \"QNaUmTD9XiBvuQRyF+hEog\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 44194.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44194.0\"}}, \"CgaMJFHu5XcA/PL4JD5Fog\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 100510.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100510.0\"}}, \"c9uAkbAxw0Nggb2/V2aNog\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 157825.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157825.0\"}}, \"ZzCo4CVfdpjU5mTaFQCZog\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 147429.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147429.0\"}}, \"XjnqMtdhe/1AFJoQ5rqZog\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 20583.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20583.0\"}}, \"o5yIaKnpLciGpB4YpDSrog\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 68967.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68967.0\"}}, \"Ac+QyhaiwoCWtwDiF8m0og\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 194082.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194082.0\"}}, \"EA8a4UBy2yScgW0M741Now\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 118514.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118514.0\"}}, \"HxJ47i5/R/AOuO045E5Uow\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 29555.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29555.0\"}}, \"u0hqitzAeMaRXHE8QpRhow\": {\"metadata\": {\"community_id\": 65, \"customer_id\": 148607.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148607.0\"}}, \"IvZE7F6iOLbqCW9HzCN7ow\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 193243.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193243.0\"}}, \"TLca0dGaohU0qFvxCq6Dow\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 24076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24076.0\"}}, \"bp/cH5b+nBTbc8NY0tOcow\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 166037.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166037.0\"}}, \"Io8slHVhx1bwsIhDh76qow\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 30701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30701.0\"}}, \"EjXIpdCPF+ANqs8VdEvHow\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 89095.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89095.0\"}}, \"pL6nc0UXPCXIC0pq2oPHow\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 87189.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87189.0\"}}, \"ywsnSvZ81TfCojhlHXfNow\": {\"metadata\": {\"community_id\": 506, \"customer_id\": 104208.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104208.0\"}}, \"EPqSyzWGXSd1L8fp3h/Uow\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 93903.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93903.0\"}}, \"/CMsaEuGu3ULvTJxZ5L0ow\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 142703.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142703.0\"}}, \"hauBoMkrAw7jNahaRNgApA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 56520.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56520.0\"}}, \"Jwoyvq6WKnel/GQ7emAxpA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 32556.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32556.0\"}}, \"dFfhM/U6nLNgdH6gFCxCpA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 98825.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98825.0\"}}, \"IrD+kWAzYPM1bqM4hRxKpA\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 12278.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12278.0\"}}, \"Wwxtb8xu/ctdJoe3JAFYpA\": {\"metadata\": {\"community_id\": 393, \"customer_id\": 175588.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175588.0\"}}, \"QZ213ed+FC+L24Iot9ZepA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 26764.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26764.0\"}}, \"qlJAbL1oAT+FwtNvVKFspA\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 157153.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157153.0\"}}, \"Ol/sPUF0PGOJzBdNSDZypA\": {\"metadata\": {\"community_id\": 520, \"customer_id\": 51592.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51592.0\"}}, \"scXBn+tW1O3c26UR/y+MpA\": {\"metadata\": {\"community_id\": 411, \"customer_id\": 9651.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9651.0\"}}, \"F4RdrvgcVitZblPtUleopA\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 12742.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12742.0\"}}, \"V6ERLfamkqdKjMJZjCzbpA\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 123644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123644.0\"}}, \"cq4YPHqoBPScATaVsSLepA\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 130609.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130609.0\"}}, \"Rjs/zx9VNy2E4O4zgmDipA\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 91371.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91371.0\"}}, \"NEchXFq2tu9tS/CqClXlpA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 139356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139356.0\"}}, \"/mnxJbBXFRoJm1t8b+jupA\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 89695.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89695.0\"}}, \"2kIv0pAaPg+lCtT2KEMNpQ\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 354.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"354.0\"}}, \"1qh/9xi047BN/ZyQnxclpQ\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 35786.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35786.0\"}}, \"TE99G0bOzaXtmR4Giu5BpQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 146988.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146988.0\"}}, \"9GK18/slEWXsvIbLQoRFpQ\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 41782.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41782.0\"}}, \"/lPcRHuF2uhTIGgw2+RMpQ\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 6003.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6003.0\"}}, \"gU019BfAhgOxjJPgknBZpQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 43283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43283.0\"}}, \"Iat6FJq/KuV7fq2K9pp+pQ\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 71172.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71172.0\"}}, \"7Zitss1YyKE3+SZddwmmpQ\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 13883.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13883.0\"}}, \"v0tsis6xbkZzzbvFeAXBpQ\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 18766.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18766.0\"}}, \"lBfTM/Eoboj+//nPf9zJpQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 48649.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48649.0\"}}, \"S9GxuuDfsxmez0fF6ZXspQ\": {\"metadata\": {\"community_id\": 531, \"customer_id\": 125823.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125823.0\"}}, \"C7fozaTI9722tioX0G/1pQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 109801.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109801.0\"}}, \"O2g6a2KDuS1JDS3sgw8Rpg\": {\"metadata\": {\"community_id\": 532, \"customer_id\": 146077.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146077.0\"}}, \"UqUz0DfWRXLEeSZqgAESpg\": {\"metadata\": {\"community_id\": 520, \"customer_id\": 5134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5134.0\"}}, \"YiYxSGimBFYfI1PSZXEXpg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 82714.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82714.0\"}}, \"3CeBf9rBRUJJEl8QTxljpg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 186821.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186821.0\"}}, \"cVxbSsxe5G7FPFo48Ed3pg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 67692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67692.0\"}}, \"UH5IsiL9uFI65JlQVZqCpg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 105659.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105659.0\"}}, \"v+ziDzvyBQV1LUNcBLWIpg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 91644.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91644.0\"}}, \"gaZmAfZSztu7UH4Ebeydpg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 150984.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150984.0\"}}, \"EjF8fainP19/QDcGbaCfpg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 64452.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64452.0\"}}, \"j2Yua3a567JQqNUafYalpg\": {\"metadata\": {\"community_id\": 336, \"customer_id\": 86227.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86227.0\"}}, \"cVjQboYulTlIt7PXc5u7pg\": {\"metadata\": {\"community_id\": 255, \"customer_id\": 161816.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161816.0\"}}, \"TtIAgvnQmh/5T/BJWJrIpg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 183048.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183048.0\"}}, \"kUSjYI/KovDOP2WNmP3Ppg\": {\"metadata\": {\"community_id\": 387, \"customer_id\": 112958.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112958.0\"}}, \"A19d8KuXAfS9rBJ1oUTVpg\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 147571.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147571.0\"}}, \"tK2U2fHkt+0EQze0I6bypg\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 39291.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39291.0\"}}, \"OkpZWWmaKw6a1Opzusv4pg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 37975.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37975.0\"}}, \"ZjABoGhX7FZn8b7BhsAApw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 59840.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59840.0\"}}, \"yxl4OOh3O2731r1L3Okxpw\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 123975.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123975.0\"}}, \"lvHT9cqSms7vkDUQasI/pw\": {\"metadata\": {\"community_id\": 151, \"customer_id\": 124624.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124624.0\"}}, \"vK+M4+nZPjX8OiBYzftzpw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 62393.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62393.0\"}}, \"Q67ZHpSIqakfoFzSXXiTpw\": {\"metadata\": {\"community_id\": 501, \"customer_id\": 147512.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147512.0\"}}, \"a00EzNZRMAgZFXLOFn2jpw\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 143818.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143818.0\"}}, \"60YEmoj201+d8wCne+DOpw\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 193734.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193734.0\"}}, \"mcdYiG6tbhQYd9JW+Bfqpw\": {\"metadata\": {\"community_id\": 233, \"customer_id\": 69115.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69115.0\"}}, \"k/Jdwpp3Umlr6sbzTbLtpw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 175747.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175747.0\"}}, \"g40CLRrS7h0f2KDwtQT/pw\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 18819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18819.0\"}}, \"z1X5qAdMM3gOJSTmzr4HqA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 70990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70990.0\"}}, \"NyPKUTLm1jwUANNoIQoIqA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 128908.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128908.0\"}}, \"6sR9fgv8OAB5rOrZEqkQqA\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 88740.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88740.0\"}}, \"lfvE2dJVuc+1AoU2qJcYqA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 15538.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15538.0\"}}, \"2xWzE0Ep6ErJ3OdsXO9HqA\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 38301.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38301.0\"}}, \"uczLdKTFHKiIVXA00xpOqA\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 51424.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51424.0\"}}, \"1IsjuWLfsWa9UTyKGAheqA\": {\"metadata\": {\"community_id\": 290, \"customer_id\": 66366.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66366.0\"}}, \"tDEpAM/I1tgxpqK7PolgqA\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 154718.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154718.0\"}}, \"JFsTmh4xEffCA34Bwl9sqA\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 82846.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82846.0\"}}, \"0QIadK8r6HxNza6Ny+h+qA\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 13001.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13001.0\"}}, \"iMlV9a1op1gNksg4eI2LqA\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 17862.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17862.0\"}}, \"x9R/caK7uyrvHrdoHKuZqA\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 1973.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1973.0\"}}, \"UvwgWrEVRAhIKi90bruZqA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 158310.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158310.0\"}}, \"ufljtH2NardpOebKv0f7qA\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 23151.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23151.0\"}}, \"ne3mJ4vHAOk3E9IlDOcAqQ\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 101376.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101376.0\"}}, \"5gbSqQi7aHAiU/tNOC4hqQ\": {\"metadata\": {\"community_id\": 36, \"customer_id\": 4774.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4774.0\"}}, \"Ie2ipRiDjN8xf3W2LEwvqQ\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 46646.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46646.0\"}}, \"r2zO0iJHNjyJbNKU9lwvqQ\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 25743.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25743.0\"}}, \"Zt02CNrU6B6qoZWAhb0yqQ\": {\"metadata\": {\"community_id\": 116, \"customer_id\": 197661.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197661.0\"}}, \"6bRiUSe4hBMy0l8u/Kc6qQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 195453.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195453.0\"}}, \"izqORYblhz10NUpxrf5IqQ\": {\"metadata\": {\"community_id\": 413, \"customer_id\": 10517.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10517.0\"}}, \"Y71JXwPp8BNr1I0/V5OLqQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 86665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86665.0\"}}, \"tNJL9Wj9xM3IyYmtsaGaqQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 92788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92788.0\"}}, \"+4R74YkBh+/ckVo+zCW+qQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 58889.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58889.0\"}}, \"dV5s7ImkyNv6OvHQ41TDqQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 6793.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6793.0\"}}, \"Gzzno6mZNPrH0I4Dvc8Dqg\": {\"metadata\": {\"community_id\": 420, \"customer_id\": 75814.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75814.0\"}}, \"H+wkAyPI5bSb8Bb+y88Lqg\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 107467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107467.0\"}}, \"XFXhSAs5neog+0WBJ2kMqg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 117973.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117973.0\"}}, \"HR7xM2Gj14hzkZZsBPkwqg\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 4145.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4145.0\"}}, \"vtWfeIoNdt2OYL/M/Cg5qg\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 94958.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94958.0\"}}, \"P3m65AjR0i02EPNbMQtNqg\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 168765.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"168765.0\"}}, \"839Oiyd7BclP2PdSeIZNqg\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 71860.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71860.0\"}}, \"FuuSZV27Neo4y6ZEJ2d6qg\": {\"metadata\": {\"community_id\": 426, \"customer_id\": 190773.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190773.0\"}}, \"4HBkQGjDrY3J6TAqmfqoqg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 83756.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83756.0\"}}, \"7Puebud1EKEQH/Hg9h7hqg\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 2843.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2843.0\"}}, \"wq4jS3BQFR4Q7rCcHmTkqg\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 166732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166732.0\"}}, \"66eisG0zlPciGk3M3zXzqg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 134703.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134703.0\"}}, \"lds6GA7YRogoMFggLBQWqw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 198001.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198001.0\"}}, \"PsuUNN4RIxQKVESQlo8kqw\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 114374.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114374.0\"}}, \"kr7eqRr/BUSM/bBJyU9Lqw\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 102331.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102331.0\"}}, \"JuVP3exlf4shYDoAoKVSqw\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 179999.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179999.0\"}}, \"jdQapSWmQZLmHrDF7KlSqw\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 188123.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188123.0\"}}, \"cT8S0osGv1Yx07xujT9gqw\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 65769.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65769.0\"}}, \"vtRcGf0ox/w9MXmiOqN8qw\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 16665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16665.0\"}}, \"hGQwGeez8E92ZELQ24STqw\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 128154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128154.0\"}}, \"1z8Qkaup4fk+PHtX1lefqw\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 142597.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142597.0\"}}, \"LgXU7EwRSv3zHa0Jz5mmqw\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 1640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1640.0\"}}, \"E1IK+hjo8sbiIQR1ji6tqw\": {\"metadata\": {\"community_id\": 335, \"customer_id\": 198590.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198590.0\"}}, \"Sl/6PUC3DqG7BDyiBcK1qw\": {\"metadata\": {\"community_id\": 457, \"customer_id\": 100907.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100907.0\"}}, \"dJz7k+gQ7Qf0mGFV/ibGqw\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 87731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"87731.0\"}}, \"i1pSrAwriMYqECKfr6rHqw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 75062.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75062.0\"}}, \"Ylf9RdfRpsKq0jQzOyXMqw\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 23076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23076.0\"}}, \"NCsCA3Mx7MjieYPd2Ajzqw\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 7180.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7180.0\"}}, \"DQtysVHWuXq+1/X7I2IIrA\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 37343.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37343.0\"}}, \"v+BYHiPvbunDD4aX0RIKrA\": {\"metadata\": {\"community_id\": 526, \"customer_id\": 13195.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13195.0\"}}, \"TH6yeUquRV0AJfYGgRgOrA\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 119544.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119544.0\"}}, \"N9riAVATY34jHBt90TQZrA\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 56596.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56596.0\"}}, \"P2b8M2H2fyyW7W9aSbMdrA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 154822.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154822.0\"}}, \"+xia6NKW5jSDHWguW88yrA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 140584.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140584.0\"}}, \"/vWYb5IsDMKj6AN7glY4rA\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 143487.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143487.0\"}}, \"2H8qGfkq5FJFrwm6c6dCrA\": {\"metadata\": {\"community_id\": 199, \"customer_id\": 198038.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198038.0\"}}, \"x3FbWy/+P9rQmLGTqJtFrA\": {\"metadata\": {\"community_id\": 533, \"customer_id\": 30391.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30391.0\"}}, \"mlnfnafl4/KzepBre697rA\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 113756.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113756.0\"}}, \"NIRt1zkakp48vUkF6P18rA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 174098.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174098.0\"}}, \"J3IwN77QI+uhaJkmHUl9rA\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 152934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152934.0\"}}, \"PuWM2tbLWJu86IYmsZO2rA\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 100021.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100021.0\"}}, \"1Fns6OhOXJvz0pJZ+6vorA\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 26325.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26325.0\"}}, \"/A9R0/Ho6dHtwDu+uzPzrA\": {\"metadata\": {\"community_id\": 534, \"customer_id\": 102689.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102689.0\"}}, \"hpIBMXHnjQ7uDbzVv376rA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 164054.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164054.0\"}}, \"UInULZd3JLguWndjhxn7rA\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 179647.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179647.0\"}}, \"nWOJ3KQgDcbnanj95rwerQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 2981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2981.0\"}}, \"9n4t1Zn+X0s5hKb1T+I6rQ\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 4628.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4628.0\"}}, \"5y9nXTABra67OXilpw0/rQ\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 116624.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116624.0\"}}, \"rubYSqpKojQtvA8qiBpXrQ\": {\"metadata\": {\"community_id\": 214, \"customer_id\": 99761.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99761.0\"}}, \"T1TY0PEf4JGxqOim/tVrrQ\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 187137.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187137.0\"}}, \"z1vjzvmh76VXoOkOdHGQrQ\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 48535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48535.0\"}}, \"NDxIQcbkXhjk9VSfn5PNrQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 119298.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119298.0\"}}, \"XIRrwR+1QmICAcgD/JfPrQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 111408.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111408.0\"}}, \"EZ1Uxbd2GRWzoNGSb6zYrQ\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 28443.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28443.0\"}}, \"8miui52p1qtwyDUJwOvprQ\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 134320.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134320.0\"}}, \"pZ0Nmh73qFc71JEMfbUOrg\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 41338.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41338.0\"}}, \"7BBG6FgT1nw6/Z7scC0Srg\": {\"metadata\": {\"community_id\": 111, \"customer_id\": 60264.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60264.0\"}}, \"DyY4dH1vjZdzrw7I3gxArg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 141543.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141543.0\"}}, \"mweUiILAkdAuuG85MxZPrg\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 15548.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15548.0\"}}, \"MAk0Mt0s1sgQXxtIyhtorg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 15685.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15685.0\"}}, \"ylU7OoOB+lTyYkp2CvNrrg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 54629.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54629.0\"}}, \"E2X4Af5b9cZ65cCBAzVxrg\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 72703.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72703.0\"}}, \"kwZZ5CI8cUe0cUTqGKF6rg\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 23189.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23189.0\"}}, \"OTbEze7cZgrnpeMfdrKLrg\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 29138.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29138.0\"}}, \"jPwI+OB8erWmfUxJgF6Nrg\": {\"metadata\": {\"community_id\": 191, \"customer_id\": 49149.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49149.0\"}}, \"X5dyuyZq3obza709mjmSrg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 123766.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123766.0\"}}, \"dX/TaBHa6EarDLBexxa0rg\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 27277.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27277.0\"}}, \"ja/6z8z+hVceS31PBR/prg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 48264.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48264.0\"}}, \"vy0FMq4VqzAmN+15yanvrg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 155720.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155720.0\"}}, \"IBWl8vpvhBZxcMDX4Uj6rg\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 37558.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37558.0\"}}, \"Dd7eefikHh3XghSL4DEArw\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 45481.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45481.0\"}}, \"rKPsaIVig93SRx4sDucCrw\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 190687.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190687.0\"}}, \"3u1aNsidFHNxWqY7cr0Mrw\": {\"metadata\": {\"community_id\": 535, \"customer_id\": 76992.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76992.0\"}}, \"Mr5ZLOeckoL3eb323kIQrw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 126195.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126195.0\"}}, \"dUP7AahGpOkDnORHDuEzrw\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 28632.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28632.0\"}}, \"a1OoyB7+WXFUAag08KpKrw\": {\"metadata\": {\"community_id\": 352, \"customer_id\": 20142.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20142.0\"}}, \"eRiEisBwuuYVtjRVE01srw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 126231.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126231.0\"}}, \"7pcApyi0C63xSascCt1wrw\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 115812.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115812.0\"}}, \"pvS7Yyc5fiUtVQLhhblzrw\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 27425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27425.0\"}}, \"PXWig76h6lkyHzjEZPWCrw\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 14962.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14962.0\"}}, \"sdoG82xh/hHfEnvybgiirw\": {\"metadata\": {\"community_id\": 518, \"customer_id\": 153722.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153722.0\"}}, \"OedMXRR6GuunUdLE7Eirrw\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 160392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160392.0\"}}, \"VU+2q8p0YeGCqRvta0a8rw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 143819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143819.0\"}}, \"Kzv484GoYuRyMQRePjjFrw\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 69438.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69438.0\"}}, \"vZRT0MW4o7/ERY8DWdbdrw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 37793.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37793.0\"}}, \"QTDz5cNKcULUP3W4OR7lrw\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 193978.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193978.0\"}}, \"lKV3X4tv+9nIeOaFPOb5rw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 3091.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3091.0\"}}, \"wH4ggU+AeirvEleuA5QfsA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 46036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46036.0\"}}, \"H2tvrSRDcqdQ6JvqtrIzsA\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 22419.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22419.0\"}}, \"JF/aaK2hFM7tvJ1WIB9JsA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 71990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71990.0\"}}, \"7bnu1kXLvO3ak/QRfIZKsA\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 44715.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44715.0\"}}, \"9mblVkBMEnDTwMTEpwh5sA\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 160637.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160637.0\"}}, \"gty2NExwPAbA4hpY0yCDsA\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 151041.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151041.0\"}}, \"pFICOOzAX8cSt8/tz2OSsA\": {\"metadata\": {\"community_id\": 54, \"customer_id\": 7094.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7094.0\"}}, \"SW495dBUNeThwmcdR2mnsA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 153658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153658.0\"}}, \"nOXqrXnI0km8cLuIHTi4sA\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 177798.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177798.0\"}}, \"hKQRArjse+VYfHpwz8rFsA\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 89694.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89694.0\"}}, \"7ib1w4wF6mn8TeghQCDHsA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 86851.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86851.0\"}}, \"GrIMPukpxNchu/p5HFfdsA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 18278.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18278.0\"}}, \"hp+xOt3OuPNBJk8fxI/+sA\": {\"metadata\": {\"community_id\": 536, \"customer_id\": 97648.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97648.0\"}}, \"ptb7Z/jjcIXb3g4fWvIDsQ\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 99108.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99108.0\"}}, \"QpCAHtbvoruznvjbEU8nsQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 140197.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140197.0\"}}, \"UikPyTd+/Ke0c929axUssQ\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 179036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179036.0\"}}, \"HMLHgWFAdRQ52AVLutxJsQ\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 118605.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118605.0\"}}, \"M68E+IUZic0BSnt35ytjsQ\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 121030.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121030.0\"}}, \"6MOzNfjdUIZpKdO5Anh4sQ\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 12478.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12478.0\"}}, \"0fIx7s6vQfun5SPejrOXsQ\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 54439.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54439.0\"}}, \"nSOPa8O+2GmeTc1ttJWhsQ\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 13808.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13808.0\"}}, \"ZrfpoL2Fg8iDjrUGpAqjsQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 83323.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83323.0\"}}, \"RIFKqY1gLZsQf+i0P0a8sQ\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 103741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103741.0\"}}, \"3Y2XOerDgiAo1WK6+LC/sQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 138907.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138907.0\"}}, \"zxkZsCPuXUWUsF7xYiXRsQ\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 63450.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63450.0\"}}, \"pA2XvK7a3lX0398AJNHdsQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 128441.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128441.0\"}}, \"1lNjFkPQft6RLWOT4nThsQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 165107.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165107.0\"}}, \"rBRMKV18YrOSdA+WPlz6sQ\": {\"metadata\": {\"community_id\": 176, \"customer_id\": 67430.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67430.0\"}}, \"Nb+fg2iaqscLUuaFQ1n8sQ\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 164112.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164112.0\"}}, \"Xi2Gq8LSXq700zET/00Esg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 82709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82709.0\"}}, \"TaIDJ7W1q1QH0q5C5igLsg\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 142521.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142521.0\"}}, \"POgaZ85u3n/rjr0nGAs1sg\": {\"metadata\": {\"community_id\": 327, \"customer_id\": 164998.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164998.0\"}}, \"f/GYujqRnQGcFVM9i0k/sg\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 106113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106113.0\"}}, \"w3l9D6GAOJ9N0Lh9dUhQsg\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 77732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77732.0\"}}, \"GFbM1Slh7/TpvUKSCABlsg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 52493.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52493.0\"}}, \"tGIgPpSLABsuqToLwtBzsg\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 44414.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44414.0\"}}, \"H5iyKe8krA9s/HxZ4QqUsg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 61182.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61182.0\"}}, \"oWaLXqrYAk5+6M57vVGnsg\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 98113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98113.0\"}}, \"zEGSOiQBax3FfgouHdO4sg\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 143653.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143653.0\"}}, \"j8j5NMqGbzwWyCZEIxS8sg\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 93142.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93142.0\"}}, \"SRrPV4MCz83nj7AW/W7jsg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 165243.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165243.0\"}}, \"H+It2SD4KPOr34Qht7sHsw\": {\"metadata\": {\"community_id\": 40, \"customer_id\": 73283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73283.0\"}}, \"H7bKs0LhQYdNQKdCXn0esw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 8802.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8802.0\"}}, \"1+u3lYKavPRkmHAzpIgisw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 78464.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"78464.0\"}}, \"9to0DbLdWNSbnCui4ixJsw\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 151303.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151303.0\"}}, \"molkhmMlDjjrZGVrsSlZsw\": {\"metadata\": {\"community_id\": 537, \"customer_id\": 34603.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34603.0\"}}, \"Q62OQKXh0F0IVOGJ/nxxsw\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 84073.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84073.0\"}}, \"OuGpotqT00tF+qVPIIKGsw\": {\"metadata\": {\"community_id\": 265, \"customer_id\": 13778.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13778.0\"}}, \"g2//Y847Q3iYW+VM33+Ksw\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 144274.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144274.0\"}}, \"M+OEVS8+0HCG1kjM26aRsw\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 99380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99380.0\"}}, \"0sfZ1VUujodibfvXSIi/sw\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 14093.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14093.0\"}}, \"N3NaYvG5XKOWroyCvqHesw\": {\"metadata\": {\"community_id\": 355, \"customer_id\": 120675.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120675.0\"}}, \"s6vux+bQZlYQHu1lY6zesw\": {\"metadata\": {\"community_id\": 538, \"customer_id\": 182128.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182128.0\"}}, \"y4UnH6+f6jsDk+33vZLosw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 81274.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81274.0\"}}, \"kdW6Be6DZ17iGHRc72n1sw\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 178537.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178537.0\"}}, \"Y/HkWrJ/U/Bxbdr7NgH3sw\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 131076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131076.0\"}}, \"JGCy4XtfSbtbG7+nlw4CtA\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 118878.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118878.0\"}}, \"JjdNS7oWxI3B316S3ohBtA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 76106.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76106.0\"}}, \"ag5YbRufSxX0dYh0+QVCtA\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 9799.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9799.0\"}}, \"i/z/xGofuxrTidxvAudKtA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 84336.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84336.0\"}}, \"1hrZMz4AyL/lrf/OcrBWtA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 98060.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98060.0\"}}, \"S99EddmDGE9UZMtGmMlmtA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 107141.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107141.0\"}}, \"eicDvHwLimEpCXnCzX92tA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 149015.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149015.0\"}}, \"EsqC+pAWQuGuXqcn4jiHtA\": {\"metadata\": {\"community_id\": 459, \"customer_id\": 126645.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126645.0\"}}, \"qObfBPdskZ/bdJxoI02JtA\": {\"metadata\": {\"community_id\": 370, \"customer_id\": 140519.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140519.0\"}}, \"b0ewlzQFu3FeVzdmxcmPtA\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 161289.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161289.0\"}}, \"E5A0lMr/AClmZHz1S2qRtA\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 77882.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77882.0\"}}, \"DXapr/UUm27Eyi8aPwWmtA\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 112362.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"112362.0\"}}, \"9JsLmui6toze4OCS9SqwtA\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 188942.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188942.0\"}}, \"iL/YeEnkI5SD8xbo+fm5tA\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 35785.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35785.0\"}}, \"gRbv2VG/VVde+RVrP7C6tA\": {\"metadata\": {\"community_id\": 539, \"customer_id\": 109155.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109155.0\"}}, \"r2Exk8lJPGlgrhGDuXbItA\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 17297.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17297.0\"}}, \"EADV6v6vusn6OhIrZeLLtA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 180031.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180031.0\"}}, \"WOAGhCZ/9WsKbxJgIjLktA\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 154385.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154385.0\"}}, \"Fk9ODZxwazvx3GbYrh77tA\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 195089.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195089.0\"}}, \"Em0/xm51jDdmoLNgvocVtQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 10042.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10042.0\"}}, \"lajlfjCT3uep6UXeChc2tQ\": {\"metadata\": {\"community_id\": 471, \"customer_id\": 164787.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164787.0\"}}, \"Ez3647QFG0wP7lSVpXZhtQ\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 115159.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115159.0\"}}, \"uob06uLmmmvE1HYJtEpitQ\": {\"metadata\": {\"community_id\": 361, \"customer_id\": 148792.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148792.0\"}}, \"/7xUbAUGrwmRAMULC1yWtQ\": {\"metadata\": {\"community_id\": 301, \"customer_id\": 167915.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167915.0\"}}, \"VmQJ9aObfF5IkVpEqtWhtQ\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 122755.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122755.0\"}}, \"27dEDmdur1Zy6ijanei8tQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 20287.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20287.0\"}}, \"5xwY0szZnsiqQTwCAlnatQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 165610.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165610.0\"}}, \"msbwNknrv3HRKuTbTbz3tQ\": {\"metadata\": {\"community_id\": 410, \"customer_id\": 82664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82664.0\"}}, \"uldXPY99tgYVFbIPI3L5tQ\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 141614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141614.0\"}}, \"kUwvpSYL10SBe4X6VrMWtg\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 33569.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33569.0\"}}, \"tMA277Q1r1Ou54ivdg0ctg\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 156113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156113.0\"}}, \"ygZ5WGwTsK/8Id5UnwVytg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 171255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171255.0\"}}, \"ZoEO7yjPqksMS2uJ/OWvtg\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 18471.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18471.0\"}}, \"LJGylLlX+/njYiLtK5PItg\": {\"metadata\": {\"community_id\": 257, \"customer_id\": 65052.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65052.0\"}}, \"giVUGbtk3+U2igTdOb/Ktg\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 62811.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62811.0\"}}, \"+VLSwuuXCcLbYcRl6hvWtg\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 185820.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185820.0\"}}, \"16W7EYhBrixyb0qpYa73tg\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 71125.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71125.0\"}}, \"ESC0HxN2+18/OEVFpNgDtw\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 130187.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130187.0\"}}, \"mfHjc8E5wq5hAEBqLwMktw\": {\"metadata\": {\"community_id\": 359, \"customer_id\": 169365.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169365.0\"}}, \"c/FYJcXeWjIHYyY6uVwytw\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 197779.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197779.0\"}}, \"uWIj0NtbQXifNLvogWFEtw\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 60640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60640.0\"}}, \"lW8nc97cG8164gWackiEtw\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 52804.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52804.0\"}}, \"R1mcTef8YzRX3Syfonbctw\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 8980.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8980.0\"}}, \"Hun8mOh7jntBJ/XZPgESuA\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 168360.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"168360.0\"}}, \"GgV82+Xq+zos6WPdMZgduA\": {\"metadata\": {\"community_id\": 537, \"customer_id\": 26957.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26957.0\"}}, \"/hoM3x9QDTrZMypNwFxFuA\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 130380.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130380.0\"}}, \"raZOG5bVUG5VdyFDA9JGuA\": {\"metadata\": {\"community_id\": 314, \"customer_id\": 53741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53741.0\"}}, \"ri48j885BLzHXAWT8WJduA\": {\"metadata\": {\"community_id\": 69, \"customer_id\": 145881.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145881.0\"}}, \"ANKXuYblah5Sw/0h5ImguA\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 11561.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11561.0\"}}, \"WIaFpd9DG91pxpUvdtrAuA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 22505.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22505.0\"}}, \"bknqOYp4Vp6LPwQl9RTauA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 57872.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57872.0\"}}, \"87aowLoWEwEaBtKV8tbbuA\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 183570.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183570.0\"}}, \"P/cyRrtKGbRESXIaIUDjuA\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 101736.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101736.0\"}}, \"5ImV0GwcN4e8Sal+/A7vuA\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 118810.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118810.0\"}}, \"ykhADMSBj+Y4ryryeKH5uA\": {\"metadata\": {\"community_id\": 259, \"customer_id\": 46246.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46246.0\"}}, \"It7b8wQL/k5NaAhQ+CMOuQ\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 61292.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61292.0\"}}, \"r+bYu5Ulcywy8rBOadEYuQ\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 157075.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157075.0\"}}, \"AgQzuVP3IkMn/Ov+dswguQ\": {\"metadata\": {\"community_id\": 297, \"customer_id\": 36677.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36677.0\"}}, \"R/bp+9HeU+cWRe6WcBIyuQ\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 174421.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174421.0\"}}, \"a4+4zao4O23gIPqZq/U2uQ\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 118857.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118857.0\"}}, \"yo+slXRjEOyeYXIxTMtruQ\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 63358.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63358.0\"}}, \"0xmP5QwkmCYPv1fHz5GSuQ\": {\"metadata\": {\"community_id\": 301, \"customer_id\": 184500.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184500.0\"}}, \"4ArNEWYk/HL35UuzBEWUuQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 67134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67134.0\"}}, \"168vFRjReKcksP7HJpOVuQ\": {\"metadata\": {\"community_id\": 123, \"customer_id\": 181249.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181249.0\"}}, \"I1Y8y0BN2GoCseNXlNfRuQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 43099.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43099.0\"}}, \"+Y38GQWJ9sDVV1yJBS3ZuQ\": {\"metadata\": {\"community_id\": 404, \"customer_id\": 164437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164437.0\"}}, \"VNrzOIiQ6FNSB1I07mHmuQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 186662.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186662.0\"}}, \"sBo1DoKZGqK99B32lYnxuQ\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 144255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144255.0\"}}, \"8JbF9ap+6Qhiv10Vnu/1uQ\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 70492.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70492.0\"}}, \"wZ45Zz2j32LbhWQfJBEbug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 8349.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8349.0\"}}, \"Q4c13sv+X+/8COGPb4kfug\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 36102.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36102.0\"}}, \"H4E5AoIqhz9wh2Kf55g9ug\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 190268.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190268.0\"}}, \"IQM9aWomrU3BEDzBJmVLug\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 174384.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174384.0\"}}, \"L/8tLTjf3qUm/TOyurJOug\": {\"metadata\": {\"community_id\": 423, \"customer_id\": 28254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28254.0\"}}, \"oyFfCj3XEK2o5kEyMRZXug\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 53363.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53363.0\"}}, \"9Magx3/mXuyBOVJWMpiCug\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 80914.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80914.0\"}}, \"1mrWjfQ/EuoZlFn7YpeHug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 79010.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79010.0\"}}, \"VzS48APpJ+ye48pIki2dug\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 143635.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143635.0\"}}, \"eKr9JVEDRy/wrfqS0kXGug\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 173343.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173343.0\"}}, \"8wXFOFxvQzDP2XGsXPTJug\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 178206.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178206.0\"}}, \"nRGKdSUZWr/RPx5aNVjOug\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 77962.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77962.0\"}}, \"owBvkBaADHkAd2yCVArPug\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 46659.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46659.0\"}}, \"yQXzd9q77QzB5sQHjLLuug\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 32073.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32073.0\"}}, \"ThEEbPC4bj3+L1bdTz0Muw\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 138904.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138904.0\"}}, \"bUgdrd1w1QJ1vRcQBboOuw\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 16121.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16121.0\"}}, \"KF5Dbm9cM754JWLe3NAXuw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 90732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"90732.0\"}}, \"BjSMBv/+daH7S+x5+4kguw\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 114840.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114840.0\"}}, \"shPnJN4xCSk7oXmY9Q4wuw\": {\"metadata\": {\"community_id\": 94, \"customer_id\": 37076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37076.0\"}}, \"bHlug9FuJiSNo/yQC0I/uw\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 28649.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28649.0\"}}, \"E3oB2e+vPHG2ZRFYOupXuw\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 181968.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181968.0\"}}, \"X6RG1Kq2oEGyIv4GTBqBuw\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 129709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"129709.0\"}}, \"kuxiFPqdl/EjVVqv4D6Puw\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 186654.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186654.0\"}}, \"nZemi4L/TnUeky0vAf+euw\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 17678.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17678.0\"}}, \"I3HKdcL6uq1dV9U6rAbJuw\": {\"metadata\": {\"community_id\": 431, \"customer_id\": 96441.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96441.0\"}}, \"YMjrrcEOhL2zcqWU1DzUuw\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 142951.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142951.0\"}}, \"d+jDWSs2T6c8VQ8BAurfuw\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 57279.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57279.0\"}}, \"pbRt9R8ohIfiCOBUlIbmuw\": {\"metadata\": {\"community_id\": 300, \"customer_id\": 123752.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123752.0\"}}, \"UZYf/isTOX6flCmlncT2uw\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 71681.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71681.0\"}}, \"zhwkPccrVBCZlu4Vm/0dvA\": {\"metadata\": {\"community_id\": 51, \"customer_id\": 145130.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145130.0\"}}, \"TgyNoh7F93CAwdFFP4NWvA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 56480.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56480.0\"}}, \"hQ9sNYfi7Xoi4HS4wTZhvA\": {\"metadata\": {\"community_id\": 392, \"customer_id\": 64885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64885.0\"}}, \"PWazbWYXRKDBh37GwcFlvA\": {\"metadata\": {\"community_id\": 281, \"customer_id\": 63577.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"63577.0\"}}, \"UJEqm8fIHoj/jzcSuPu0vA\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 183618.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183618.0\"}}, \"sg8bvnXSB8YcDFZaIVK+vA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 71906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71906.0\"}}, \"eA7yDzVXHPNkRVWmCx/8vA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 29318.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29318.0\"}}, \"OKTk/onbe2oebWvf+eMKvQ\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 21893.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21893.0\"}}, \"4owBdThRITj1owKR6bwkvQ\": {\"metadata\": {\"community_id\": 143, \"customer_id\": 196224.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196224.0\"}}, \"LRvRi7afvuVDGY7sRVUrvQ\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 186934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186934.0\"}}, \"fO7Bg973y07RR33P9wVAvQ\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 174484.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174484.0\"}}, \"wfXgSamcu5P3FnGDzU9nvQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 114178.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114178.0\"}}, \"w3gOMqJKLa4A2gm6BXxyvQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 125642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125642.0\"}}, \"9SJVLkajTeR4POfLrh2KvQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 108029.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108029.0\"}}, \"lzH6Idq2FJnBDgEnU3CMvQ\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 131285.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131285.0\"}}, \"mgKH8XgnUmt990hciUKkvQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 151852.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151852.0\"}}, \"aCn8MLPRUWx5ggppKWnMvQ\": {\"metadata\": {\"community_id\": 263, \"customer_id\": 166601.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166601.0\"}}, \"lohttfXsDNw5mIztqHPOvQ\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 177910.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177910.0\"}}, \"FaAPoRRoxpdN4btTbs7nvQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 196937.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196937.0\"}}, \"xRv17OpeWpPllhbTSqIRvg\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 28360.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28360.0\"}}, \"AGofICB3vZZlKcHxtSASvg\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 194226.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194226.0\"}}, \"d+kA2No99UCwkK/diexNvg\": {\"metadata\": {\"community_id\": 136, \"customer_id\": 4554.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4554.0\"}}, \"0da62zHZzY1jczHHQ9xvvg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 1226.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1226.0\"}}, \"hUqcqGPdKtI69S4i5SSFvg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 96523.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96523.0\"}}, \"QqHIoi1m6uc9wf5EvV+Hvg\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 174353.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174353.0\"}}, \"MNVcFZjSVu0z0JmNCIKavg\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 54925.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54925.0\"}}, \"jvBpNSOT9RtSIOth8nCdvg\": {\"metadata\": {\"community_id\": 453, \"customer_id\": 173350.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173350.0\"}}, \"cfyIaZvA2RoXHpxUpLCevg\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 165762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165762.0\"}}, \"ltr+GVO+GZyWAA+Z4qiovg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 29806.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29806.0\"}}, \"BiVTReLObVv0Xy0GZgK6vg\": {\"metadata\": {\"community_id\": 476, \"customer_id\": 39651.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39651.0\"}}, \"z4I7L9x+TFuWyccuF1Dzvg\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 147269.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147269.0\"}}, \"XXV6z+C21UqJfmBajVoCvw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 190611.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190611.0\"}}, \"RzobwgLknSJL7QUthZojvw\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 104683.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104683.0\"}}, \"E44NS8+3z6vWzACYVC9pvw\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 158033.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158033.0\"}}, \"mBGZFsgZHxC73vu9VcF0vw\": {\"metadata\": {\"community_id\": 456, \"customer_id\": 95934.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95934.0\"}}, \"79ZVec1G5s0cAdAPbGh7vw\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 52987.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52987.0\"}}, \"Ni7y9F5zD15CH+lj9WSJvw\": {\"metadata\": {\"community_id\": 90, \"customer_id\": 43966.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43966.0\"}}, \"tgKSJys3w/UaHo4Ysd+Kvw\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 11567.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11567.0\"}}, \"usCj8EbPFiwMXDxfRmyWvw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 31028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31028.0\"}}, \"A6KU/qYQ98spmWi6/tD3vw\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 24309.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24309.0\"}}, \"blzjPT0h8JvaEyoeHM0HwA\": {\"metadata\": {\"community_id\": 541, \"customer_id\": 4230.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4230.0\"}}, \"0UVIs06F6OpYATgqQ/oRwA\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 126370.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126370.0\"}}, \"08bGjN1u0ANSZUfU31gawA\": {\"metadata\": {\"community_id\": 153, \"customer_id\": 33286.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33286.0\"}}, \"w6OquymSybB4rOzCfnsmwA\": {\"metadata\": {\"community_id\": 468, \"customer_id\": 154032.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154032.0\"}}, \"iImUqiPNPbAQT9k7P7UswA\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 95075.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95075.0\"}}, \"9H4dfR82pf4C6zAX/Kw+wA\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 72709.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72709.0\"}}, \"RmT2VUCyBml1MSaKA8p4wA\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 25540.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25540.0\"}}, \"1diDn2TqVXffSDwuCsufwA\": {\"metadata\": {\"community_id\": 96, \"customer_id\": 94762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94762.0\"}}, \"lB94TJC4mHXWf2vZWZ29wA\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 115788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115788.0\"}}, \"9TKJBcJAUWfrnzzw+DnBwA\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 162472.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162472.0\"}}, \"sMVEDjYAoPnviUTBQoXGwA\": {\"metadata\": {\"community_id\": 379, \"customer_id\": 46618.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46618.0\"}}, \"7ib9VmFqcj1KqsdJi47OwA\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 24729.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24729.0\"}}, \"G0Jvudh0MprO+ahcgETzwA\": {\"metadata\": {\"community_id\": 293, \"customer_id\": 73863.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73863.0\"}}, \"nS6lfxCR8UbhgnG0zjn2wA\": {\"metadata\": {\"community_id\": 292, \"customer_id\": 123499.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123499.0\"}}, \"D4IAw+FEySK1aJafWfn3wA\": {\"metadata\": {\"community_id\": 402, \"customer_id\": 81407.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81407.0\"}}, \"CbimiVMxuT7pDVfyGcT4wA\": {\"metadata\": {\"community_id\": 421, \"customer_id\": 138784.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138784.0\"}}, \"/c8KCzUU8taJjhXPkCEYwQ\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 195314.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195314.0\"}}, \"8FTWC1IrA7HALNPMFE0lwQ\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 41621.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41621.0\"}}, \"nuOysH+Mh2h6a7WWgG44wQ\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 148576.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148576.0\"}}, \"5zGaSrpx8N1/soA9uEI+wQ\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 109830.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109830.0\"}}, \"IPgGExpgq0OmbJYAJoFSwQ\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 119166.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119166.0\"}}, \"o98+gH/a/qF/Ai20CAdfwQ\": {\"metadata\": {\"community_id\": 503, \"customer_id\": 174726.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174726.0\"}}, \"jj5LZioA+7tmT0FTRGN0wQ\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 124438.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124438.0\"}}, \"Na1dZK+2rK5VDYolao51wQ\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 176914.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176914.0\"}}, \"hL75IBvLbfMhsjCx+1t8wQ\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 160506.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160506.0\"}}, \"ICaVjTyTI8LNXqd6cVJ+wQ\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 120762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120762.0\"}}, \"hvsaBnv2e212vOtI9S2HwQ\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 171246.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171246.0\"}}, \"x+lG/kXRYYoK8naWzHS1wQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 158198.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158198.0\"}}, \"0P3j4CTZ2CVND7f+EofIwQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 13086.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13086.0\"}}, \"1LWVTQ0sTh4Dqh1crhDOwQ\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 18930.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18930.0\"}}, \"0mApAkzVCbCD0Bj419HRwQ\": {\"metadata\": {\"community_id\": 332, \"customer_id\": 25671.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25671.0\"}}, \"QRRaPMkfiJHFc5S7j33XwQ\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 124495.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124495.0\"}}, \"Z9n/kmsyq52cF3jYG9nZwQ\": {\"metadata\": {\"community_id\": 312, \"customer_id\": 130824.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130824.0\"}}, \"SlRbWsroLBnECZVyHkDkwQ\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 173901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173901.0\"}}, \"TsBp/bUpbkbp5S1HqqD0wQ\": {\"metadata\": {\"community_id\": 321, \"customer_id\": 159284.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159284.0\"}}, \"AlCXpabHb9Fswv7L4U0Bwg\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 4948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4948.0\"}}, \"Ut/cnsk0Y1yuS0FtNMJBwg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 151960.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151960.0\"}}, \"orA6XdY3CKntCIC/xzdPwg\": {\"metadata\": {\"community_id\": 542, \"customer_id\": 54474.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54474.0\"}}, \"UX3YXL0WCL6Q9XNHkwlVwg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 167757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167757.0\"}}, \"oqx1FFwhXdoO45ug5RFXwg\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 123496.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123496.0\"}}, \"/lnJYySQ1nGxJ0pjUAVqwg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 64972.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64972.0\"}}, \"xFsftJBws+g1Jr8swvaNwg\": {\"metadata\": {\"community_id\": 531, \"customer_id\": 39328.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39328.0\"}}, \"HA63TWBU2S0+FaXntjCnwg\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 20437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20437.0\"}}, \"GESk4W8kGwn+vZG9m8yvwg\": {\"metadata\": {\"community_id\": 527, \"customer_id\": 22392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22392.0\"}}, \"iLKRP/GmekuHICjQTLXOwg\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 93723.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93723.0\"}}, \"7rVbt5BH4NPe/afuuJbRwg\": {\"metadata\": {\"community_id\": 167, \"customer_id\": 199304.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199304.0\"}}, \"vnd7GVG/CYH07RNAUEgKww\": {\"metadata\": {\"community_id\": 378, \"customer_id\": 160906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160906.0\"}}, \"XAkVRZGQ94PVTV2tBtEKww\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 77255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77255.0\"}}, \"f1/jPqUJ3XpKbRc+ulYwww\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 106564.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106564.0\"}}, \"JI8jNOmizj1lO3NTr2Nbww\": {\"metadata\": {\"community_id\": 543, \"customer_id\": 46702.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46702.0\"}}, \"GyNDEvMoYuhGvUGJuPBrww\": {\"metadata\": {\"community_id\": 334, \"customer_id\": 135059.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135059.0\"}}, \"KUKx56eLLLckf6HhvAhzww\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 9789.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9789.0\"}}, \"pPmXlW2jutvNWlr49riJww\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 174237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174237.0\"}}, \"o5hJtnYCQOtp9KjOY9KKww\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 107359.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107359.0\"}}, \"uXgRv+EhLbgeoK6stpaXww\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 34159.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34159.0\"}}, \"Y0HoY3m90f8579jMkh2lww\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 60779.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60779.0\"}}, \"KyOVJoQ1KBIHYx7862Clww\": {\"metadata\": {\"community_id\": 126, \"customer_id\": 39868.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39868.0\"}}, \"1wDxYj7DcItX8ETmJuSwww\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 107675.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107675.0\"}}, \"HGOabZuyDH+NWvcni8fIww\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 175867.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175867.0\"}}, \"P1k6r0S9EQbkqpJzRaPMww\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 89588.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89588.0\"}}, \"AzjFuM06Mlh2IO2j5mHRww\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 160194.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160194.0\"}}, \"Lg63ntVVe/szA2gZJ1zcww\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 37760.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37760.0\"}}, \"44m6YoyPWWMgqGmxbpPgww\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 104412.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104412.0\"}}, \"e+iMIH93HMrK3sBL12/1ww\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 66666.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66666.0\"}}, \"Wa79NCMryG4kb8KQd9T8ww\": {\"metadata\": {\"community_id\": 502, \"customer_id\": 44911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44911.0\"}}, \"7DJ1W9saIcI9kuHgRJb9ww\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 154034.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154034.0\"}}, \"dFSrg3Qo5QNZRbeqFLIHxA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 119084.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119084.0\"}}, \"E8YPyLkuYOqkvzmDsSIKxA\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 115062.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115062.0\"}}, \"stZS7egMHVmBbshb4MJJxA\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 54663.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54663.0\"}}, \"3VKE9O3qoeFicDCMezlWxA\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 93983.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93983.0\"}}, \"Iv1TVwC5a8DIOQwR/OdixA\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 116719.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116719.0\"}}, \"I3Qv6bMIp/IVjYk8GS9zxA\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 45237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45237.0\"}}, \"xFtvUt54mWyK6jRKl1JzxA\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 144627.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144627.0\"}}, \"hKruHz9YqELlEfdSiJ2BxA\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 195730.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195730.0\"}}, \"8ay8Jub/jSdSgmTtDJKJxA\": {\"metadata\": {\"community_id\": 430, \"customer_id\": 183656.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183656.0\"}}, \"lL2Pcacb0dpYNhoRRP2kxA\": {\"metadata\": {\"community_id\": 508, \"customer_id\": 33472.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33472.0\"}}, \"8q9ThZ4dsMD6aLF39MmyxA\": {\"metadata\": {\"community_id\": 223, \"customer_id\": 156121.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156121.0\"}}, \"VQXF0znq/wL8TubQs93FxA\": {\"metadata\": {\"community_id\": 544, \"customer_id\": 29346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29346.0\"}}, \"1ZpUxaN+Bxlij295UkHIxA\": {\"metadata\": {\"community_id\": 68, \"customer_id\": 160955.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160955.0\"}}, \"QH5V8o2q1ky152gZ2ALSxA\": {\"metadata\": {\"community_id\": 138, \"customer_id\": 101831.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101831.0\"}}, \"1HD1hgKxdxjSKUE56jLcxA\": {\"metadata\": {\"community_id\": 528, \"customer_id\": 36514.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36514.0\"}}, \"KnQ1veuKdeMziZDzLYjmxA\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 82605.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82605.0\"}}, \"ezRssIMYZ4RBowwXiNLpxA\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 174040.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174040.0\"}}, \"FP3VoLmMd2eZRBobuqshxQ\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 1819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1819.0\"}}, \"UOJIpTijHzZsoiQk7xwzxQ\": {\"metadata\": {\"community_id\": 296, \"customer_id\": 32262.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32262.0\"}}, \"8T1982ymi8ae9f3QJo87xQ\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 92942.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92942.0\"}}, \"PCycEl2GTWjoexk2Y2k+xQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 139968.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139968.0\"}}, \"8Axznb3nRk/NprDR3QVNxQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 95706.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95706.0\"}}, \"IOyeV/FDuKq0lQsYOChRxQ\": {\"metadata\": {\"community_id\": 316, \"customer_id\": 161551.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161551.0\"}}, \"/244Bhg1oGurt3IyzwKYxQ\": {\"metadata\": {\"community_id\": 169, \"customer_id\": 55566.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55566.0\"}}, \"atJoIn0HO1lHzEghWBykxQ\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 58178.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58178.0\"}}, \"tbqMBPMzgCXgvALU4kS6xQ\": {\"metadata\": {\"community_id\": 545, \"customer_id\": 52139.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52139.0\"}}, \"1qJ9URMSFa7XqetYOgjcxQ\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 105873.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105873.0\"}}, \"RqAoRt/0ERHfq//jRwMCxg\": {\"metadata\": {\"community_id\": 529, \"customer_id\": 158669.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158669.0\"}}, \"z5jHSXyyrX6eDs+IbTIDxg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 149836.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149836.0\"}}, \"ANJirwOmc8zfhtEnI0IYxg\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 86741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86741.0\"}}, \"m/AwurfNm2p5UsvVvLsnxg\": {\"metadata\": {\"community_id\": 546, \"customer_id\": 1590.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1590.0\"}}, \"YIoy52TlWKoMfszHJpo6xg\": {\"metadata\": {\"community_id\": 422, \"customer_id\": 98393.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98393.0\"}}, \"swp8nA1IIlV5HAlku2M7xg\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 38230.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38230.0\"}}, \"QAZy+ZyHzSGTg21oZbtFxg\": {\"metadata\": {\"community_id\": 547, \"customer_id\": 186452.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186452.0\"}}, \"QNWQjbSyenj1iC2Ps3Vmxg\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 133461.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133461.0\"}}, \"QljCsEz0a///Jq2IB2+cxg\": {\"metadata\": {\"community_id\": 219, \"customer_id\": 125692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125692.0\"}}, \"7+NijVvh9cRhrJcDfe+sxg\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 16843.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16843.0\"}}, \"loqw1+ffTyBWBziom2HExg\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 170042.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170042.0\"}}, \"z87YcajMpqL4GGWLPrXKxg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 181732.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181732.0\"}}, \"WE/sSgPkeYnLGUNDQA/Rxg\": {\"metadata\": {\"community_id\": 103, \"customer_id\": 67994.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67994.0\"}}, \"kwhLDg0U+a3YNXYiod7Vxg\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 166419.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166419.0\"}}, \"GjAof1RFrIHVKY/0zm3bxg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 70794.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70794.0\"}}, \"Zvd//MafwP9D03olooL/xg\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 120255.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120255.0\"}}, \"m3X7KkUEpv9j4UzhkoMAxw\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 141171.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141171.0\"}}, \"BhyQqjjixR/Qv6xY8/gIxw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 83304.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83304.0\"}}, \"bk9spz7t1TylsPHDJYkLxw\": {\"metadata\": {\"community_id\": 451, \"customer_id\": 193526.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193526.0\"}}, \"Ocnr/WOgV9Si47elG1cNxw\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 46348.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46348.0\"}}, \"WmDoE4doNyin11HM8WgSxw\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 125095.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125095.0\"}}, \"0pzAhESH4mD8Y7joQlAoxw\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 184256.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184256.0\"}}, \"TaylE4VzYn6LbkxhJyE6xw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 69035.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"69035.0\"}}, \"OVRrkEa1Qc7kjpyFl1Y7xw\": {\"metadata\": {\"community_id\": 300, \"customer_id\": 14577.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14577.0\"}}, \"SchPEfGmLGDrGUJawxRbxw\": {\"metadata\": {\"community_id\": 102, \"customer_id\": 82580.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82580.0\"}}, \"tH9869I8NvruzTNOD7edxw\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 95975.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95975.0\"}}, \"OLXOzJVz75+GOsLskyKgxw\": {\"metadata\": {\"community_id\": 101, \"customer_id\": 36609.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36609.0\"}}, \"q4j9p9AYZkwSfi18CCiuxw\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 140093.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140093.0\"}}, \"dk6DwZwUWB0ANONnemeyxw\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 173855.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173855.0\"}}, \"IKaWUv1v0QppVoq3jDu4xw\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 111072.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111072.0\"}}, \"vxral90saOW+72B9xdDaxw\": {\"metadata\": {\"community_id\": 317, \"customer_id\": 34556.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34556.0\"}}, \"dLxkDItK6ds0BvVWlMzfxw\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 166784.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166784.0\"}}, \"vvK9Th+9rfrmK4UXVgr9xw\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 7442.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7442.0\"}}, \"zl2ldV3zCVo7TVH54oYQyA\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 128529.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128529.0\"}}, \"lEBrmAcP30d64NYUuN1gyA\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 153839.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153839.0\"}}, \"TDK1xqHDYg2OvbepjbOXyA\": {\"metadata\": {\"community_id\": 142, \"customer_id\": 29733.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29733.0\"}}, \"7PIjjpdWBiwyW4ixCoecyA\": {\"metadata\": {\"community_id\": 525, \"customer_id\": 166289.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"166289.0\"}}, \"YoguZr7Ht5VTBpiOW2uiyA\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 147545.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147545.0\"}}, \"FbaFWKwjLhE68HJWltWqyA\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 6106.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6106.0\"}}, \"8GSDTYbw+zWL3W0uIt2tyA\": {\"metadata\": {\"community_id\": 353, \"customer_id\": 47884.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47884.0\"}}, \"9fU7qlQhRR5rhI7dOB+uyA\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 189516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189516.0\"}}, \"lsLKKaHMUiMrn6Zcpfq5yA\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 177023.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177023.0\"}}, \"jjUjCBpwp2t9aL7mqYzByA\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 125310.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125310.0\"}}, \"Xe55gpjzk9yxQKYpqNHIyA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 64721.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64721.0\"}}, \"b2mBfHZKw/7Wv719ImjRyA\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 122274.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122274.0\"}}, \"LL3EugqztyFZS7UuGML+yA\": {\"metadata\": {\"community_id\": 28, \"customer_id\": 92701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92701.0\"}}, \"/6ChykDrOBwRLnasMTEgyQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 26545.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26545.0\"}}, \"Mw3Fjxl0YQg8qQs2IadGyQ\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 68565.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68565.0\"}}, \"3JHFRc0psawMPSLp7G5OyQ\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 52481.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52481.0\"}}, \"aXnzSNAt+qU+mwyNUylPyQ\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 76636.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76636.0\"}}, \"bXGpMEzkXLgG31dxALVXyQ\": {\"metadata\": {\"community_id\": 248, \"customer_id\": 150018.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150018.0\"}}, \"xcCz7UtKMNaCiBrVKD9kyQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 71367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71367.0\"}}, \"zdLzAZO8WpWxWxG/u35/yQ\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 179788.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179788.0\"}}, \"AVpxGqZaxxfHPgUcyd6ByQ\": {\"metadata\": {\"community_id\": 536, \"customer_id\": 187412.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187412.0\"}}, \"YsX1xoG1Sju1MtguNdicyQ\": {\"metadata\": {\"community_id\": 155, \"customer_id\": 102392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102392.0\"}}, \"9u2HDSvX//SeuxXrnZqtyQ\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 172304.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172304.0\"}}, \"lve+wd/wKPyn3CsMesLZyQ\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 54026.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54026.0\"}}, \"kcFwDaFlVYo5rF26BC/cyQ\": {\"metadata\": {\"community_id\": 354, \"customer_id\": 31350.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31350.0\"}}, \"BnBQ+tWug8T5kfIlBJf1yQ\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 173758.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173758.0\"}}, \"zHfkNAUOGIbuOJss094Syg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 47786.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47786.0\"}}, \"R2NZRIws+qXh4yWI4/Iayg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 104442.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104442.0\"}}, \"y64aPRdjU1N+2Egc1mEeyg\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 33945.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33945.0\"}}, \"2sihRpUNQ4AoNIXbK1Q3yg\": {\"metadata\": {\"community_id\": 347, \"customer_id\": 131055.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131055.0\"}}, \"q/LU05EL2cNf9O5N1wNCyg\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 164192.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164192.0\"}}, \"C/zXXUs47IAYnHl6zBhMyg\": {\"metadata\": {\"community_id\": 547, \"customer_id\": 196207.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196207.0\"}}, \"RNWd8UAwtRy33uFufI5/yg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 79507.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79507.0\"}}, \"J2JOgBTG2R43THPf9vKJyg\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 142901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142901.0\"}}, \"5vOpbU7kc21gWGoUtU+Zyg\": {\"metadata\": {\"community_id\": 112, \"customer_id\": 131468.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131468.0\"}}, \"9dW2s/cOhwx8l3hsM4ujyg\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 22543.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22543.0\"}}, \"MfCKTk9Vom6dfNioYSOwyg\": {\"metadata\": {\"community_id\": 19, \"customer_id\": 5062.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5062.0\"}}, \"U/zvXT/kZlfNPqv27Xa3yg\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 159257.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159257.0\"}}, \"dGVXj5FGpjyorj3Kj9HDyg\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 176519.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176519.0\"}}, \"ud5x3n4d6/TNWqjX6Uwwyw\": {\"metadata\": {\"community_id\": 115, \"customer_id\": 47502.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47502.0\"}}, \"O4Kq1VZwa577rE7s8Hg7yw\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 53521.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53521.0\"}}, \"+SQZC7ws63zW22bLZOBDyw\": {\"metadata\": {\"community_id\": 401, \"customer_id\": 158455.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158455.0\"}}, \"9YG8veR7SSp+tcshzpdFyw\": {\"metadata\": {\"community_id\": 530, \"customer_id\": 162001.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162001.0\"}}, \"F5YJ1jose1f1KbLOiCJJyw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 83557.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83557.0\"}}, \"AHMvV8h1aOg6zyB7wC1Lyw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 144766.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144766.0\"}}, \"hmL/3oVWDDWUMvAK5nRkyw\": {\"metadata\": {\"community_id\": 483, \"customer_id\": 118352.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118352.0\"}}, \"oqa1czMKG9P74MWoG5iYyw\": {\"metadata\": {\"community_id\": 147, \"customer_id\": 30572.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30572.0\"}}, \"/wQHIKlt0DWBWTIC94i1yw\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 107877.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107877.0\"}}, \"rB3LvGy39n1F6H8VS0+2yw\": {\"metadata\": {\"community_id\": 515, \"customer_id\": 5933.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5933.0\"}}, \"wvKwvzhvGsDMWXfZrSC8yw\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 134450.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134450.0\"}}, \"8hQSZ2PIYIyZV8i1r/zwyw\": {\"metadata\": {\"community_id\": 419, \"customer_id\": 102615.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102615.0\"}}, \"QnZalRKtW4dpzpj2+KDzyw\": {\"metadata\": {\"community_id\": 275, \"customer_id\": 72164.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72164.0\"}}, \"/EfEBO3c5f0+d80AqXQBzA\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 140563.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140563.0\"}}, \"BmpnjQD2BpL61dVZceomzA\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 172414.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172414.0\"}}, \"gbLXXnl675hHRZYXyW0pzA\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 55400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55400.0\"}}, \"AM3uwVnDG1KnTdlX1elJzA\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 156731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156731.0\"}}, \"A5KONIHSVOBCk9kmkPF9zA\": {\"metadata\": {\"community_id\": 260, \"customer_id\": 44547.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"44547.0\"}}, \"KY7SDv55+3dlAQFrfzmPzA\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 194239.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194239.0\"}}, \"2WZ+QLWazLW8nSczXoOlzA\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 185835.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185835.0\"}}, \"8+ZNPAfLfJ4E3rqIsOm3zA\": {\"metadata\": {\"community_id\": 93, \"customer_id\": 61448.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61448.0\"}}, \"W259ly2a2z+n+NPO0gK6zA\": {\"metadata\": {\"community_id\": 105, \"customer_id\": 136813.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136813.0\"}}, \"Vt717tNeUr26Ht7uz3W6zA\": {\"metadata\": {\"community_id\": 231, \"customer_id\": 6861.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6861.0\"}}, \"pLV1jlhExMm2ObkllrzYzA\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 154118.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154118.0\"}}, \"Pp3qG3oSNALuUCiYsoPszA\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 156285.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156285.0\"}}, \"4fsPI0x1OUVboOOVA84FzQ\": {\"metadata\": {\"community_id\": 77, \"customer_id\": 59540.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59540.0\"}}, \"qLy1jkLTCyqKit0JxLE2zQ\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 31826.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"31826.0\"}}, \"pQzwAom3bwB92iB1vA83zQ\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 114673.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114673.0\"}}, \"WcjDyJCvaIKJKcpprPVPzQ\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 137267.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137267.0\"}}, \"tX0B7WfMBbtslZFb0IpizQ\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 157864.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157864.0\"}}, \"1iphEBC8RewWM71m3w1mzQ\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 92588.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92588.0\"}}, \"VIllveNwdGr1N7Obls5ozQ\": {\"metadata\": {\"community_id\": 71, \"customer_id\": 649.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"649.0\"}}, \"/2BwrR19KATXpaXvJxGPzQ\": {\"metadata\": {\"community_id\": 351, \"customer_id\": 179970.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179970.0\"}}, \"M8PtUDh0BZnkoIFUB3PAzQ\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 58962.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58962.0\"}}, \"L2tB1n1pURXM5J79efXQzQ\": {\"metadata\": {\"community_id\": 442, \"customer_id\": 165843.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165843.0\"}}, \"kWWat8VAJru0KAH35zPSzQ\": {\"metadata\": {\"community_id\": 221, \"customer_id\": 109103.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109103.0\"}}, \"h50AAX/nuP5rE/W++FALzg\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 149202.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"149202.0\"}}, \"WSYFeSzGx7LhdNhRlOcfzg\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 27433.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27433.0\"}}, \"49HrxjOtiYvNOAd8M5Mqzg\": {\"metadata\": {\"community_id\": 548, \"customer_id\": 144455.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144455.0\"}}, \"NbdJmnny6VadnVE/Q5dqzg\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 20661.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20661.0\"}}, \"265feNjxTzIMZ8+BKwy4zg\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 20600.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"20600.0\"}}, \"b8fpnzCB7pOsbIrJNam9zg\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 160587.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"160587.0\"}}, \"sbcB52eztAxnw3afxfrTzg\": {\"metadata\": {\"community_id\": 307, \"customer_id\": 16405.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16405.0\"}}, \"13NDORsV0NBpE78voJX8zg\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 189574.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189574.0\"}}, \"jIVsa9D/kpFcPilmWa4Hzw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 182455.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182455.0\"}}, \"x9l1iZoSvc1rG7jjV28Vzw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 104025.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104025.0\"}}, \"F6YNnTWNiTfmQxsIu88kzw\": {\"metadata\": {\"community_id\": 418, \"customer_id\": 116207.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116207.0\"}}, \"D9lUdaW8Ta/z+9ifk2Auzw\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 15431.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15431.0\"}}, \"CIEk6rJ4pzoVNKDg6ks8zw\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 3243.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3243.0\"}}, \"AohI5f/BkoR8P/9gC7RUzw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 177848.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177848.0\"}}, \"6jNVAJhI7DMcPITe0gOFzw\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 13138.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13138.0\"}}, \"zANMFHvfDmlolnGwAg6Hzw\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 182341.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182341.0\"}}, \"PXiKkcZA6z5z6mJS/wWizw\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 2878.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2878.0\"}}, \"OYQjpxDqwMzwSyX7tb6pzw\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 165276.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165276.0\"}}, \"+5Bq+EbFrtKUOjGDiim7zw\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 196437.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196437.0\"}}, \"Sa3pdyOhhVraK3JVehnezw\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 159734.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159734.0\"}}, \"3OV376PlBaoLTaGgahvzzw\": {\"metadata\": {\"community_id\": 207, \"customer_id\": 92622.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92622.0\"}}, \"KAOYRnIa8jpoVsl6LEwC0A\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 192040.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192040.0\"}}, \"B/PZxF0sz0DmnH62c7wt0A\": {\"metadata\": {\"community_id\": 46, \"customer_id\": 113574.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113574.0\"}}, \"XiC7FH1g29T+yR+JgexY0A\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 84884.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84884.0\"}}, \"cCmG6cRvUcKWgi1UAH9g0A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 32821.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32821.0\"}}, \"XQnT/93qqR6fC3YyjNB40A\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 38246.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38246.0\"}}, \"olMAQl+wwkOfD/g3eOeP0A\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 58716.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58716.0\"}}, \"UIT/M2z73PBRJtArUS6Z0A\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 16545.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16545.0\"}}, \"YcbMC6X7w3/ZbkRqHX2Z0A\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 102518.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102518.0\"}}, \"T7Bbq1+NkLmIA0EL6tys0A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 52686.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52686.0\"}}, \"EARZoqhcKM63G99flR3A0A\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 173944.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173944.0\"}}, \"voyyn7epEtNpu6dfPTzP0A\": {\"metadata\": {\"community_id\": 264, \"customer_id\": 142939.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142939.0\"}}, \"r1iREzOib40Fq3xYyqDR0A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 18474.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18474.0\"}}, \"BA9DMxaYbrqyBsAxrrvV0A\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 64989.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64989.0\"}}, \"r+zf57mLB0xmGAqQxt7d0A\": {\"metadata\": {\"community_id\": 348, \"customer_id\": 118969.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118969.0\"}}, \"DuKECx6iz87ej86wHmrk0A\": {\"metadata\": {\"community_id\": 229, \"customer_id\": 121762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"121762.0\"}}, \"jOEsAhonxltEPvV5C/3u0A\": {\"metadata\": {\"community_id\": 340, \"customer_id\": 58563.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58563.0\"}}, \"Y8BKm9HLQuNZAEIUJgv30A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 12569.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12569.0\"}}, \"ecEqhLbyDQgEYoVuFzsD0Q\": {\"metadata\": {\"community_id\": 48, \"customer_id\": 108655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108655.0\"}}, \"5l+nWShQIHU/EwPzCPsU0Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 10962.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"10962.0\"}}, \"cCAe70sXGQWYb/OuJM5A0Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 84696.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84696.0\"}}, \"JARaDTo+BmuRHMBD03pY0Q\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 4849.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4849.0\"}}, \"iKUw4Z9w96D6wQtz5rpe0Q\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 171615.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171615.0\"}}, \"Rv98/nwr9nwQ+Y9/itx00Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 141661.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141661.0\"}}, \"OkkGhjLgMjJNiAwrkAWG0Q\": {\"metadata\": {\"community_id\": 165, \"customer_id\": 117532.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117532.0\"}}, \"T6FkEoQFGILCp+hA8XSk0Q\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 84480.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"84480.0\"}}, \"zA4lrOvjqTMBfQi5rlOm0Q\": {\"metadata\": {\"community_id\": 307, \"customer_id\": 5938.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5938.0\"}}, \"eaQCvP/g9Lp8gpeddHG80Q\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 32798.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32798.0\"}}, \"5iSNxr/itO4I17fTbTbe0Q\": {\"metadata\": {\"community_id\": 37, \"customer_id\": 131762.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131762.0\"}}, \"poVGGFYyF0gYXNCFJkQI0g\": {\"metadata\": {\"community_id\": 88, \"customer_id\": 158923.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158923.0\"}}, \"NuW0BVMZ00PqaZsud0QN0g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 147412.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147412.0\"}}, \"c5qReOIC8YJQNGm3SDsY0g\": {\"metadata\": {\"community_id\": 181, \"customer_id\": 67979.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67979.0\"}}, \"RGjlmlPAkXa/tI12Y6I10g\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 60203.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60203.0\"}}, \"Ql8yEBGa1dW1kesET0c40g\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 162440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162440.0\"}}, \"DLTeNonoRsfy6pTZgfM80g\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 103232.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103232.0\"}}, \"RY9tUqtEDoNHUOJc5OdH0g\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 54033.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54033.0\"}}, \"5I/RxqOeoSM2vBkJK5xS0g\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 92237.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92237.0\"}}, \"3oN+IYemYxHjZVZXo2ll0g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 47109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47109.0\"}}, \"lI/eft/RzEEhzaigNox70g\": {\"metadata\": {\"community_id\": 299, \"customer_id\": 4392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4392.0\"}}, \"cTFSFZ6L+4e7+kAv2OOd0g\": {\"metadata\": {\"community_id\": 466, \"customer_id\": 191990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191990.0\"}}, \"ErkzyHpetFkkZkbpDTyo0g\": {\"metadata\": {\"community_id\": 523, \"customer_id\": 70420.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70420.0\"}}, \"45D1y/f+Hloq2UfDPISt0g\": {\"metadata\": {\"community_id\": 454, \"customer_id\": 190696.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190696.0\"}}, \"skeECVWpQl8ufmsJtEK60g\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 33490.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33490.0\"}}, \"Y6tU5iNEDLF6oW77OnXC0g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 177565.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177565.0\"}}, \"xGYjzaN7LnHvZGeHcLTD0g\": {\"metadata\": {\"community_id\": 34, \"customer_id\": 199233.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199233.0\"}}, \"kR1PDrgpN92D90eUdVDO0g\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 66784.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66784.0\"}}, \"wB8RZyqeuxAqTlG1x5Ld0g\": {\"metadata\": {\"community_id\": 49, \"customer_id\": 67489.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67489.0\"}}, \"v4fMIOFhdBvfKZW3Xyfg0g\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 117387.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117387.0\"}}, \"ntw3gxP9i//bs6Ho95X20g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 119107.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"119107.0\"}}, \"/bA9vVOFPjpACVu2Rb8t0w\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 194377.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194377.0\"}}, \"rWsZvRAvM0Pq4qaN4/BJ0w\": {\"metadata\": {\"community_id\": 60, \"customer_id\": 179569.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179569.0\"}}, \"T21csR2tiZvqkP3PvXdr0w\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 14317.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14317.0\"}}, \"VkT3OOB9wI/n9zlt+Ulz0w\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 17754.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17754.0\"}}, \"MG00eunxEmm1lYvM3jWA0w\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 29697.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29697.0\"}}, \"lWV7dsxEgrpNNl2b42CB0w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 33818.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33818.0\"}}, \"81+dJ4sVb2xeMz9c6Y6C0w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 183275.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183275.0\"}}, \"5md/MVOxk6Lw2Tjacf6D0w\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 177497.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177497.0\"}}, \"DhnulpEPg5r8judUu1mQ0w\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 182855.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182855.0\"}}, \"CsWQSLgxYtAGh2euTYqX0w\": {\"metadata\": {\"community_id\": 184, \"customer_id\": 22424.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22424.0\"}}, \"lniOuhFsg10LXewtmrul0w\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 161208.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161208.0\"}}, \"Nxf6Dl2TY1lZ+tAbB1jI0w\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 171079.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171079.0\"}}, \"UEABfE8qoDx/6OkC1Vzl0w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 92481.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92481.0\"}}, \"We/y8kKlzK1iY53AKV7n0w\": {\"metadata\": {\"community_id\": 177, \"customer_id\": 140076.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140076.0\"}}, \"O16OCVveV3Dc1jkzE8jn0w\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 8648.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8648.0\"}}, \"x7rARw2qNlJ5MASYYmzq0w\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 45087.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45087.0\"}}, \"u9+k6jrH+a5b7/DyIKv50w\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 131230.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131230.0\"}}, \"aLmsFb/9Xz3M4vYoXwMK1A\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 145114.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145114.0\"}}, \"/a9HU16WypmlvPBzMlAP1A\": {\"metadata\": {\"community_id\": 236, \"customer_id\": 25782.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25782.0\"}}, \"ECrXW4TwKkiq0yhDSQsg1A\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 110601.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110601.0\"}}, \"2CCWZd0r/q3XhcVZAzQo1A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 116710.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116710.0\"}}, \"gfaga5/1riUiud+prjow1A\": {\"metadata\": {\"community_id\": 535, \"customer_id\": 128884.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128884.0\"}}, \"VDofsUx8MXnX74THtK8+1A\": {\"metadata\": {\"community_id\": 495, \"customer_id\": 124246.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124246.0\"}}, \"mm6xCo8N6tJFTZMAe4VI1A\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 70189.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70189.0\"}}, \"9nCaeCCDiSnH0pGj9QBJ1A\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 188195.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188195.0\"}}, \"rdcU0794FRm7pA510uJR1A\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 50465.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50465.0\"}}, \"dBYlPbB0AjpFSwNcAhiN1A\": {\"metadata\": {\"community_id\": 402, \"customer_id\": 104364.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104364.0\"}}, \"HSXYunXnU735XSqPVXaV1A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 141731.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141731.0\"}}, \"2hqjTmv4MpPdFdsOI/OY1A\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 51399.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51399.0\"}}, \"1eT/3ivP8O9hgbVBkGCn1A\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 190106.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190106.0\"}}, \"IaImK3Wfmh8zprJ17Fuz1A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 38137.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38137.0\"}}, \"eVwUCQYDufTRiMXd3gS21A\": {\"metadata\": {\"community_id\": 210, \"customer_id\": 189231.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189231.0\"}}, \"r1jCxdcEbk+++Tqa6evO1A\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 197400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197400.0\"}}, \"z/TAoZvzjf2wvlusVBnV1A\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 61946.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61946.0\"}}, \"b0c1d26mJFr1jSCe2avt1A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 179167.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179167.0\"}}, \"/mv1CYmTOO/we7OK54bu1A\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 155850.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155850.0\"}}, \"rUmPGQXYQ01oDAOVKdAA1Q\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 139926.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139926.0\"}}, \"wynyTIsH6t/BOa/n3aEe1Q\": {\"metadata\": {\"community_id\": 269, \"customer_id\": 122523.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122523.0\"}}, \"qcL9ytXQGVZEzfmjivkj1Q\": {\"metadata\": {\"community_id\": 438, \"customer_id\": 158018.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158018.0\"}}, \"AAoMjjx0U7e1swPFxDgm1Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 106960.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106960.0\"}}, \"jl+NiomZ13QCt0ovVOEn1Q\": {\"metadata\": {\"community_id\": 26, \"customer_id\": 107398.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107398.0\"}}, \"ZzXKeIKTxEylrN333Zct1Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 195244.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195244.0\"}}, \"l2Q/oIYm74GDWIiJ0C031Q\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 189504.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189504.0\"}}, \"sTsjjiN8dBDEMqtx8wtk1Q\": {\"metadata\": {\"community_id\": 206, \"customer_id\": 15623.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15623.0\"}}, \"gn2FcY9/SrQeM6Fz2Rlu1Q\": {\"metadata\": {\"community_id\": 481, \"customer_id\": 184748.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184748.0\"}}, \"UBvzeFzQMqnE1mhmQnp41Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 18576.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18576.0\"}}, \"pw1Urc5iVfS4y0uLi0eh1Q\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 67261.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67261.0\"}}, \"2kwqkjb20NhFUxxC1Tm51Q\": {\"metadata\": {\"community_id\": 288, \"customer_id\": 150091.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150091.0\"}}, \"WEDPEOtHnqBwx2mcLMq81Q\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 107633.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107633.0\"}}, \"fxKELfeW2mmDU7Q7omK/1Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 184750.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184750.0\"}}, \"AC/zkftBMezqxbBtqK7W1Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 262.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"262.0\"}}, \"iGZuWn8fO2VU2b3SzmHm1Q\": {\"metadata\": {\"community_id\": 158, \"customer_id\": 36612.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36612.0\"}}, \"KT2hNItJ3A+7HnNu1Izt1Q\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 55135.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55135.0\"}}, \"csFxYhlUWSAO8d1wOmf21Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 147154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147154.0\"}}, \"iJ1xPU/tcdkxseJn58AG1g\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 72133.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72133.0\"}}, \"2w6gQx/64oNIN6vPSJkq1g\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 59991.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59991.0\"}}, \"HX5tAgQbmKUs5gGEs/gx1g\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 33101.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33101.0\"}}, \"OSUbNnz8594/TF66ul1B1g\": {\"metadata\": {\"community_id\": 324, \"customer_id\": 170148.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170148.0\"}}, \"lTy5ajnv+ybkdhf/wEdD1g\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 164808.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164808.0\"}}, \"UxZn34sPt6+EihD5AG9Y1g\": {\"metadata\": {\"community_id\": 542, \"customer_id\": 158560.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158560.0\"}}, \"Smz1QIvP657gJFJUHLty1g\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 135981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135981.0\"}}, \"HanEWAQVvp92czeWbS1z1g\": {\"metadata\": {\"community_id\": 315, \"customer_id\": 141443.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141443.0\"}}, \"9nt26scFmwAoHlqchE2Q1g\": {\"metadata\": {\"community_id\": 218, \"customer_id\": 184922.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184922.0\"}}, \"SdLACOA5NHzMq25kxSWf1g\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 66880.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66880.0\"}}, \"0mCvCIbvhxPg63+1mNGf1g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 28330.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28330.0\"}}, \"nIgO2SB8550Bt4Vxy2bC1g\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 68795.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68795.0\"}}, \"gvILdsGxoPhTFjabAP3M1g\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 62248.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62248.0\"}}, \"7ZFgUu+P8FAztoZ9QRHP1g\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 24470.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24470.0\"}}, \"eJfOofg/VkU3qdrZNfHY1g\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 147321.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147321.0\"}}, \"tzXhsMltVbaVhDOHG+D51g\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 130632.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130632.0\"}}, \"3SYvUVF2OJ2vB3PYtfYK1w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 154830.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154830.0\"}}, \"6uEIF2c/sKN3ohddsWgT1w\": {\"metadata\": {\"community_id\": 205, \"customer_id\": 167295.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167295.0\"}}, \"ZUTxzdQNHeX1I/vY7OUf1w\": {\"metadata\": {\"community_id\": 202, \"customer_id\": 56890.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56890.0\"}}, \"+CMr8Kod/3DtGz10hUou1w\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 15392.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15392.0\"}}, \"S5Ym/doKX4FTQNjJEvtd1w\": {\"metadata\": {\"community_id\": 420, \"customer_id\": 64383.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"64383.0\"}}, \"V42JQgL0mjSlYRIaBgRe1w\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 92787.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92787.0\"}}, \"mnkauRSDn2xt+0K5bWlj1w\": {\"metadata\": {\"community_id\": 298, \"customer_id\": 22836.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22836.0\"}}, \"51sIXvwdb1xZwp6D19vL1w\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 183713.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183713.0\"}}, \"w5zZguOil64NNAAULQPU1w\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 139256.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139256.0\"}}, \"YXIjTDE6sJvw8Ctchvbo1w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 114298.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114298.0\"}}, \"rfBcOTnoGOUeM+2vyb/r1w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 81985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81985.0\"}}, \"GfyAUcsLzhVQEJH+riPw1w\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 193036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193036.0\"}}, \"D4NrVD7YBPxfp97z+4wK2A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 158369.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158369.0\"}}, \"ehabqbw4OQYvR5CymUIO2A\": {\"metadata\": {\"community_id\": 358, \"customer_id\": 25860.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25860.0\"}}, \"bDI9Og953C9gM6mQqrsd2A\": {\"metadata\": {\"community_id\": 346, \"customer_id\": 147488.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147488.0\"}}, \"GolMlD0lgvRnJJ+TP7Iy2A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 143919.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143919.0\"}}, \"RW96NHBcsbA7UIpMwIlD2A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 196926.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196926.0\"}}, \"TmqXuZAq3jcxGFGloddE2A\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 91953.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91953.0\"}}, \"7D9a/qbeWge1uN9fmApJ2A\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 88964.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88964.0\"}}, \"wKQEKDM6bFf7YQhZ0rV32A\": {\"metadata\": {\"community_id\": 435, \"customer_id\": 34074.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34074.0\"}}, \"eSgl7OxOKLGg4wMgFP+C2A\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 84087.0, \"color\": \"#FF0000\", \"size\": 20, \"hover\": \"84087.0\"}}, \"X3iS8Dq3cq8It+tMVZGR2A\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 116642.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116642.0\"}}, \"opICajuz4lb9z9H3bjGb2A\": {\"metadata\": {\"community_id\": 286, \"customer_id\": 195134.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195134.0\"}}, \"Sy2muxkb3YKQEB3A+UWj2A\": {\"metadata\": {\"community_id\": 220, \"customer_id\": 93834.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93834.0\"}}, \"h+D0DMg6qkCwcplM2Gqo2A\": {\"metadata\": {\"community_id\": 549, \"customer_id\": 77690.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77690.0\"}}, \"jr/tmb8gfujXSG5D58/n2A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 114932.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114932.0\"}}, \"AwPAXKgosGfgMgf3zbXw2A\": {\"metadata\": {\"community_id\": 273, \"customer_id\": 126109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126109.0\"}}, \"nks5WSx4QKKAPQCWyIn32A\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 143021.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143021.0\"}}, \"TmA41kwRYQQsZVMXIhz82A\": {\"metadata\": {\"community_id\": 398, \"customer_id\": 167263.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167263.0\"}}, \"X2tMjZDabILeP8FJTJQK2Q\": {\"metadata\": {\"community_id\": 329, \"customer_id\": 21973.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21973.0\"}}, \"TzJZOxXPxEKpEtCKqcAY2Q\": {\"metadata\": {\"community_id\": 144, \"customer_id\": 136945.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136945.0\"}}, \"8ZgtUC5oiX3t5uq7NRAe2Q\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 26248.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26248.0\"}}, \"Xyt8E9Vly0yzp9vAum9d2Q\": {\"metadata\": {\"community_id\": 280, \"customer_id\": 133799.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133799.0\"}}, \"QliDnvMJ5gshMhitECBf2Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 23498.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23498.0\"}}, \"0dPQX4HZuIcEoHZnu61i2Q\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 48579.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"48579.0\"}}, \"cHPtw67C6L5578ABzu9m2Q\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 61012.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61012.0\"}}, \"CJLO+byWnEBKLAAlusiW2Q\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 133985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133985.0\"}}, \"+lVxYLjIFO+Ycwih/VOi2Q\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 111576.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111576.0\"}}, \"aobPH6KJJmtGIvnX9Mes2Q\": {\"metadata\": {\"community_id\": 477, \"customer_id\": 4422.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4422.0\"}}, \"lvthtbal/X6FAsz6GwDo2Q\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 109820.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109820.0\"}}, \"AOZ6RzZdEBiJwiF5Ba7v2Q\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 50213.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50213.0\"}}, \"M28X/3X9XhtMKEhs+6oP2g\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 32261.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32261.0\"}}, \"pTMybSugouBc0nZLe/g+2g\": {\"metadata\": {\"community_id\": 125, \"customer_id\": 46773.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46773.0\"}}, \"PPSZWersRoR/CWl2j5xK2g\": {\"metadata\": {\"community_id\": 228, \"customer_id\": 183525.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183525.0\"}}, \"l0YHJYM4046cMOuZp7BR2g\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 95283.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95283.0\"}}, \"DaTobGDBd8qNG33vbIxl2g\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 38655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38655.0\"}}, \"P84WP5DJo+ONWAPG0AZm2g\": {\"metadata\": {\"community_id\": 521, \"customer_id\": 103169.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103169.0\"}}, \"ORocJgkETt4cgx7zJX1m2g\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 130126.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130126.0\"}}, \"1OrWmmA6yMO4aEFHG0dy2g\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 61175.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61175.0\"}}, \"xabMDvWi51n0Cul936172g\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 136516.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136516.0\"}}, \"Qj3rnYYTG625wVOHb1OG2g\": {\"metadata\": {\"community_id\": 87, \"customer_id\": 175981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175981.0\"}}, \"BzxNAuFyU0u79vAaduSj2g\": {\"metadata\": {\"community_id\": 270, \"customer_id\": 99169.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99169.0\"}}, \"aNKtA7iq1FYEJ6bLoj+s2g\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 140914.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140914.0\"}}, \"5ecY7ptJ6w2uSJ548yiw2g\": {\"metadata\": {\"community_id\": 510, \"customer_id\": 45344.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45344.0\"}}, \"F1YGf+WOJFyqnwxZfAmy2g\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 40960.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40960.0\"}}, \"TO1aIK0+tIq16RepokHF2g\": {\"metadata\": {\"community_id\": 550, \"customer_id\": 116885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116885.0\"}}, \"YHY1mcZdSq+ai241CebG2g\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 142837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"142837.0\"}}, \"RdHJ6h70jpiHt3m/vAPL2g\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 134586.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134586.0\"}}, \"+ko4YzNx60P+2xghNILs2g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 156411.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156411.0\"}}, \"O61qmbeWRO9KIoKQ+zT/2g\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 180740.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180740.0\"}}, \"UWN2fvz659JGxKe9R1s92w\": {\"metadata\": {\"community_id\": 374, \"customer_id\": 141420.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141420.0\"}}, \"MVxpMOd/YHo81uKU8J1D2w\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 65570.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65570.0\"}}, \"X7rqqVePj30IkrUqT51Y2w\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 148911.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"148911.0\"}}, \"qjM9bPDJ6Esfd1jc9Zuv2w\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 67805.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67805.0\"}}, \"RSkzRcKCWXkgyP3wyubL2w\": {\"metadata\": {\"community_id\": 439, \"customer_id\": 140548.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140548.0\"}}, \"HLd4WCwL+lRguGJbPDTi2w\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 137191.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137191.0\"}}, \"89IPAn8CnXhoaYUJqaDq2w\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 176087.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176087.0\"}}, \"FvxwjKG0LXhMuBY9DSns2w\": {\"metadata\": {\"community_id\": 145, \"customer_id\": 106749.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106749.0\"}}, \"5uLj1jBgYrE5DbDDhJXy2w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 141653.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"141653.0\"}}, \"TFGivlNpyvLKfXPJLvfz2w\": {\"metadata\": {\"community_id\": 408, \"customer_id\": 25459.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25459.0\"}}, \"eodI+fnS3UzxZQs/glMJ3A\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 126160.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126160.0\"}}, \"csgs7Ozxjop4sTVUvthD3A\": {\"metadata\": {\"community_id\": 498, \"customer_id\": 143524.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143524.0\"}}, \"/3tQ7PX7u87uXADeI4RE3A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 43172.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43172.0\"}}, \"ZfGEvBA0I2qr5e3lQr9r3A\": {\"metadata\": {\"community_id\": 484, \"customer_id\": 155383.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155383.0\"}}, \"rL3sQ4Ur3tQNivSu+s+A3A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 21366.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21366.0\"}}, \"LSmb834QdrGseWhJgOqB3A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 16896.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16896.0\"}}, \"qCdC3QwLjV6GYNuI6++H3A\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 83086.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83086.0\"}}, \"luYw49ThXPmJHnnREMyJ3A\": {\"metadata\": {\"community_id\": 400, \"customer_id\": 131426.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"131426.0\"}}, \"vWy0S3JkUaZezamXjZGr3A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 156878.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156878.0\"}}, \"EBC83dLOPfyZ6CgyHfS33A\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 30793.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30793.0\"}}, \"n4RzrfSaNuZhs0nJCUy93A\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 3667.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3667.0\"}}, \"vxqJKZeQ2Vvx7xXFybjU3A\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 191904.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191904.0\"}}, \"b5hCRi7CHNEVt5U7QPDY3A\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 180669.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180669.0\"}}, \"QGgfp0R2eZB+GeRcldbr3A\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 123121.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123121.0\"}}, \"PrFs5bxt6PWZ7A7m8WT73A\": {\"metadata\": {\"community_id\": 433, \"customer_id\": 187109.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187109.0\"}}, \"rbPtcSfWqHkkTq1H9XUV3Q\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 52025.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52025.0\"}}, \"aFm47kcWDzPz7Wqd9p8m3Q\": {\"metadata\": {\"community_id\": 45, \"customer_id\": 25137.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25137.0\"}}, \"EdXT816QZBfXGmfl0EIs3Q\": {\"metadata\": {\"community_id\": 365, \"customer_id\": 79637.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79637.0\"}}, \"zn3v+4i0Sftl8cICrCEv3Q\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 156450.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156450.0\"}}, \"MQPdmGkC0zRnm1rkJvU43Q\": {\"metadata\": {\"community_id\": 216, \"customer_id\": 50111.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50111.0\"}}, \"k+P5VcOaZtVHG+bmx8RO3Q\": {\"metadata\": {\"community_id\": 21, \"customer_id\": 7855.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7855.0\"}}, \"e/a+enA4pnyYG3utbQBY3Q\": {\"metadata\": {\"community_id\": 444, \"customer_id\": 134985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134985.0\"}}, \"BZ9LMeimyr0YWPJ0IsRj3Q\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 189530.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189530.0\"}}, \"pegI6X4Bu+bbTMgjISqE3Q\": {\"metadata\": {\"community_id\": 548, \"customer_id\": 167626.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167626.0\"}}, \"4oguTPOWhhe1/AWJ+xWz3Q\": {\"metadata\": {\"community_id\": 417, \"customer_id\": 74582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74582.0\"}}, \"pMfrOXJD/g4uwkoIH3y23Q\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 76885.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76885.0\"}}, \"8WN1NiIQPhTV+ZS87Mq43Q\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 80011.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"80011.0\"}}, \"V8ksPyfaupEEfgw8dUrT3Q\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 157425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157425.0\"}}, \"6U2XGydHRg50tnJ3g1rb3Q\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 27605.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27605.0\"}}, \"SmyQ4JHD7+SEeH4ITXT13Q\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 134367.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134367.0\"}}, \"wBpP5H4NcclejiuYfAsH3g\": {\"metadata\": {\"community_id\": 164, \"customer_id\": 27990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27990.0\"}}, \"7Lkk4/i0RsX0pZPWuSQ+3g\": {\"metadata\": {\"community_id\": 33, \"customer_id\": 128414.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"128414.0\"}}, \"ogtreaWirNMWiQt6NBNF3g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 19856.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19856.0\"}}, \"bUm8ndxdpk/K+EnRPsxM3g\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 189681.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189681.0\"}}, \"ifErMyAVjoUcEphHINV83g\": {\"metadata\": {\"community_id\": 388, \"customer_id\": 153587.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153587.0\"}}, \"hKdbfGbrvmmwC8+BbLia3g\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 194923.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194923.0\"}}, \"kx3qpS4wFrfj4AUSvD273g\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 5352.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5352.0\"}}, \"mcallpj5pQ42vQPCDSTb3g\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 76273.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76273.0\"}}, \"qYX/hJ1iKWEAkuu9BK/y3g\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 34749.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34749.0\"}}, \"wgnKCuVk0397zKbR5iz43g\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 53878.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53878.0\"}}, \"C42qArnqlgCXYV5Eb3YR3w\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 171658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171658.0\"}}, \"hMo5gNfTHyj3lOFtJAwj3w\": {\"metadata\": {\"community_id\": 212, \"customer_id\": 53199.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53199.0\"}}, \"lnsdRCpfQaAQ/sNzVzgm3w\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 28778.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28778.0\"}}, \"BXpeYYaO1qQF8B0NEv4r3w\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 50020.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50020.0\"}}, \"I7yLN7s/WeYO56T867I33w\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 133486.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133486.0\"}}, \"0t6hQrq58/AjvNmfKQJA3w\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 68733.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68733.0\"}}, \"RM6AZcUBqJk+lS+c9+dB3w\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 168789.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"168789.0\"}}, \"8zxchcDckT1281RKsWBF3w\": {\"metadata\": {\"community_id\": 311, \"customer_id\": 53427.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"53427.0\"}}, \"eof82uJ+FIvvh5PWSJZF3w\": {\"metadata\": {\"community_id\": 434, \"customer_id\": 163724.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163724.0\"}}, \"iiHdIj3dYCnLmrkXpUxV3w\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 180648.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180648.0\"}}, \"w7AN2URAar7AQyqiyJ5h3w\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 169440.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169440.0\"}}, \"ZsXj1rezqrBl2BtRb/pv3w\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 21535.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21535.0\"}}, \"jWO2RP4ylPUUhglRRs1y3w\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 114792.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114792.0\"}}, \"jv+QLRmhrtNe/K3zwfC03w\": {\"metadata\": {\"community_id\": 385, \"customer_id\": 88781.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88781.0\"}}, \"RU7ImjsrRJsKlzFRmKjN3w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 108534.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108534.0\"}}, \"JQF9x7q7foGGWrdOMznT3w\": {\"metadata\": {\"community_id\": 247, \"customer_id\": 151636.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151636.0\"}}, \"uc+Wd5vnGQDGlFDnpkze3w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 106377.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106377.0\"}}, \"cyZ5Pkk5ztmXzP61SVHf3w\": {\"metadata\": {\"community_id\": 30, \"customer_id\": 132640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132640.0\"}}, \"d7gA8hz1s23obdi8bo7s3w\": {\"metadata\": {\"community_id\": 326, \"customer_id\": 164300.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164300.0\"}}, \"vfR6i2mpCYgIbWLbkuX03w\": {\"metadata\": {\"community_id\": 258, \"customer_id\": 178896.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178896.0\"}}, \"AWjelWpqAs1TTbdNOEv63w\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 70973.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70973.0\"}}, \"fGRC6V2KP/aLwu7ryLIH4A\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 159893.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159893.0\"}}, \"yW3srrSTsNB2YpFbKqcI4A\": {\"metadata\": {\"community_id\": 322, \"customer_id\": 171235.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171235.0\"}}, \"+z27pdsw9ziRL7iqccgQ4A\": {\"metadata\": {\"community_id\": 524, \"customer_id\": 127117.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127117.0\"}}, \"z74I6YSnuYW7jPenY9cb4A\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 4600.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"4600.0\"}}, \"Df0dOb7XVmqj7vlzc20y4A\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 111666.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111666.0\"}}, \"IzWwQQvk67Hujjt0zNQ74A\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 176388.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176388.0\"}}, \"Ek+y8Dv6MgaaKLo1u1FL4A\": {\"metadata\": {\"community_id\": 377, \"customer_id\": 79071.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79071.0\"}}, \"lGkpU3/jy713soPYjV1X4A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 45600.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45600.0\"}}, \"6m9tGrKN+j3fMpyWX+dk4A\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 41619.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41619.0\"}}, \"iLCK0JeQAw5z+bYWs/914A\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 46329.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46329.0\"}}, \"2af10RCETu3QPCGmsHF+4A\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 88364.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88364.0\"}}, \"6jhFejUN6c7Aff2g3e674A\": {\"metadata\": {\"community_id\": 551, \"customer_id\": 120029.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120029.0\"}}, \"CqoXzfpGmzyXa3+Qf/nb4A\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 16865.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16865.0\"}}, \"pzuucJl3E3Cj8Dvv2sjs4A\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 33263.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33263.0\"}}, \"Ad2FQPLN06d20a77mVj34A\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 186256.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186256.0\"}}, \"j6By1U2pa9tCpe2vghUI4Q\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 144254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144254.0\"}}, \"v8VP8XKjxrPYZLyLtott4Q\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 40599.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40599.0\"}}, \"jlP5eV/l50w203+qmY934Q\": {\"metadata\": {\"community_id\": 137, \"customer_id\": 15376.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15376.0\"}}, \"IWWaiBa/jxZXyRG8dtN64Q\": {\"metadata\": {\"community_id\": 173, \"customer_id\": 104999.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104999.0\"}}, \"75GLam0GiNbHonLi9pd/4Q\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 72235.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72235.0\"}}, \"aPDfJ/RktssG6+PgDXeC4Q\": {\"metadata\": {\"community_id\": 249, \"customer_id\": 124382.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124382.0\"}}, \"kY61IiZ5s0vlBeduAWKr4Q\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 187489.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"187489.0\"}}, \"GlcKEh14eBpQ2/SFLeSt4Q\": {\"metadata\": {\"community_id\": 513, \"customer_id\": 114755.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114755.0\"}}, \"aR1c8SzxQDZLCwWHtvut4Q\": {\"metadata\": {\"community_id\": 182, \"customer_id\": 19838.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19838.0\"}}, \"nNdeLertJElPQpss2WS+4Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 12826.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12826.0\"}}, \"0J6oEUNhkVYrIsWJGBnL4Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 97848.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97848.0\"}}, \"eXnfZLXLieBorLzxKlLM4Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 103455.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"103455.0\"}}, \"mJoSuOtK1NC4MEDpqX/U4Q\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 7858.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7858.0\"}}, \"R6b4LdI57QEcTyehRwfo4Q\": {\"metadata\": {\"community_id\": 543, \"customer_id\": 163461.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163461.0\"}}, \"8RvOVn53HohruwyrXukI4g\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 167436.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167436.0\"}}, \"ze9Ajo7bQIrDR2Q61Vkf4g\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 6757.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"6757.0\"}}, \"ofSL6fj3xO5/y83Iczo74g\": {\"metadata\": {\"community_id\": 141, \"customer_id\": 194410.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194410.0\"}}, \"cCPz7uMZwRbQ3ki4aClO4g\": {\"metadata\": {\"community_id\": 453, \"customer_id\": 95326.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95326.0\"}}, \"bPIwjFI4aO3BnDDiSWmD4g\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 40235.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40235.0\"}}, \"S0cvWu7kth8Hv99QFfiW4g\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 28799.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28799.0\"}}, \"qKdc7yaOfDNQ3Ioddlqw4g\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 135661.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135661.0\"}}, \"2LHI1R6SjODg/VQK0mSy4g\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 183641.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183641.0\"}}, \"X+ETh+ba1MHT0Np6yw/i4g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 95647.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95647.0\"}}, \"XsBDmmlxAWof97JjGRrn4g\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 3603.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3603.0\"}}, \"1swWkYMcwILy7Fx6Zpvz4g\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 190219.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"190219.0\"}}, \"Ggedp8qPy5kyWh6extUQ4w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 175277.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"175277.0\"}}, \"zt6YnIKyd/GMP/yZsi074w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 174701.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174701.0\"}}, \"Q9DbiBLOUlsRxS7bC1lH4w\": {\"metadata\": {\"community_id\": 251, \"customer_id\": 156591.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156591.0\"}}, \"sJ1m92koFlNMH0NSe7dO4w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 134019.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134019.0\"}}, \"jU2QIPHqLFIT2TilhstV4w\": {\"metadata\": {\"community_id\": 85, \"customer_id\": 139230.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139230.0\"}}, \"JS6lrSB32ihzfJ1UR7xw4w\": {\"metadata\": {\"community_id\": 499, \"customer_id\": 185240.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185240.0\"}}, \"vlSMwSjwxW6VB+DOD3V94w\": {\"metadata\": {\"community_id\": 551, \"customer_id\": 94952.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94952.0\"}}, \"aBJgsjUUxSbjLvqC8G6w4w\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 176121.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176121.0\"}}, \"8WlJWpfvSrkQ4/HN21rW4w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 2906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2906.0\"}}, \"96AWJdjtpTR2ckzh2+cg5A\": {\"metadata\": {\"community_id\": 369, \"customer_id\": 3963.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3963.0\"}}, \"MtpjJ6XcmH6qPnAjbjY75A\": {\"metadata\": {\"community_id\": 29, \"customer_id\": 28088.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28088.0\"}}, \"OPbynxn1A1QV0hBtvMlC5A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 29043.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29043.0\"}}, \"+cNenZQZhgXXSMyomN525A\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 170648.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170648.0\"}}, \"yow/PWjTeFNHBFPlDU175A\": {\"metadata\": {\"community_id\": 552, \"customer_id\": 145942.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145942.0\"}}, \"CrXNrrAB8QyAfPxNLYKG5A\": {\"metadata\": {\"community_id\": 450, \"customer_id\": 184693.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"184693.0\"}}, \"cs5JGUqcJ2G/Y8pV2hyj5A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 2139.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2139.0\"}}, \"e3FcS3oHYa8J5QfMPcqk5A\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 35808.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35808.0\"}}, \"6W3ZK4Q6x6D3AFIqq66p5A\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 126899.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126899.0\"}}, \"cymvFwyYZ7rZh6oQjfmq5A\": {\"metadata\": {\"community_id\": 436, \"customer_id\": 147266.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147266.0\"}}, \"z+Erzv6FAAAlpHglkqjD5A\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 60900.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60900.0\"}}, \"nQbo89EjFqendC5KI+7G5A\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 16000.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16000.0\"}}, \"R9reG8IlWahr3kb1OVLP5A\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 7020.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7020.0\"}}, \"JsbwtB1EcoPAvi4PBiPR5A\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 134552.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134552.0\"}}, \"nFb5wObag+REOsnnoRX95A\": {\"metadata\": {\"community_id\": 99, \"customer_id\": 134821.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134821.0\"}}, \"7B3pLJTfNbhA56BMabUB5Q\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 57050.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57050.0\"}}, \"rqiARZpwzVbzZK73amgN5Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 96465.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96465.0\"}}, \"oUJBjKPhjCGJybVjNgQS5Q\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 71658.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71658.0\"}}, \"pe7UfIlXV+bs378EUzk/5Q\": {\"metadata\": {\"community_id\": 84, \"customer_id\": 162517.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162517.0\"}}, \"TCOdjfPB4zlgBAP2zQBP5Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 133193.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133193.0\"}}, \"CYlt9MHJ4J2C75oqnK5X5Q\": {\"metadata\": {\"community_id\": 540, \"customer_id\": 65097.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65097.0\"}}, \"ZU65SFXBVuu8L57SNcJ25Q\": {\"metadata\": {\"community_id\": 409, \"customer_id\": 179200.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179200.0\"}}, \"hy9P4OdYnBfVowDKaFx75Q\": {\"metadata\": {\"community_id\": 533, \"customer_id\": 130001.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130001.0\"}}, \"JnvphYTbY0KnOUfWIwmU5Q\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 91397.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"91397.0\"}}, \"o8icG02ljIVugMJm5yWV5Q\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 126808.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126808.0\"}}, \"uwrCTZHxVx7vgzrTvSCk5Q\": {\"metadata\": {\"community_id\": 291, \"customer_id\": 89113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89113.0\"}}, \"7wGu38lzo0Yvxy5GLpCk5Q\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 54306.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"54306.0\"}}, \"9V9YsR5v4buQUr0rs0XJ5Q\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 67868.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67868.0\"}}, \"zVKc5Pn9CM7t8WCnSUvK5Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 36663.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36663.0\"}}, \"8+SDMPAJnM5smfsvJtvU5Q\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 139210.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"139210.0\"}}, \"7pHWyJ9eZRLIiBaTaCHx5Q\": {\"metadata\": {\"community_id\": 373, \"customer_id\": 180346.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180346.0\"}}, \"xYqY6+nbtRNwS10J4bsI5g\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 177664.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"177664.0\"}}, \"jHAJcxhvB/SV+T/mOYoN5g\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 61926.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61926.0\"}}, \"1TyGrvk8SzqnwelG70YR5g\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 150154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150154.0\"}}, \"8qqjl2xkJE59URBcF20x5g\": {\"metadata\": {\"community_id\": 193, \"customer_id\": 125688.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125688.0\"}}, \"yh404VRB85qtz9EJBxRg5g\": {\"metadata\": {\"community_id\": 443, \"customer_id\": 100814.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100814.0\"}}, \"9kEfT969BAAcMsgbk9Cq5g\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 25748.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25748.0\"}}, \"4OBgakItKw3fodKU1F695g\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 159210.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159210.0\"}}, \"FTana0mhDAQ7pDlNgeTo5g\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 29179.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29179.0\"}}, \"zF5RWzd/hWtBb1PxEuX85g\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 2653.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2653.0\"}}, \"b5xBGTs/P8P/y3nzl3AF5w\": {\"metadata\": {\"community_id\": 472, \"customer_id\": 74154.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74154.0\"}}, \"ODLi5SBwNecxZWLF9IQr5w\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 170260.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170260.0\"}}, \"ZPZgl2SWzho28I+rPXI85w\": {\"metadata\": {\"community_id\": 233, \"customer_id\": 116260.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116260.0\"}}, \"UREpM2NrwJ3mDq2vU5pV5w\": {\"metadata\": {\"community_id\": 102, \"customer_id\": 159243.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159243.0\"}}, \"1GcyNvq3jZbe4TsvLsCH5w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 72533.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"72533.0\"}}, \"DQOcWsYX6ai57NZ4jqyY5w\": {\"metadata\": {\"community_id\": 360, \"customer_id\": 198270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"198270.0\"}}, \"bkqQRjjzTNbHJ7cOrH+65w\": {\"metadata\": {\"community_id\": 545, \"customer_id\": 107270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"107270.0\"}}, \"9Vql7Mlk/vvWRyGpTsvc5w\": {\"metadata\": {\"community_id\": 383, \"customer_id\": 106961.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106961.0\"}}, \"4znuuTThxX8nevY99oHk5w\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 71078.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71078.0\"}}, \"9kcQWmhhEp5EveGkbaTs5w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 777.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"777.0\"}}, \"ZRNoNQxBeXtO+lXWqSXw5w\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 111969.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111969.0\"}}, \"20HOk3v2PjQqD5WCqjcF6A\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 58432.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58432.0\"}}, \"FuObJ7wvtRHTUJ+/118I6A\": {\"metadata\": {\"community_id\": 539, \"customer_id\": 24503.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"24503.0\"}}, \"D9pzXh+m3X+Q11g+VAoQ6A\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 36216.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36216.0\"}}, \"MLDh6bSGi6PSwySBAYEg6A\": {\"metadata\": {\"community_id\": 432, \"customer_id\": 7479.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7479.0\"}}, \"BqRKgn0/xYzfcP4hJf0j6A\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 172212.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172212.0\"}}, \"JP3yhcbiuU7ifkiJqEgw6A\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 159532.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159532.0\"}}, \"QEht9uW34xjqCjer4vFM6A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 110928.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"110928.0\"}}, \"kupGrdK+N6ZXbgVOCJGI6A\": {\"metadata\": {\"community_id\": 492, \"customer_id\": 140148.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140148.0\"}}, \"yA42YJjumsokSSLXucqU6A\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 39300.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39300.0\"}}, \"G1snS5Vz0lVn2WsUSlOh6A\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 2652.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2652.0\"}}, \"6woUhm96mgbzRsURDIij6A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 178510.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178510.0\"}}, \"Ri+0Jy7gEDnrphImzdan6A\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 65282.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"65282.0\"}}, \"rToxk4r0uYkTlZK66ha06A\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 154423.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154423.0\"}}, \"tPGsf2lNyo/YwJKk//Xn6A\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 154157.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154157.0\"}}, \"AheEjR6jraasDVl7HQ0q6Q\": {\"metadata\": {\"community_id\": 81, \"customer_id\": 35236.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35236.0\"}}, \"AC7hxczsJaJ2uIOIqoo66Q\": {\"metadata\": {\"community_id\": 550, \"customer_id\": 132314.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132314.0\"}}, \"RrwVqK/gCHzzTMUpXDhB6Q\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 124892.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124892.0\"}}, \"Wbuc7nVa2E5KBLrpb9Rr6Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 51210.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"51210.0\"}}, \"QTkc8476vXtqFJNyISCv6Q\": {\"metadata\": {\"community_id\": 179, \"customer_id\": 123397.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123397.0\"}}, \"Fdf8JL4Yug+BKZDs2me/6Q\": {\"metadata\": {\"community_id\": 514, \"customer_id\": 13155.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"13155.0\"}}, \"/D6LrHV3O/2uD7GGDRXj6Q\": {\"metadata\": {\"community_id\": 330, \"customer_id\": 157333.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157333.0\"}}, \"TbsMX0lpn0ca3Jbu0oDj6Q\": {\"metadata\": {\"community_id\": 415, \"customer_id\": 99141.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99141.0\"}}, \"jnYl9d4UZUupzck1m5Xl6Q\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 179645.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"179645.0\"}}, \"xmCrALNj7UEjOj1fRMfp6Q\": {\"metadata\": {\"community_id\": 350, \"customer_id\": 11245.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11245.0\"}}, \"AvVCWm591ZvQ6DEW2qb+6Q\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 95359.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"95359.0\"}}, \"BEjSdCilxicLKERRH2kM6g\": {\"metadata\": {\"community_id\": 345, \"customer_id\": 182819.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182819.0\"}}, \"7RXVddCVGk1aSOf5BMkg6g\": {\"metadata\": {\"community_id\": 274, \"customer_id\": 50028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50028.0\"}}, \"RuZEZek+dIdNb16T8TQk6g\": {\"metadata\": {\"community_id\": 390, \"customer_id\": 199720.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199720.0\"}}, \"Hleul4MTT22k47YOIAou6g\": {\"metadata\": {\"community_id\": 47, \"customer_id\": 33412.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"33412.0\"}}, \"IpE9fW8G0hjWR87t7DYy6g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 151497.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151497.0\"}}, \"WMgcdy+BnPYK8Xma4/5A6g\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 17680.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17680.0\"}}, \"O/m49NG+OSq7jZLZYq9E6g\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 42439.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42439.0\"}}, \"RSZUgKf+wntpgqok5ehF6g\": {\"metadata\": {\"community_id\": 396, \"customer_id\": 176785.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176785.0\"}}, \"PyEwC8P2XWgBNOn//O9W6g\": {\"metadata\": {\"community_id\": 342, \"customer_id\": 52035.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52035.0\"}}, \"tmZPh+CU+d/qziRFshhf6g\": {\"metadata\": {\"community_id\": 211, \"customer_id\": 158571.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158571.0\"}}, \"fl4EFQq7n5+GbI3MLNGA6g\": {\"metadata\": {\"community_id\": 549, \"customer_id\": 16264.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"16264.0\"}}, \"4hgZUR2UUQ4ngEjM6puM6g\": {\"metadata\": {\"community_id\": 546, \"customer_id\": 104013.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"104013.0\"}}, \"uoq9y01xGOC/8QgrrSih6g\": {\"metadata\": {\"community_id\": 41, \"customer_id\": 132479.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132479.0\"}}, \"H07w+dzMUBY1Tb8aYnul6g\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 98226.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98226.0\"}}, \"6suweX+9HNHlp9Z3oC+26g\": {\"metadata\": {\"community_id\": 306, \"customer_id\": 405.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"405.0\"}}, \"WNt4O+KU1Es4d3huye/V6g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 151371.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151371.0\"}}, \"KlNDoIf7EQkwaCaUTuTr6g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 199956.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199956.0\"}}, \"9pyAHATD/zmm5A0TXWbt6g\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 194163.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194163.0\"}}, \"DoWrGTWQg6VqcUOPqKQA6w\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 176504.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176504.0\"}}, \"PnXhu4rcpkk+qyLW1koE6w\": {\"metadata\": {\"community_id\": 553, \"customer_id\": 52467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52467.0\"}}, \"SU/6PQhlsHPBRc4pxcQR6w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 136962.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136962.0\"}}, \"eYfvAr+UfKq1aCZN2x4y6w\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 50690.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50690.0\"}}, \"NSXGAgdB/FWrkkUOClxL6w\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 180894.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180894.0\"}}, \"NjVhdiC4UmNJkZgJOcpn6w\": {\"metadata\": {\"community_id\": 109, \"customer_id\": 18672.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"18672.0\"}}, \"LsulSTGDU78TB0LMXI5p6w\": {\"metadata\": {\"community_id\": 86, \"customer_id\": 59655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"59655.0\"}}, \"Q6evY2lIk1V0daivfGCf6w\": {\"metadata\": {\"community_id\": 277, \"customer_id\": 138586.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138586.0\"}}, \"EtI18D9Vh8zUwjfqDOPC6w\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 37802.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"37802.0\"}}, \"qOLZfj6vsjEJBm5kg+Dv6w\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 122570.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122570.0\"}}, \"PWbZ/xn60ZHGlQtufbHz6w\": {\"metadata\": {\"community_id\": 53, \"customer_id\": 133972.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133972.0\"}}, \"wZSNMWPhftzSTbrv/fr26w\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 150920.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150920.0\"}}, \"JboAWyXnCoash2wb7PAb7A\": {\"metadata\": {\"community_id\": 108, \"customer_id\": 105032.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105032.0\"}}, \"9i5R1KEvmESEXUfnrcMo7A\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 52837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52837.0\"}}, \"Q67OfOXxwmAszDzGwwMu7A\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 3187.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3187.0\"}}, \"+SvqYAQ7ewPmjmJjL0407A\": {\"metadata\": {\"community_id\": 473, \"customer_id\": 172318.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172318.0\"}}, \"PL1tDqyryL2f0TlTwStn7A\": {\"metadata\": {\"community_id\": 91, \"customer_id\": 8680.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"8680.0\"}}, \"Arwkdm13CeJyyFNcAAd37A\": {\"metadata\": {\"community_id\": 148, \"customer_id\": 27765.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27765.0\"}}, \"rZdJjoqtPTUMWxcXz3eV7A\": {\"metadata\": {\"community_id\": 553, \"customer_id\": 70764.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70764.0\"}}, \"Yxer1BQHw8ayI4coIJWc7A\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 134270.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134270.0\"}}, \"irv2V2npI9brdjcEY6Oj7A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 11499.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11499.0\"}}, \"9YW+EyakNJaWXROQrcCs7A\": {\"metadata\": {\"community_id\": 538, \"customer_id\": 74244.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74244.0\"}}, \"iK9ayHc/AXaY84l64fm17A\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 161179.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161179.0\"}}, \"XM0o8pv01Pfg5sFKZWng7A\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 173730.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173730.0\"}}, \"gX5Pg2JVF4BoVkEjHysF7Q\": {\"metadata\": {\"community_id\": 399, \"customer_id\": 114553.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114553.0\"}}, \"sC8E7ogEQy46R5hXT18S7Q\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 182339.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182339.0\"}}, \"idWTK0b8n3wVMKQEAfsV7Q\": {\"metadata\": {\"community_id\": 323, \"customer_id\": 157273.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157273.0\"}}, \"I3druwziJ9VuG37wcrxL7Q\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 45857.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45857.0\"}}, \"0vcRHc9EWC9/1eD5IRNO7Q\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 79122.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"79122.0\"}}, \"2t1yVN7Z9uNwoEmgU8tS7Q\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 50818.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50818.0\"}}, \"lDoIy/LAU8b2oJsLZrxV7Q\": {\"metadata\": {\"community_id\": 38, \"customer_id\": 194836.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194836.0\"}}, \"CdBQ4Oo4C+AcTcnfb21i7Q\": {\"metadata\": {\"community_id\": 504, \"customer_id\": 116582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116582.0\"}}, \"91ATqeatEnZnOl7GYatz7Q\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 85391.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85391.0\"}}, \"xJ4etXa+11viKMelSA2I7Q\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 100948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"100948.0\"}}, \"fRdioxsCKtEz2G0T13qL7Q\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 109396.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109396.0\"}}, \"eRxPWjT//2+yUjJyJK+N7Q\": {\"metadata\": {\"community_id\": 72, \"customer_id\": 93883.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93883.0\"}}, \"G0HrHwXCAPzndCm/PFCQ7Q\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 162370.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162370.0\"}}, \"aU8RxAk5dpz79KvpKp2W7Q\": {\"metadata\": {\"community_id\": 250, \"customer_id\": 17260.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17260.0\"}}, \"kpts1Dex2CaSJVU8vdHE7Q\": {\"metadata\": {\"community_id\": 110, \"customer_id\": 42247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42247.0\"}}, \"JdHgLTmCpdKriVMq73fU7Q\": {\"metadata\": {\"community_id\": 331, \"customer_id\": 19671.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19671.0\"}}, \"Q4g51W5/PH9o2PLu7gz07Q\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 98926.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"98926.0\"}}, \"D8DysmbmW6oUH3yRrTMK7g\": {\"metadata\": {\"community_id\": 475, \"customer_id\": 34997.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34997.0\"}}, \"L64aCDPhMOIOwxJW4cYO7g\": {\"metadata\": {\"community_id\": 449, \"customer_id\": 183425.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183425.0\"}}, \"rWQC/DPCbi8TmSYUD9IW7g\": {\"metadata\": {\"community_id\": 65, \"customer_id\": 15692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15692.0\"}}, \"ohyQWYf1WFaWLvKobSUl7g\": {\"metadata\": {\"community_id\": 519, \"customer_id\": 96777.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"96777.0\"}}, \"sItUzgzzeSRXDdp40okl7g\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 43450.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43450.0\"}}, \"6Yaj5oRg5gSr4WRlWPo17g\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 58672.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"58672.0\"}}, \"yBjDJxBREU7HWT+JDb5e7g\": {\"metadata\": {\"community_id\": 447, \"customer_id\": 161084.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161084.0\"}}, \"k5j3NuK3cCPLJA+hN4xu7g\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 105417.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"105417.0\"}}, \"IQOr8oWTplyMdqllGFB/7g\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 47879.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47879.0\"}}, \"7BPRKy4C5yefrrHo632x7g\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 233.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"233.0\"}}, \"WbIwPdpoyybcirBTSc677g\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 22745.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22745.0\"}}, \"+XX4ipo2EDh1Vw861N3B7g\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 122221.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"122221.0\"}}, \"h+88TEDu69e76yofbFUC7w\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 61249.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61249.0\"}}, \"LFxJPJkguSiDBpErKUVQ7w\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 182665.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182665.0\"}}, \"8FaU6NkPlqE9UM1z6SSa7w\": {\"metadata\": {\"community_id\": 285, \"customer_id\": 154537.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154537.0\"}}, \"T3l0u3ldOx9jtSUKFA+k7w\": {\"metadata\": {\"community_id\": 174, \"customer_id\": 50608.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"50608.0\"}}, \"XxgcW3KOOwIwxZx0l+ao7w\": {\"metadata\": {\"community_id\": 425, \"customer_id\": 23906.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23906.0\"}}, \"lwXZItcbXUc7Z5GW8Cyu7w\": {\"metadata\": {\"community_id\": 464, \"customer_id\": 12981.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12981.0\"}}, \"CbkkslpELDMcPtNI+j667w\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 11325.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11325.0\"}}, \"wXuMAPhfrJpUDgsV2ojS7w\": {\"metadata\": {\"community_id\": 467, \"customer_id\": 169546.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169546.0\"}}, \"gzeycB4zCQKXkJ6WXWTl7w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 161113.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"161113.0\"}}, \"SfINEI59msrKitc7M6Ln7w\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 153705.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153705.0\"}}, \"HHgt/4RevkljghcN58sE8A\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 97447.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97447.0\"}}, \"q7vfrx1Y2yIt4jU/MTVU8A\": {\"metadata\": {\"community_id\": 170, \"customer_id\": 71118.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"71118.0\"}}, \"9el4Yb1FIodeYe4QeztY8A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 38112.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38112.0\"}}, \"GcCIv1eDsDxcnxww5BRk8A\": {\"metadata\": {\"community_id\": 186, \"customer_id\": 118985.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118985.0\"}}, \"+vQfJbdbrfUr7z53avxu8A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 182643.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"182643.0\"}}, \"qIWaissn6WMBkpy7C7Z28A\": {\"metadata\": {\"community_id\": 180, \"customer_id\": 151309.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151309.0\"}}, \"9Pjx+U21nuLt9VnXHy6I8A\": {\"metadata\": {\"community_id\": 349, \"customer_id\": 102162.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"102162.0\"}}, \"7WZO2jjMqEHtvBBYv4mK8A\": {\"metadata\": {\"community_id\": 318, \"customer_id\": 133660.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"133660.0\"}}, \"B6rKl7EmbpqDIvSaOn+W8A\": {\"metadata\": {\"community_id\": 135, \"customer_id\": 86577.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86577.0\"}}, \"Jk7T08xaG4CWAcdaiJqg8A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 172794.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172794.0\"}}, \"az7UoLqYUBxUBYpQRZ+k8A\": {\"metadata\": {\"community_id\": 544, \"customer_id\": 143842.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143842.0\"}}, \"AT3qrNx2AwwIt990BkGz8A\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 3590.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"3590.0\"}}, \"+eS3brz3jZWT+U9Z0Na78A\": {\"metadata\": {\"community_id\": 43, \"customer_id\": 261.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"261.0\"}}, \"w4Gwasum6XPWxFODHnnT8A\": {\"metadata\": {\"community_id\": 162, \"customer_id\": 178396.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"178396.0\"}}, \"ZhZVkXk5CkcWX5ZOOMDl8A\": {\"metadata\": {\"community_id\": 310, \"customer_id\": 26594.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26594.0\"}}, \"rlfr5T7gVr1mF/7T01QP8Q\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 170513.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"170513.0\"}}, \"DmkQdDNsbUmmMLkddnQT8Q\": {\"metadata\": {\"community_id\": 127, \"customer_id\": 140396.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"140396.0\"}}, \"Q+4EDqYZPaAgWbykhywf8Q\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 101681.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"101681.0\"}}, \"W08SC5+MMRtUmoI8eb8p8Q\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 183250.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183250.0\"}}, \"LW7RUp4WpBDp3yrEPkJV8Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 185370.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"185370.0\"}}, \"felsQ1UdIZxKSSJZnxxh8Q\": {\"metadata\": {\"community_id\": 382, \"customer_id\": 1857.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1857.0\"}}, \"2MVXq8uLdwsJtUdF9Q1v8Q\": {\"metadata\": {\"community_id\": 527, \"customer_id\": 30400.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"30400.0\"}}, \"fNckhogPhWH5mD6GuOx38Q\": {\"metadata\": {\"community_id\": 284, \"customer_id\": 41564.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"41564.0\"}}, \"bXt54Mwr7PfZh3d4YYJ/8Q\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 11574.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"11574.0\"}}, \"1Obr3k6eda+LMdvKYYeK8Q\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 28990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"28990.0\"}}, \"zmKJzX//sBLtc3CjqO6M8Q\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 174682.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174682.0\"}}, \"gB2Nx5Ypjd0LXJEVbjiV8Q\": {\"metadata\": {\"community_id\": 67, \"customer_id\": 193166.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193166.0\"}}, \"92gCbscZjdcp5CNIO3Cd8Q\": {\"metadata\": {\"community_id\": 201, \"customer_id\": 26250.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26250.0\"}}, \"+SV4sfwaeMk9N7sb4Di38Q\": {\"metadata\": {\"community_id\": 222, \"customer_id\": 32421.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32421.0\"}}, \"tL8Oc0Tm9BAb2WU2KCrC8Q\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 159926.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159926.0\"}}, \"ttNA9EtrRO4vzKDbSnXp8Q\": {\"metadata\": {\"community_id\": 302, \"customer_id\": 77856.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"77856.0\"}}, \"xRIZCO6SRfXLOE0+vaXu8Q\": {\"metadata\": {\"community_id\": 343, \"customer_id\": 1929.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1929.0\"}}, \"qmYAqbFNd0dcizzEDHwK8g\": {\"metadata\": {\"community_id\": 532, \"customer_id\": 46810.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46810.0\"}}, \"3Ng3uPfQ3DOyUb7bZW0S8g\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 114012.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"114012.0\"}}, \"+tWCi7UnnHlKpwgxsZYw8g\": {\"metadata\": {\"community_id\": 543, \"customer_id\": 66323.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66323.0\"}}, \"Av+NJ6AdBIQWI6bttPc38g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 176592.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176592.0\"}}, \"Lr/YyivEgc6AEL9LZFQ58g\": {\"metadata\": {\"community_id\": 166, \"customer_id\": 171564.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"171564.0\"}}, \"DjoWz5wRHMv7J5CcM1FN8g\": {\"metadata\": {\"community_id\": 261, \"customer_id\": 106623.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106623.0\"}}, \"WFWWw2jQ8tZw5iRQSFNP8g\": {\"metadata\": {\"community_id\": 226, \"customer_id\": 136711.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136711.0\"}}, \"84cQ3j2fcrmCy4xje6xR8g\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 108560.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"108560.0\"}}, \"/++dgXP7Ji1DX6Jjqmpl8g\": {\"metadata\": {\"community_id\": 357, \"customer_id\": 19527.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19527.0\"}}, \"x6k18KHyhLwDGjL9tJ1o8g\": {\"metadata\": {\"community_id\": 238, \"customer_id\": 180824.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180824.0\"}}, \"ya2o5/Rbz4LKL7fJB/aH8g\": {\"metadata\": {\"community_id\": 16, \"customer_id\": 144467.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144467.0\"}}, \"rxcVniLDqVaT6evzgA+m8g\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 39482.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39482.0\"}}, \"VPe/WBhgMRDejNmchQGp8g\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 27181.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27181.0\"}}, \"Hz0AHLYlerZt66T6kgGt8g\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 176323.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"176323.0\"}}, \"pOLt7ElwS+F5q/0I72e28g\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 35689.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"35689.0\"}}, \"bkTpfRcqaOJ298DCRgK68g\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 66692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"66692.0\"}}, \"3vOibLjBb4VNYZOlRffs8g\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 120735.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120735.0\"}}, \"l5XDIvoOxlEM5vDuvZb/8g\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 188234.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"188234.0\"}}, \"cqM9tGYlXqAFmhSOz3cz8w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 109320.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109320.0\"}}, \"Nhtm09YjxapjrWGAhjE88w\": {\"metadata\": {\"community_id\": 97, \"customer_id\": 32543.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32543.0\"}}, \"bwWPWOOz5uHVBrqvXEpW8w\": {\"metadata\": {\"community_id\": 22, \"customer_id\": 156998.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"156998.0\"}}, \"HhV9VWKbsizXigvZATJX8w\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 181446.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"181446.0\"}}, \"TjSWBmQ46SH6wSdnCe5g8w\": {\"metadata\": {\"community_id\": 75, \"customer_id\": 136322.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"136322.0\"}}, \"w159VscyStCfuNPVMuBj8w\": {\"metadata\": {\"community_id\": 303, \"customer_id\": 167102.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167102.0\"}}, \"YSeBLUEND64U5fx2jVt88w\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 125447.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"125447.0\"}}, \"SqG/l6IbODdXxSygyTzS8w\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 164477.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164477.0\"}}, \"aewBFp5Orqz4bzZqctfT8w\": {\"metadata\": {\"community_id\": 276, \"customer_id\": 99873.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99873.0\"}}, \"xkCQC4UuNjDrwruLbTgC9A\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 145954.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145954.0\"}}, \"fNS5Dg9E+rY2v60BUkcE9A\": {\"metadata\": {\"community_id\": 57, \"customer_id\": 174201.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174201.0\"}}, \"+Uehy6uzLhVLgSMe+7wQ9A\": {\"metadata\": {\"community_id\": 534, \"customer_id\": 86115.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"86115.0\"}}, \"0FP+iQv1XrY7Of94fEgU9A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 27008.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27008.0\"}}, \"lstYZJhfvS9jBG5xm+8U9A\": {\"metadata\": {\"community_id\": 416, \"customer_id\": 173499.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"173499.0\"}}, \"4t1AHK2HFYcR5D9nIC0Y9A\": {\"metadata\": {\"community_id\": 160, \"customer_id\": 61538.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61538.0\"}}, \"PX0uMM9zOfkfjyAq6RMg9A\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 67688.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67688.0\"}}, \"6Q/OMdobhpcAL8bNzgFA9A\": {\"metadata\": {\"community_id\": 512, \"customer_id\": 138236.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138236.0\"}}, \"htQlzVTv1oTgctxDSfBI9A\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 55352.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"55352.0\"}}, \"KQfkDTCpE+13mWT03/1e9A\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 172298.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"172298.0\"}}, \"CThZPER+VAiHSpO3wsKG9A\": {\"metadata\": {\"community_id\": 119, \"customer_id\": 145356.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"145356.0\"}}, \"y49HkmqZsWWjpBlDEZSH9A\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 42209.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42209.0\"}}, \"I8/gD89DiH9csk/ZEjSV9A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 123342.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123342.0\"}}, \"MN7xyy9w1gl/dMjSgcew9A\": {\"metadata\": {\"community_id\": 496, \"customer_id\": 25048.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25048.0\"}}, \"lVZDXqF6yl10XUMzZzLN9A\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 81641.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"81641.0\"}}, \"UNcq6WxV761Qp8/suVLX9A\": {\"metadata\": {\"community_id\": 190, \"customer_id\": 199471.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199471.0\"}}, \"34S4/qPUMbfIiVg4qPcv9Q\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 19484.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19484.0\"}}, \"U3v3OOBqhXPTXAhsLPhL9Q\": {\"metadata\": {\"community_id\": 8, \"customer_id\": 196573.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"196573.0\"}}, \"Rtz5xYqf3eobdXs3wUh79Q\": {\"metadata\": {\"community_id\": 366, \"customer_id\": 7684.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7684.0\"}}, \"rYeKyIqBFeSZKrfVe3KU9Q\": {\"metadata\": {\"community_id\": 149, \"customer_id\": 192901.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"192901.0\"}}, \"earNIEZ8UXTMmJ3RjUfJ9Q\": {\"metadata\": {\"community_id\": 414, \"customer_id\": 189705.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"189705.0\"}}, \"Ou1odl5Hnptn3TUh/Xnw9Q\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 32036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32036.0\"}}, \"xbWKQYE6mafD8ye2m0H89Q\": {\"metadata\": {\"community_id\": 309, \"customer_id\": 147058.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"147058.0\"}}, \"cinjXKTI9MAJtco6S1n+9Q\": {\"metadata\": {\"community_id\": 14, \"customer_id\": 180631.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"180631.0\"}}, \"X+JG0+UOYlsa2OzMINsA9g\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 120247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"120247.0\"}}, \"qzW5fohBXdhHaVpKw/wW9g\": {\"metadata\": {\"community_id\": 304, \"customer_id\": 47669.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47669.0\"}}, \"jW7V0TO2LoawsPs4sppD9g\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 191036.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191036.0\"}}, \"zasWMA2ujUekpJ/0C/VH9g\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 132769.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"132769.0\"}}, \"mLUf20JHZo0y4cZdGEJL9g\": {\"metadata\": {\"community_id\": 278, \"customer_id\": 109513.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109513.0\"}}, \"W5vKZMcezwUnhC22O8hM9g\": {\"metadata\": {\"community_id\": 183, \"customer_id\": 22948.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22948.0\"}}, \"bGDOuVUdJKIu5Ixbo/hl9g\": {\"metadata\": {\"community_id\": 124, \"customer_id\": 47103.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47103.0\"}}, \"iDYq70C/dqdj+xr2nJmR9g\": {\"metadata\": {\"community_id\": 457, \"customer_id\": 159976.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"159976.0\"}}, \"MauRd73SPuaI/SsIA8Wh9g\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 7830.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"7830.0\"}}, \"p3hHahidj29YCDuFAGKz9g\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 49027.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49027.0\"}}, \"vDRBQBe5FIOF6UackNq59g\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 868.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"868.0\"}}, \"8E4XB9kLowELIYjeWrbT9g\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 92655.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92655.0\"}}, \"SW7VFc8aTUoC/Mh9jAjh9g\": {\"metadata\": {\"community_id\": 18, \"customer_id\": 193932.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"193932.0\"}}, \"8iXe8Rxo1mY3KR7nSIb99g\": {\"metadata\": {\"community_id\": 23, \"customer_id\": 43028.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43028.0\"}}, \"ARQKqak9qdhuK77IC6wK9w\": {\"metadata\": {\"community_id\": 39, \"customer_id\": 109967.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"109967.0\"}}, \"UmPwQU3QXSrVekUbTxop9w\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 144736.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144736.0\"}}, \"iFxq8blHvCT13CeFg1Uq9w\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 17740.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17740.0\"}}, \"gc13kItc+IZ6DRIGAC079w\": {\"metadata\": {\"community_id\": 107, \"customer_id\": 36720.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"36720.0\"}}, \"IMUJNk7CzjopvcMmzqpY9w\": {\"metadata\": {\"community_id\": 441, \"customer_id\": 85268.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"85268.0\"}}, \"BOc1xHBOTdSOq7ejXwNe9w\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 32254.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32254.0\"}}, \"p0boa2/V9lIl4dB2qQdk9w\": {\"metadata\": {\"community_id\": 78, \"customer_id\": 118137.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118137.0\"}}, \"M65c5Nr2OwUx4RrgWBt69w\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 40483.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"40483.0\"}}, \"oLmHykDqis1sd6wnFn+L9w\": {\"metadata\": {\"community_id\": 79, \"customer_id\": 164582.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164582.0\"}}, \"ooA+ANlPZHsTTGT2ER+g9w\": {\"metadata\": {\"community_id\": 114, \"customer_id\": 57298.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57298.0\"}}, \"kzUAXz7bYWQC2//Px2au9w\": {\"metadata\": {\"community_id\": 500, \"customer_id\": 152092.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152092.0\"}}, \"jV2svVJMSyO+sjV8yHa59w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 29679.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29679.0\"}}, \"vXN+LDp/laVyi1suSYO89w\": {\"metadata\": {\"community_id\": 100, \"customer_id\": 186614.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"186614.0\"}}, \"fwii0M7bzVssIDM+LpTE9w\": {\"metadata\": {\"community_id\": 118, \"customer_id\": 113443.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113443.0\"}}, \"lmCvKTCRZckGDMS8v1XR9w\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 195040.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"195040.0\"}}, \"M3mzslSGFKL89Hr6jj7Y9w\": {\"metadata\": {\"community_id\": 407, \"customer_id\": 1004.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"1004.0\"}}, \"kr3m2Rujat20L97MZk719w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 92893.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92893.0\"}}, \"rx7rNseK4tgtTGeyt8759w\": {\"metadata\": {\"community_id\": 208, \"customer_id\": 47444.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47444.0\"}}, \"ILLw32m9uRu0mMk194ka+A\": {\"metadata\": {\"community_id\": 161, \"customer_id\": 46780.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"46780.0\"}}, \"h37mnRkwndeMxNuIzr0k+A\": {\"metadata\": {\"community_id\": 74, \"customer_id\": 138127.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"138127.0\"}}, \"gHJfO8svh+gm3L4Lwbss+A\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 169814.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"169814.0\"}}, \"i1YhmqPsCV5G50aFCHtD+A\": {\"metadata\": {\"community_id\": 363, \"customer_id\": 14120.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"14120.0\"}}, \"hVK8NzQ7oT41nmHBitdj+A\": {\"metadata\": {\"community_id\": 554, \"customer_id\": 150625.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"150625.0\"}}, \"00+hT3AJnNlMB1LEokJt+A\": {\"metadata\": {\"community_id\": 489, \"customer_id\": 39515.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39515.0\"}}, \"J1g4OQI92LIr7/d8aT91+A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 61192.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"61192.0\"}}, \"6nVimOMEXjUysUG7JcyP+A\": {\"metadata\": {\"community_id\": 59, \"customer_id\": 106979.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"106979.0\"}}, \"W/xMOfCQTNSfmwDOYwfP+A\": {\"metadata\": {\"community_id\": 252, \"customer_id\": 34322.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"34322.0\"}}, \"Rg71KvMVmp7RPzqsdMHX+A\": {\"metadata\": {\"community_id\": 95, \"customer_id\": 174247.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"174247.0\"}}, \"1T2sFz5Oi3Wp2m3UyDTc+A\": {\"metadata\": {\"community_id\": 458, \"customer_id\": 45514.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"45514.0\"}}, \"d2qx8yj2Zh1IDP8WjIPe+A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 113411.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"113411.0\"}}, \"MJMUTT4JMMSyMzSkOKjr+A\": {\"metadata\": {\"community_id\": 154, \"customer_id\": 165096.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165096.0\"}}, \"s50Uk1EXn+VMFjiSTbju+A\": {\"metadata\": {\"community_id\": 243, \"customer_id\": 9697.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9697.0\"}}, \"ki2D2kbSKwtmj52dz5bw+A\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 126624.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126624.0\"}}, \"odc3xGllAo0CLlmOvS30+A\": {\"metadata\": {\"community_id\": 217, \"customer_id\": 154924.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"154924.0\"}}, \"iiF7p6VpUVIaVpsvU3UB+Q\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 42020.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42020.0\"}}, \"Po1F1afptpiGxInRk3sK+Q\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 124562.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"124562.0\"}}, \"r+f8AzuIChCT+43z1V4r+Q\": {\"metadata\": {\"community_id\": 192, \"customer_id\": 165374.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165374.0\"}}, \"I/O27hbD2ZdHsBYgQYVQ+Q\": {\"metadata\": {\"community_id\": 7, \"customer_id\": 56401.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"56401.0\"}}, \"/bOpgNw5PZsjwLRRUphn+Q\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 93241.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"93241.0\"}}, \"J9lncln67Ektsz70Jz1s+Q\": {\"metadata\": {\"community_id\": 9, \"customer_id\": 197692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197692.0\"}}, \"uutpyYx9BmxXdQaPX/yA+Q\": {\"metadata\": {\"community_id\": 390, \"customer_id\": 116101.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116101.0\"}}, \"KXsJCgCkQt7RulySZ6+H+Q\": {\"metadata\": {\"community_id\": 122, \"customer_id\": 25328.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"25328.0\"}}, \"r8kHtYO3piUAlwogK5+R+Q\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 115460.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115460.0\"}}, \"NW0G+AcQre0eRgnoS0q2+Q\": {\"metadata\": {\"community_id\": 541, \"customer_id\": 151820.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"151820.0\"}}, \"hh6NSnvkUKiF9tEcyxTk+Q\": {\"metadata\": {\"community_id\": 419, \"customer_id\": 197838.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"197838.0\"}}, \"RZ1gq+G6Ry3quch8vo8E+g\": {\"metadata\": {\"community_id\": 202, \"customer_id\": 62333.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"62333.0\"}}, \"7jyOu3xNAXh9K/BlvEEH+g\": {\"metadata\": {\"community_id\": 482, \"customer_id\": 15438.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"15438.0\"}}, \"WaZcaQu0SHC/mL5lo4gZ+g\": {\"metadata\": {\"community_id\": 356, \"customer_id\": 32284.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"32284.0\"}}, \"8dAZq6dnSSBoaukyGPkp+g\": {\"metadata\": {\"community_id\": 394, \"customer_id\": 12242.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12242.0\"}}, \"9Ym5cu26ZERosFfZto1n+g\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 88860.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88860.0\"}}, \"aA9DZNqpSuugH0fbqslt+g\": {\"metadata\": {\"community_id\": 168, \"customer_id\": 94498.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94498.0\"}}, \"rSNn/s244brhIQqf3dJ++g\": {\"metadata\": {\"community_id\": 376, \"customer_id\": 99640.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"99640.0\"}}, \"LIeJPRncazKd2mFj47eC+g\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 92026.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"92026.0\"}}, \"yXEVx+7BMBM9SJGPv2+Z+g\": {\"metadata\": {\"community_id\": 152, \"customer_id\": 43272.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43272.0\"}}, \"AF7PlX/ZzcbqbqppKNmq+g\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 9336.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"9336.0\"}}, \"NqodyajY7zmF5d3Dvz7o+g\": {\"metadata\": {\"community_id\": 362, \"customer_id\": 115153.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115153.0\"}}, \"9IPFunlVMTqnxWTnopQX+w\": {\"metadata\": {\"community_id\": 216, \"customer_id\": 5056.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5056.0\"}}, \"s7tM0RevRJ3A+NCTWbwY+w\": {\"metadata\": {\"community_id\": 73, \"customer_id\": 88091.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"88091.0\"}}, \"ghJksWt+/t2VYaCzm/Qs+w\": {\"metadata\": {\"community_id\": 511, \"customer_id\": 152863.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152863.0\"}}, \"tEeYd2NRrb/Qi528JuN1+w\": {\"metadata\": {\"community_id\": 305, \"customer_id\": 75323.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"75323.0\"}}, \"5qxQ32uiDgE9ejioUCp3+w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 57022.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57022.0\"}}, \"ZYIgMFU3qCf6nt4PPviA+w\": {\"metadata\": {\"community_id\": 163, \"customer_id\": 17628.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"17628.0\"}}, \"1K11RU9HVahHEfRalAKE+w\": {\"metadata\": {\"community_id\": 474, \"customer_id\": 74603.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"74603.0\"}}, \"TqzXbkZUYgz9e5gRVLOw+w\": {\"metadata\": {\"community_id\": 397, \"customer_id\": 130416.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"130416.0\"}}, \"13uhEOHN+3Mmm20+Zv+x+w\": {\"metadata\": {\"community_id\": 328, \"customer_id\": 117556.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"117556.0\"}}, \"P/7py6K8bExzhGEq33Cz+w\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 183741.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"183741.0\"}}, \"VUQ6UQmjN3zdCP6QZmfM+w\": {\"metadata\": {\"community_id\": 555, \"customer_id\": 162096.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"162096.0\"}}, \"nrmey3lo5Rp0gzeNirbf+w\": {\"metadata\": {\"community_id\": 172, \"customer_id\": 165105.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"165105.0\"}}, \"9mD9nAC16EqruXerVjPh+w\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 23957.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"23957.0\"}}, \"g8S6E8i7+yu/FTfvB/Hx+w\": {\"metadata\": {\"community_id\": 63, \"customer_id\": 127871.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127871.0\"}}, \"budk6JQt4FfXRTibqggC/A\": {\"metadata\": {\"community_id\": 268, \"customer_id\": 67726.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"67726.0\"}}, \"JER9Xy8EJNJsJUdMor0K/A\": {\"metadata\": {\"community_id\": 82, \"customer_id\": 155052.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"155052.0\"}}, \"Llcr5KlFvbooWVvHhDsk/A\": {\"metadata\": {\"community_id\": 200, \"customer_id\": 47258.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47258.0\"}}, \"zIMloag8qUWv9b91U8kx/A\": {\"metadata\": {\"community_id\": 12, \"customer_id\": 157278.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"157278.0\"}}, \"6BlHPEWxjD7W/EXGlQA8/A\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 164205.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"164205.0\"}}, \"Crhp8YifQTQDrSTRS7ZX/A\": {\"metadata\": {\"community_id\": 552, \"customer_id\": 43964.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"43964.0\"}}, \"en3A02Nh2kO7dedg0Atp/A\": {\"metadata\": {\"community_id\": 13, \"customer_id\": 21095.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"21095.0\"}}, \"jxKUOp9v5E13ytG1Rsdy/A\": {\"metadata\": {\"community_id\": 129, \"customer_id\": 73851.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"73851.0\"}}, \"L5j3a+KEjVvruGkUNWZ0/A\": {\"metadata\": {\"community_id\": 446, \"customer_id\": 144569.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144569.0\"}}, \"LvyOqWz4vSyOBqiyi115/A\": {\"metadata\": {\"community_id\": 17, \"customer_id\": 97620.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97620.0\"}}, \"rwxpB8UX/weoLJqfaRmJ/A\": {\"metadata\": {\"community_id\": 117, \"customer_id\": 137346.0, \"color\": \"#FF0000\", \"size\": 20, \"hover\": \"137346.0\"}}, \"wJdydwMBpGIslyVgQAeX/A\": {\"metadata\": {\"community_id\": 491, \"customer_id\": 5558.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5558.0\"}}, \"kQosw2/KpfaGFP4bb1WZ/A\": {\"metadata\": {\"community_id\": 215, \"customer_id\": 116662.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116662.0\"}}, \"WbjeTkam/jv1EPnvm9ya/A\": {\"metadata\": {\"community_id\": 283, \"customer_id\": 83650.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"83650.0\"}}, \"XEXq4+EHfYmpdLTINBij/A\": {\"metadata\": {\"community_id\": 333, \"customer_id\": 94538.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"94538.0\"}}, \"AHEUlQrOxnWxZmPc8t6s/A\": {\"metadata\": {\"community_id\": 5, \"customer_id\": 5294.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"5294.0\"}}, \"QmC0hKSul+B5fhM04xGv/A\": {\"metadata\": {\"community_id\": 31, \"customer_id\": 68576.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"68576.0\"}}, \"if2uIOOYU984PgU0edHV/A\": {\"metadata\": {\"community_id\": 157, \"customer_id\": 153366.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"153366.0\"}}, \"vKmWBYMfWo3uIw8qjxft/A\": {\"metadata\": {\"community_id\": 128, \"customer_id\": 134874.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"134874.0\"}}, \"VPdHZjf9KiBl83zYDl/v/A\": {\"metadata\": {\"community_id\": 64, \"customer_id\": 52810.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"52810.0\"}}, \"Vdww/iwpIzuxddWe+uDx/A\": {\"metadata\": {\"community_id\": 372, \"customer_id\": 152182.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"152182.0\"}}, \"XXYop3GzPhl9y1ZdDhb0/A\": {\"metadata\": {\"community_id\": 171, \"customer_id\": 126012.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126012.0\"}}, \"rbgnt5R6NMMlyp1yD64C/Q\": {\"metadata\": {\"community_id\": 367, \"customer_id\": 19613.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"19613.0\"}}, \"jkpvxKRjEj8FPx3tXIoH/Q\": {\"metadata\": {\"community_id\": 61, \"customer_id\": 89214.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"89214.0\"}}, \"87Wr7TVFyifRYRaEQ6oJ/Q\": {\"metadata\": {\"community_id\": 187, \"customer_id\": 26291.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"26291.0\"}}, \"S0ly3S1BjPwd+7c5UZob/Q\": {\"metadata\": {\"community_id\": 480, \"customer_id\": 194472.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"194472.0\"}}, \"GFetumiakdGmPB9Is78i/Q\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 27502.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"27502.0\"}}, \"wVc80t3sNC598XKNFbIp/Q\": {\"metadata\": {\"community_id\": 337, \"customer_id\": 116554.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116554.0\"}}, \"cLHU/6vH3d8z8+Z/CLor/Q\": {\"metadata\": {\"community_id\": 554, \"customer_id\": 97513.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"97513.0\"}}, \"rMyZnSKrpHKJOv0TZsU+/Q\": {\"metadata\": {\"community_id\": 4, \"customer_id\": 29025.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"29025.0\"}}, \"6RqXWDqyVqOwgmmmqWtA/Q\": {\"metadata\": {\"community_id\": 55, \"customer_id\": 127861.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"127861.0\"}}, \"hqp2t7RlXH1cOLweIj9B/Q\": {\"metadata\": {\"community_id\": 83, \"customer_id\": 163252.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163252.0\"}}, \"m6ZpojGcm6og1aNvWaJL/Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 70939.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"70939.0\"}}, \"j0LG2TBfq7KBMfdREM9O/Q\": {\"metadata\": {\"community_id\": 15, \"customer_id\": 135550.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"135550.0\"}}, \"TxqzbO7ePlGSEd2f2wxP/Q\": {\"metadata\": {\"community_id\": 230, \"customer_id\": 111794.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"111794.0\"}}, \"+zz49PYLjgQ+HgQ+JdRW/Q\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 57117.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"57117.0\"}}, \"6AgjnpDes64fRskfpRul/Q\": {\"metadata\": {\"community_id\": 76, \"customer_id\": 191840.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"191840.0\"}}, \"U04BOACjO7txW+arJZbh/Q\": {\"metadata\": {\"community_id\": 35, \"customer_id\": 38505.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"38505.0\"}}, \"PfRfZgTMHakV3AWfo/3x/Q\": {\"metadata\": {\"community_id\": 225, \"customer_id\": 146867.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"146867.0\"}}, \"MUKgszdFzAs+hYndndby/Q\": {\"metadata\": {\"community_id\": 104, \"customer_id\": 144200.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"144200.0\"}}, \"UeNVG+95L2zCCPYwGhYQ/g\": {\"metadata\": {\"community_id\": 131, \"customer_id\": 137990.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"137990.0\"}}, \"DLqvxwV6cLRbZzV/S6ce/g\": {\"metadata\": {\"community_id\": 389, \"customer_id\": 163629.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"163629.0\"}}, \"6sNhg3eDE+xREDSk2Lsh/g\": {\"metadata\": {\"community_id\": 344, \"customer_id\": 12872.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"12872.0\"}}, \"DzAacUBELnXef51TNOgh/g\": {\"metadata\": {\"community_id\": 295, \"customer_id\": 143894.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"143894.0\"}}, \"l6Sm+jycAFacN6Fc/Ho//g\": {\"metadata\": {\"community_id\": 178, \"customer_id\": 47813.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"47813.0\"}}, \"m2zFkWR4ShPkpk94te9r/g\": {\"metadata\": {\"community_id\": 1, \"customer_id\": 126384.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"126384.0\"}}, \"c6l/6JPY8da2RBVQz7qV/g\": {\"metadata\": {\"community_id\": 371, \"customer_id\": 42200.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"42200.0\"}}, \"f1nU9QKf5radbUNVzHHM/g\": {\"metadata\": {\"community_id\": 50, \"customer_id\": 116074.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"116074.0\"}}, \"oaZRRjQzjqiXM8H0BFXs/g\": {\"metadata\": {\"community_id\": 452, \"customer_id\": 76724.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"76724.0\"}}, \"h6LTY3LaaE6dWUsrCOYj/w\": {\"metadata\": {\"community_id\": 62, \"customer_id\": 22321.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"22321.0\"}}, \"Qy0hhxrb9Nmf8+xAUfVp/w\": {\"metadata\": {\"community_id\": 188, \"customer_id\": 60837.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"60837.0\"}}, \"iZG0kK83mAwI7l40kRt+/w\": {\"metadata\": {\"community_id\": 232, \"customer_id\": 115184.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"115184.0\"}}, \"u2at6zf9OYlpg8Ts5KiK/w\": {\"metadata\": {\"community_id\": 245, \"customer_id\": 158088.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"158088.0\"}}, \"H0zZceW5WCpd+LBiEJSR/w\": {\"metadata\": {\"community_id\": 469, \"customer_id\": 199692.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"199692.0\"}}, \"pQboYj1uZMjFOkzVaqCR/w\": {\"metadata\": {\"community_id\": 44, \"customer_id\": 82959.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82959.0\"}}, \"TeLYnQ4sMDKjTiO/ulKS/w\": {\"metadata\": {\"community_id\": 505, \"customer_id\": 39350.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"39350.0\"}}, \"TbiaKQeWZOhnP0oW13uX/w\": {\"metadata\": {\"community_id\": 287, \"customer_id\": 118060.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"118060.0\"}}, \"g8omXv57dirNyxDKqHKY/w\": {\"metadata\": {\"community_id\": 381, \"customer_id\": 2603.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"2603.0\"}}, \"xU481WCGtb6/SRex5nLP/w\": {\"metadata\": {\"community_id\": 509, \"customer_id\": 123855.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"123855.0\"}}, \"ez0QStHl7M10wuzVy4Le/w\": {\"metadata\": {\"community_id\": 140, \"customer_id\": 167632.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"167632.0\"}}, \"IOl829hIWWsSYYNSeFTw/w\": {\"metadata\": {\"community_id\": 27, \"customer_id\": 49225.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"49225.0\"}}, \"NMYv+LLIhjsJ1pMbww3z/w\": {\"metadata\": {\"community_id\": 555, \"customer_id\": 82870.0, \"color\": \"#808080\", \"size\": 2, \"hover\": \"82870.0\"}}}, \"edges\": [{\"source\": \"fVKL4EddhfGDpPg7OR8RJQ\", \"target\": \"hQf90cj929FuImXMCvoPAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HX5tAgQbmKUs5gGEs/gx1g\", \"target\": \"hQf90cj929FuImXMCvoPAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hQf90cj929FuImXMCvoPAA\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PW5eXomrVVdens7S5nsYAA\", \"target\": \"aKkEMSzcA3tK7Ey9aHwJXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PW5eXomrVVdens7S5nsYAA\", \"target\": \"qrsjsWUS7pNe8p0FWJp9kA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"PW5eXomrVVdens7S5nsYAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IG8eHOg/b+unaewr10IpAA\", \"target\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IG8eHOg/b+unaewr10IpAA\", \"target\": \"navgg+2v2IpcTItMEGeWWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3buh1bQHBjYvBLTs3k1pcg\", \"target\": \"IG8eHOg/b+unaewr10IpAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pgaiIo5Awks0fC4Gk+ABPw\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qOLZfj6vsjEJBm5kg+Dv6w\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"rMyZnSKrpHKJOv0TZsU+/Q\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dBRqkyn6shmbpWrSZaHARg\", \"target\": \"fI0SQXFag/uwL3gZbcAzAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YUMbaFzgJYeU3f4B//ckTg\", \"target\": \"fI0SQXFag/uwL3gZbcAzAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6jNVAJhI7DMcPITe0gOFzw\", \"target\": \"fI0SQXFag/uwL3gZbcAzAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TS1jpzHgr2OGkdbO2yRZAA\", \"target\": \"cjaT01wvS95eIsEKQUdEWw\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"TS1jpzHgr2OGkdbO2yRZAA\", \"target\": \"yn7/uMKk6kJRsbDh+tSncA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"cWeqFfe/2MVwGRvaRnVhAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cWeqFfe/2MVwGRvaRnVhAA\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IsbmmrPvHfOSoTAvdVW3mw\", \"target\": \"cWeqFfe/2MVwGRvaRnVhAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tg4htVvjR8oGHx8uubBYDQ\", \"target\": \"zXQksXsT2mt3BhPZ6cWFAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"zXQksXsT2mt3BhPZ6cWFAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OmSfnOYOTGiS6crbu4XSdg\", \"target\": \"zXQksXsT2mt3BhPZ6cWFAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rb3i7BmlE+LOhKhqsvyMAA\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rb3i7BmlE+LOhKhqsvyMAA\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rb3i7BmlE+LOhKhqsvyMAA\", \"target\": \"tH9869I8NvruzTNOD7edxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gt6r2GNUZyrgLRd88ouJQA\", \"target\": \"ywDGLEp7FJEDUqpecKOSAA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"fER/DxHaRHDkeDgOkISTAA\", \"target\": \"jqJFx9HvH9iThG9UFQWpAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fER/DxHaRHDkeDgOkISTAA\", \"target\": \"sclXs6iGF2XdJL6CuOjmFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SuNo1A6pPVft9vfEaDA7PQ\", \"target\": \"fER/DxHaRHDkeDgOkISTAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LYvZLRcYPyx6i9EsF+OdAA\", \"target\": \"Phron2p9O2Ta3MB1nqnQfg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"LYvZLRcYPyx6i9EsF+OdAA\", \"target\": \"iCmJjgRRw00iNyTBA5WEfw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"KMEoeG0uw8FmOZpGW4S/KA\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TETkfceYjomyctQgahadNA\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"d6I/erSUp/qMli3JCSWeAA\", \"target\": \"iqOPT8+OtBjqMEsIZx2STQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NIgmiC1e5egjTL/hoRRzaQ\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d6I/erSUp/qMli3JCSWeAA\", \"target\": \"tNJL9Wj9xM3IyYmtsaGaqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"d6I/erSUp/qMli3JCSWeAA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U4i+J3Mg/18Sw6mvXmO4AA\", \"target\": \"Y84rzA1oQbbFi71z+Qn7JA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"U4i+J3Mg/18Sw6mvXmO4AA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U4i+J3Mg/18Sw6mvXmO4AA\", \"target\": \"pA2XvK7a3lX0398AJNHdsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q67OfOXxwmAszDzGwwMu7A\", \"target\": \"Ynri23BTcQZf7q1ZB3nQAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Yaj5oRg5gSr4WRlWPo17g\", \"target\": \"Ynri23BTcQZf7q1ZB3nQAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ynri23BTcQZf7q1ZB3nQAA\", \"target\": \"cinjXKTI9MAJtco6S1n+9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"58W4qaSq64j+ulfZWQ/wAA\", \"target\": \"efFeB1sBxrXang8mpgSWdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"58W4qaSq64j+ulfZWQ/wAA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"58W4qaSq64j+ulfZWQ/wAA\", \"target\": \"hM8yiIQ7+esJXnbg0aGGfA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dAmdzT0drYiMbV9rJdJvIw\", \"target\": \"rH6RbiXkJiiUuAAEjKjyAA\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"0J6oEUNhkVYrIsWJGBnL4Q\", \"target\": \"rH6RbiXkJiiUuAAEjKjyAA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"target\": \"ddWC8vEq1erqKkMFxMX2AA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"fJzjXhx6RpVTmbayvJb8AA\", \"target\": \"kr3m2Rujat20L97MZk719w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"fJzjXhx6RpVTmbayvJb8AA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"fJzjXhx6RpVTmbayvJb8AA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0l7C/zbIFeNPorEw6JmxlA\", \"target\": \"wRTW/+oB5yTa8TE0+m0hAQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"target\": \"wRTW/+oB5yTa8TE0+m0hAQ\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"6GKfoX6YG4cXZ/tmSek4AQ\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6GKfoX6YG4cXZ/tmSek4AQ\", \"target\": \"OP3VuJz0MOYOFOeABeBvHw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6GKfoX6YG4cXZ/tmSek4AQ\", \"target\": \"lDzqred3r2TxyB7oTUd/IA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6eYVvoIorRNDLfLelJvIAw\", \"target\": \"dFHxkVjZ2ik0MnOo7Vg/AQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b0c1d26mJFr1jSCe2avt1A\", \"target\": \"dFHxkVjZ2ik0MnOo7Vg/AQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OPbynxn1A1QV0hBtvMlC5A\", \"target\": \"dFHxkVjZ2ik0MnOo7Vg/AQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R4IB/HUVgvrUvfMC8GVKAQ\", \"target\": \"gONZ8FNFW+3XX1iIAp4hKw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"+KNmFytU12EQiuKiLmQCGw\", \"target\": \"NDxcCyBxZoUiLjOrzqtlAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JtLiGrVMyc63d3hcU/qYoA\", \"target\": \"NDxcCyBxZoUiLjOrzqtlAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NDxcCyBxZoUiLjOrzqtlAQ\", \"target\": \"k+P5VcOaZtVHG+bmx8RO3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"target\": \"gDmaiqqCwKaXYRbCoJ12AQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NB36u7yBXPdWuZqt6xVvoA\", \"target\": \"gDmaiqqCwKaXYRbCoJ12AQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"gDmaiqqCwKaXYRbCoJ12AQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"target\": \"xFk+R95VR+VNMHohSoiPAQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"UO0lgGjJDkOz6FUtncKYAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OkpZWWmaKw6a1Opzusv4pg\", \"target\": \"UO0lgGjJDkOz6FUtncKYAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TgyNoh7F93CAwdFFP4NWvA\", \"target\": \"UO0lgGjJDkOz6FUtncKYAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jqJFx9HvH9iThG9UFQWpAQ\", \"target\": \"sclXs6iGF2XdJL6CuOjmFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SuNo1A6pPVft9vfEaDA7PQ\", \"target\": \"jqJFx9HvH9iThG9UFQWpAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+qwToh+fbgIAa8uOXduCbQ\", \"target\": \"V2i35ONWlJBWq4+LQVfIAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"R0VympemlR1IDHdJpudzlA\", \"target\": \"V2i35ONWlJBWq4+LQVfIAQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V2i35ONWlJBWq4+LQVfIAQ\", \"target\": \"rZGX7tiTLIup6b1UOtdDoA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AUj6QW3vDA5gQHwExjGtHw\", \"target\": \"jOLAPViUhhy/+Xp6gcrlAQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"9lWRTdSse5DK1FFLjbbtAQ\", \"target\": \"JHN1RRKwapnUWKCl3tIioQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+VLSwuuXCcLbYcRl6hvWtg\", \"target\": \"9lWRTdSse5DK1FFLjbbtAQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lWRTdSse5DK1FFLjbbtAQ\", \"target\": \"jl+NiomZ13QCt0ovVOEn1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UFyIf35pkvmN2BDkQ7IHAg\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9SJVLkajTeR4POfLrh2KvQ\", \"target\": \"UFyIf35pkvmN2BDkQ7IHAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"13NDORsV0NBpE78voJX8zg\", \"target\": \"UFyIf35pkvmN2BDkQ7IHAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JHFyiY2GWrFLW2LkHfM0Ag\", \"target\": \"gdgrqfKRzrB2XWkXMYRgQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"JHFyiY2GWrFLW2LkHfM0Ag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BN+YmIxT+3E9xyYfA94pdg\", \"target\": \"JHFyiY2GWrFLW2LkHfM0Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c8YTUXnfbNhnroJsMeNvTg\", \"target\": \"dKV+F/lGc338Se79BNBIAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2WZ+QLWazLW8nSczXoOlzA\", \"target\": \"dKV+F/lGc338Se79BNBIAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MtpjJ6XcmH6qPnAjbjY75A\", \"target\": \"dKV+F/lGc338Se79BNBIAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"xuD5Tu/T3V0eT3pRkefCGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UpdDOZZ/nnNC6z5GD0lrPQ\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"j4IK5nCCNuS7CCju09hlQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"rbgJY/m+OO8EhjJplaEWRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"75emx1Xn05NP13ZlbDnqjg\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"riYzk3GZZhFYefWPcH7rnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Em0/xm51jDdmoLNgvocVtQ\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IPgGExpgq0OmbJYAJoFSwQ\", \"target\": \"brVF4DZo0i3+dHo+7cdWAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"brVF4DZo0i3+dHo+7cdWAg\", \"target\": \"cyZ5Pkk5ztmXzP61SVHf3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bXjJTelLYoEi73QE3iZjAg\", \"target\": \"fc6IFrUFydQMo2hfHcOqLg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bXjJTelLYoEi73QE3iZjAg\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bXjJTelLYoEi73QE3iZjAg\", \"target\": \"uczLdKTFHKiIVXA00xpOqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"target\": \"bXjJTelLYoEi73QE3iZjAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2CCWZd0r/q3XhcVZAzQo1A\", \"target\": \"bXjJTelLYoEi73QE3iZjAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"51sIXvwdb1xZwp6D19vL1w\", \"target\": \"bXjJTelLYoEi73QE3iZjAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OJiYUyGs6B5DAq7vTuuOmQ\", \"target\": \"T1K8qvsx95ZGwtuYYWhpAg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"HCQfPvdV3dud4rWme5lsAg\", \"target\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HCQfPvdV3dud4rWme5lsAg\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"74bZRN5X5IW1TnM8MGtaXA\", \"target\": \"HCQfPvdV3dud4rWme5lsAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8T+q5wBfnFew/y6izv5ADA\", \"target\": \"ezqC3OZ5uMF5Au1ZBLhsAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OrBRfCSfh8JjEK1NoKq2JA\", \"target\": \"ezqC3OZ5uMF5Au1ZBLhsAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Lkk4/i0RsX0pZPWuSQ+3g\", \"target\": \"ezqC3OZ5uMF5Au1ZBLhsAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MCapP5unA/zN5ZVofbt5Ag\", \"target\": \"wwgZ4aqOeVTXMNCdUON5WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MCapP5unA/zN5ZVofbt5Ag\", \"target\": \"g2//Y847Q3iYW+VM33+Ksw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MCapP5unA/zN5ZVofbt5Ag\", \"target\": \"xGYjzaN7LnHvZGeHcLTD0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c/FYJcXeWjIHYyY6uVwytw\", \"target\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"3VKE9O3qoeFicDCMezlWxA\", \"target\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"csFxYhlUWSAO8d1wOmf21Q\", \"target\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hPdK9N0uNzR4jeBD8D6CAg\", \"target\": \"irv2V2npI9brdjcEY6Oj7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2lyFL4MZm9NN+aGet2M8Jg\", \"target\": \"FmbUTCW+dXlCtaOElLmlAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ThrLo2r7sbGKGToF5D/UA\", \"target\": \"FmbUTCW+dXlCtaOElLmlAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6qLyFjJCSb5H4btWpQA2eA\", \"target\": \"FmbUTCW+dXlCtaOElLmlAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BsPPFI0hRbbHh2Yj6wNZHQ\", \"target\": \"hd4qptNMNRHMho4wDPi1Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"hd4qptNMNRHMho4wDPi1Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5gbSqQi7aHAiU/tNOC4hqQ\", \"target\": \"hd4qptNMNRHMho4wDPi1Ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4zB2+QLb9Jh+kso8ALPFAg\", \"target\": \"5iSNxr/itO4I17fTbTbe0Q\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"XgXD4ybBbpiAlnG51DRSjw\", \"target\": \"uDUms27bopm4431AO3jRAg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lDoIy/LAU8b2oJsLZrxV7Q\", \"target\": \"uDUms27bopm4431AO3jRAg\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"XLE2vu1FUTz8Xy1xR5HyAg\", \"target\": \"qBq08MAwQ9kFkITDvTQaFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IQM9aWomrU3BEDzBJmVLug\", \"target\": \"XLE2vu1FUTz8Xy1xR5HyAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ARQKqak9qdhuK77IC6wK9w\", \"target\": \"XLE2vu1FUTz8Xy1xR5HyAg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H+It2SD4KPOr34Qht7sHsw\", \"target\": \"YfiKcShGGIA2CCmhUFT4Ag\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"NebVzZMmzgiasU+OJOAHAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"ZK6YeSt70T5UPes8Tj68ig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"IsbmmrPvHfOSoTAvdVW3mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"eJfOofg/VkU3qdrZNfHY1g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ef+8eL5S/xYEisXaqlMFAw\", \"target\": \"l0YHJYM4046cMOuZp7BR2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NebVzZMmzgiasU+OJOAHAw\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NebVzZMmzgiasU+OJOAHAw\", \"target\": \"l0YHJYM4046cMOuZp7BR2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JTvwqLDX31+2hz07xl5yOg\", \"target\": \"nDUnoHoN1IZz5VVEbw0IAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"nDUnoHoN1IZz5VVEbw0IAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nDUnoHoN1IZz5VVEbw0IAw\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SaBANbUR2bQfaUhYskW9CA\", \"target\": \"njfAI7X9I/LeJL0XOHAMAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hmoij6THJzrv9Ud2clOGIA\", \"target\": \"njfAI7X9I/LeJL0XOHAMAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dyG5yCEuXNa7zINq/JKjYg\", \"target\": \"njfAI7X9I/LeJL0XOHAMAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jmHEm9bw2NfaqUmujDITAw\", \"target\": \"vyL9TIMjcuScOBNcE+ScRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eNm73uTArP4UKMj8vLHpRw\", \"target\": \"jmHEm9bw2NfaqUmujDITAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"jmHEm9bw2NfaqUmujDITAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUmeD6EQPRf0Zw7B+iN6Rg\", \"target\": \"mEi10Jc94OYw+33Y7Y4qAw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"FtdeHjc9NwGOcxZhz/NLAw\", \"target\": \"aUsB1m1dWOhCOv1IOrurOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FtdeHjc9NwGOcxZhz/NLAw\", \"target\": \"jDNhsvbjunwQKLmvhy38bw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"FtdeHjc9NwGOcxZhz/NLAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gsc5I5v27i46ZSFXLzgsaw\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8DMefT1OSM5d4f8qFzt9kA\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lnJYySQ1nGxJ0pjUAVqwg\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"swp8nA1IIlV5HAlku2M7xg\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SdLACOA5NHzMq25kxSWf1g\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pQboYj1uZMjFOkzVaqCR/w\", \"target\": \"y1nmeXGPMDSmkmFge5dXAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B/PZxF0sz0DmnH62c7wt0A\", \"target\": \"oUk3kJWF+hNWYPEDJst4Aw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"TEAWGHOPP2tHHZOSAaaHAw\", \"target\": \"aZ9AyPjf2OgaKfRYk4KuRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TEAWGHOPP2tHHZOSAaaHAw\", \"target\": \"YRplCx8z9GNMnXrPdwUkWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TEAWGHOPP2tHHZOSAaaHAw\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ecEqhLbyDQgEYoVuFzsD0Q\", \"target\": \"jBwZb8cDwBQ8vw1sOumcAw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"DKE0oHHGtU5ACYya+k/FGA\", \"target\": \"boWAWGMTTmVsVRAQAbKjAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"boWAWGMTTmVsVRAQAbKjAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"boWAWGMTTmVsVRAQAbKjAw\", \"target\": \"zl2ldV3zCVo7TVH54oYQyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"h7tJb75L/DGOrm2tEwq6Aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h7tJb75L/DGOrm2tEwq6Aw\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"R2NZRIws+qXh4yWI4/Iayg\", \"target\": \"h7tJb75L/DGOrm2tEwq6Aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dN9W3T2orZCjIBwgp+G7Aw\", \"target\": \"v/vdz8S9uvE40Xq38f5rIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Oho6Z20dihFORKOVpu6SQ\", \"target\": \"dN9W3T2orZCjIBwgp+G7Aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dN9W3T2orZCjIBwgp+G7Aw\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XkYOl3ks1X2aSgiy+kcncg\", \"target\": \"YnPv4j68pE/W942eamy+Aw\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"KZtvq/LYMl5NR+CL3I0cfA\", \"target\": \"YnPv4j68pE/W942eamy+Aw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"6eYVvoIorRNDLfLelJvIAw\", \"target\": \"b0c1d26mJFr1jSCe2avt1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6eYVvoIorRNDLfLelJvIAw\", \"target\": \"OPbynxn1A1QV0hBtvMlC5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NQycxBqIh2cAluZ/Nfbimg\", \"target\": \"qJ2LGi8vR2yFU+3Ag9/TAw\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"target\": \"bYXVmppvlbPB4PlIcylRGg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"target\": \"VWYTv+j475LNrLs7gCP9Qg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"target\": \"navgg+2v2IpcTItMEGeWWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3buh1bQHBjYvBLTs3k1pcg\", \"target\": \"UV7rYTl5LeyAFxZ4ueneAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"kzsOxATPrhpBx7IBvCnnAw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"kzsOxATPrhpBx7IBvCnnAw\", \"target\": \"lohttfXsDNw5mIztqHPOvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X7rqqVePj30IkrUqT51Y2w\", \"target\": \"kzsOxATPrhpBx7IBvCnnAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PWbZ/xn60ZHGlQtufbHz6w\", \"target\": \"kzsOxATPrhpBx7IBvCnnAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"t6XdsRzzXBLRdH5YUv3tAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"target\": \"t6XdsRzzXBLRdH5YUv3tAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AohI5f/BkoR8P/9gC7RUzw\", \"target\": \"t6XdsRzzXBLRdH5YUv3tAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iDe29J4gwYshIWUHA/b3Aw\", \"target\": \"pFICOOzAX8cSt8/tz2OSsA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"/5aq7+ftpNqXyXw1sIEABA\", \"target\": \"4DmdVWN83PEzQefueAI5FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/5aq7+ftpNqXyXw1sIEABA\", \"target\": \"HiQHZwhiV5ctprO+wg5bGQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/5aq7+ftpNqXyXw1sIEABA\", \"target\": \"suNMjRNdU2uGcnzGvZaFoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EKGxuN6zNqEuBdsNTTQ2bA\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rjKKulZvbM7JwFTyyDQHBA\", \"target\": \"v6rEtj7X5ZMJKzcuXNJhhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rjKKulZvbM7JwFTyyDQHBA\", \"target\": \"xmdiNDAZrXb96DU6G+YMjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H+wkAyPI5bSb8Bb+y88Lqg\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hGQwGeez8E92ZELQ24STqw\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rjKKulZvbM7JwFTyyDQHBA\", \"target\": \"uXgRv+EhLbgeoK6stpaXww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BqRKgn0/xYzfcP4hJf0j6A\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34S4/qPUMbfIiVg4qPcv9Q\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m2zFkWR4ShPkpk94te9r/g\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UNOLeg/WMaA/VufGSfsoBA\", \"target\": \"hz+LWfgYGJpvD5KkesmnHQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"402+Q4nAghzmmhzcXv9sUw\", \"target\": \"q7YXEwzZduMnshd7h280BA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"I30MbYfSHDEjmEPf+7g6BA\", \"target\": \"LWvoOHWcJwMOVIrQGvXLQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I30MbYfSHDEjmEPf+7g6BA\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I30MbYfSHDEjmEPf+7g6BA\", \"target\": \"Lkgw2dolfwaJQyooYYppfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"k0T6CV1d9JF83IPY9sRpBA\", \"target\": \"ym1mmV/zdlaPSNH2NZRaQw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"eASPTOXK12Ia9KKBynl7BA\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eASPTOXK12Ia9KKBynl7BA\", \"target\": \"qnfy1S5fbWxIZW6Zb7k6YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2HdF9Vrsld08yjF+lXBrdQ\", \"target\": \"eASPTOXK12Ia9KKBynl7BA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G5OBgEAy078qSQ8c2NaJBA\", \"target\": \"pslubpS6aAxQnPsj4LiuXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G5OBgEAy078qSQ8c2NaJBA\", \"target\": \"bp/cH5b+nBTbc8NY0tOcow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G5OBgEAy078qSQ8c2NaJBA\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c9uAkbAxw0Nggb2/V2aNog\", \"target\": \"dFZgvv+KytDAWW2FZvWeBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"dFZgvv+KytDAWW2FZvWeBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y/HkWrJ/U/Bxbdr7NgH3sw\", \"target\": \"dFZgvv+KytDAWW2FZvWeBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dFZgvv+KytDAWW2FZvWeBA\", \"target\": \"rWsZvRAvM0Pq4qaN4/BJ0w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"JL2vKI4zx00+rvHhg/a3BA\", \"target\": \"n/wtIbSj4hJctHmq4SrGUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JL2vKI4zx00+rvHhg/a3BA\", \"target\": \"iImUqiPNPbAQT9k7P7UswA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"FP3VoLmMd2eZRBobuqshxQ\", \"target\": \"JL2vKI4zx00+rvHhg/a3BA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7B3pLJTfNbhA56BMabUB5Q\", \"target\": \"JL2vKI4zx00+rvHhg/a3BA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XlsXjzT8f9ch/bu0Se+BA\", \"target\": \"muD2o32/rvJ6qO3uaY8vQw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XlsXjzT8f9ch/bu0Se+BA\", \"target\": \"v6OGQ3IGrh7t1+9Pc5ClVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XlsXjzT8f9ch/bu0Se+BA\", \"target\": \"olMAQl+wwkOfD/g3eOeP0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EeLZzQRqDNrmxT6Ry8jILQ\", \"target\": \"weWsVGpyQWEtcjno/vjDBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gUFSWzIUmsXeT+D4FdTbWA\", \"target\": \"weWsVGpyQWEtcjno/vjDBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MX1iQXm9JIumNefXUd9PXA\", \"target\": \"weWsVGpyQWEtcjno/vjDBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"EpojG5aJx6PyG41OzHPFBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"EpojG5aJx6PyG41OzHPFBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpojG5aJx6PyG41OzHPFBA\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+dvhAHBxRpcc3JD0l919MA\", \"target\": \"EpojG5aJx6PyG41OzHPFBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpojG5aJx6PyG41OzHPFBA\", \"target\": \"X9jduueKJ+ghpIqAdXSLWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpojG5aJx6PyG41OzHPFBA\", \"target\": \"j8j5NMqGbzwWyCZEIxS8sg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mwfUPAmhfq3WL1IJbJnmBA\", \"target\": \"u0hqitzAeMaRXHE8QpRhow\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"mwfUPAmhfq3WL1IJbJnmBA\", \"target\": \"rWQC/DPCbi8TmSYUD9IW7g\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"recx5iQEJCHdzKCUtRzqBA\", \"target\": \"vL+/RI7kdpbY/Np/ysigXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"recx5iQEJCHdzKCUtRzqBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"recx5iQEJCHdzKCUtRzqBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eq74A7rCBGlzj9kZ5ivyBA\", \"target\": \"gIxrZCDuvc5b7R0ldO3ofA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"0+rvvOXJDQjr7VAdZsx7ew\", \"target\": \"MtE30z/9i4UlBVz237X3BA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EPqSyzWGXSd1L8fp3h/Uow\", \"target\": \"MtE30z/9i4UlBVz237X3BA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"MtE30z/9i4UlBVz237X3BA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ECPLScyImUDmwsrLCs5Uw\", \"target\": \"Ld5SnvpmO0dTU9pLJ9VZBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ld5SnvpmO0dTU9pLJ9VZBQ\", \"target\": \"f+E8VIalbsW65FQq5Z+peQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JHN1RRKwapnUWKCl3tIioQ\", \"target\": \"Ld5SnvpmO0dTU9pLJ9VZBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oPA7Ek4wtSq0BMvlM9NbBQ\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KvjMCetZz2V1Zmw8U58vnA\", \"target\": \"oPA7Ek4wtSq0BMvlM9NbBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oPA7Ek4wtSq0BMvlM9NbBQ\", \"target\": \"qlJAbL1oAT+FwtNvVKFspA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O0bYqn+5ERSyAfk2Hp0JGA\", \"target\": \"sOtAEyswqgKga5X8XaJnBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"sOtAEyswqgKga5X8XaJnBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"sOtAEyswqgKga5X8XaJnBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L4sDCVFWrTHh7llFYJt7BQ\", \"target\": \"Twc7MU80HZFmKWQy9ecLEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L4sDCVFWrTHh7llFYJt7BQ\", \"target\": \"uM6ABrtAGxdrSP3XP8y9Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"L4sDCVFWrTHh7llFYJt7BQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ZpUxaN+Bxlij295UkHIxA\", \"target\": \"XlUvPcSVB19I7/xBVi18BQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"jOQmPyjpJ2VZCJGgDj8CCQ\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"T34SlORyNdAitBu1jVAVaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6zKl13gF2OQsCzAA6MWLBQ\", \"target\": \"7464ADYEqh2JXvYPcQ9YmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GGG3GLyEkkn6TlX9FkYjNg\", \"target\": \"x2PpcJCRk3CPPXasFMSMBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JZ/SP3mwjV46p9S5v9Mwgw\", \"target\": \"x2PpcJCRk3CPPXasFMSMBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tag4XqPZ1ovS8C2YXBc2iw\", \"target\": \"x2PpcJCRk3CPPXasFMSMBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VIllveNwdGr1N7Obls5ozQ\", \"target\": \"ia0ODu/Mzcn+VMhzIPuiBQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"p6f1uKYuioXHNdpVxiiLLQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"X9jduueKJ+ghpIqAdXSLWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"/RiRhji19HANI2EN5WdnhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"/VSjNgh6mEKfWVR2yolAmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"j8j5NMqGbzwWyCZEIxS8sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hgJT9g6m12CXu5cr66rBQ\", \"target\": \"AAoMjjx0U7e1swPFxDgm1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WABQPNkh2bbg/P7bjkCsBQ\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WABQPNkh2bbg/P7bjkCsBQ\", \"target\": \"k55CIte3Gp7p6qcb3qdhaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"WABQPNkh2bbg/P7bjkCsBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tbTvcuy9kJL2IF+hTs/KBQ\", \"target\": \"xabMDvWi51n0Cul936172g\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"h37mnRkwndeMxNuIzr0k+A\", \"target\": \"m1CBBx6XxEjJqDAajmXWBQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"o2bKAZR6aYNtSggKGSVPhw\", \"target\": \"oVvh1/LhQNGZkZa6/BXjBQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RrwVqK/gCHzzTMUpXDhB6Q\", \"target\": \"oVvh1/LhQNGZkZa6/BXjBQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TjSWBmQ46SH6wSdnCe5g8w\", \"target\": \"oVvh1/LhQNGZkZa6/BXjBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpcQIYBeWxlYbVGbUuUNBg\", \"target\": \"fcFSRQ5f5s0sLFOMwmYsiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EpcQIYBeWxlYbVGbUuUNBg\", \"target\": \"RY9tUqtEDoNHUOJc5OdH0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"EpcQIYBeWxlYbVGbUuUNBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"krbO1Orz4+7uOfN3/U0VBg\", \"target\": \"vRAPwQoW49NhdfqTKtHjIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iCmnZi9CFvdYvyiq1vugYA\", \"target\": \"krbO1Orz4+7uOfN3/U0VBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4fsPI0x1OUVboOOVA84FzQ\", \"target\": \"krbO1Orz4+7uOfN3/U0VBg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OPRaSJorA7Bn84ebGAcbBg\", \"target\": \"lVZDXqF6yl10XUMzZzLN9A\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"8gDLDfXLxM28SJRP0dizSA\", \"target\": \"L+WoRdbM8VN0eR4BJH8kBg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"+zyhG4nujadKknUVwouJew\", \"target\": \"W6tdbPp/lngBYmJ1jRA9Bg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6PmG+WOw26Drh15tZVs1fA\", \"target\": \"W6tdbPp/lngBYmJ1jRA9Bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"W6tdbPp/lngBYmJ1jRA9Bg\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SgMaBxIjaJ4QFHkgR8jgFA\", \"target\": \"vyneOlAXeITWh9VMTnlpBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Oon+nAU+Py1QICO0rL3Lg\", \"target\": \"vyneOlAXeITWh9VMTnlpBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0tfzKiqfAXj9nFago+QBRw\", \"target\": \"vyneOlAXeITWh9VMTnlpBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+dvhAHBxRpcc3JD0l919MA\", \"target\": \"3vRzyyQTeevcUQARp057Bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"Of3cqqWX3hgee7b+lotWVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vRzyyQTeevcUQARp057Bg\", \"target\": \"VPdHZjf9KiBl83zYDl/v/A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"wejGITS2BOdmjKi8FU98Bg\", \"target\": \"yJIJ7wkgqGm/P0x11wpmeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"wejGITS2BOdmjKi8FU98Bg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wejGITS2BOdmjKi8FU98Bg\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Dgq/UdldN2qmFsTmC6ZBg\", \"target\": \"D32fNkXbGb8JntDyIq0DVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2a+0fWSXMHaZ2Hov9wcXcw\", \"target\": \"9Dgq/UdldN2qmFsTmC6ZBg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Dgq/UdldN2qmFsTmC6ZBg\", \"target\": \"E5A0lMr/AClmZHz1S2qRtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+ukLSirK9Uz5XpuYpv9NJg\", \"target\": \"FYbzAow8vzQx9kBhUKjEBg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FYbzAow8vzQx9kBhUKjEBg\", \"target\": \"gRn+/8gycwpXhkV24zExlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FYbzAow8vzQx9kBhUKjEBg\", \"target\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wHck3P+jbG5b7P7g6njBg\", \"target\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wHck3P+jbG5b7P7g6njBg\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0wHck3P+jbG5b7P7g6njBg\", \"target\": \"AOZ6RzZdEBiJwiF5Ba7v2Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3zEvoHEuEfGdg42FaZwNKg\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"AM3uwVnDG1KnTdlX1elJzA\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"JER9Xy8EJNJsJUdMor0K/A\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"ghRXhwcooWZVz+sji7osBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RTckRKEGiClaU/kOghmIWQ\", \"target\": \"ghRXhwcooWZVz+sji7osBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ghRXhwcooWZVz+sji7osBw\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YB0LA09nHexQq8yaL6RqJA\", \"target\": \"rIV/xeomuiLXmdx2FXNKBw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KXmPvXyy4ZqMu2NJW680bw\", \"target\": \"rIV/xeomuiLXmdx2FXNKBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kwhLDg0U+a3YNXYiod7Vxg\", \"target\": \"rIV/xeomuiLXmdx2FXNKBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5tI3LUyY0xlcEPUXgstLBw\", \"target\": \"deCbWH/yBvku8SIrHZFsTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5tI3LUyY0xlcEPUXgstLBw\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5tI3LUyY0xlcEPUXgstLBw\", \"target\": \"QGgfp0R2eZB+GeRcldbr3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"vmXUUgC4eVFgr5kzAftUBw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"C0NnqLBhV+x4qrVn6I0TVw\", \"target\": \"VjJomYArChr9VC8MLDuRBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"target\": \"VjJomYArChr9VC8MLDuRBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"target\": \"VjJomYArChr9VC8MLDuRBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"lApkjHlZQL30kASE3uHCBw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"Ee+PzZHHk1pLNU6kTEnDKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"dOitCDCE63Unt2Uz+02yPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"2xWzE0Ep6ErJ3OdsXO9HqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Wu/0Ptn9fVByZmn3PjCBw\", \"target\": \"Qj3rnYYTG625wVOHb1OG2g\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"poVGGFYyF0gYXNCFJkQI0g\", \"target\": \"xm9BSRzU9csZKcndYMbQBw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"1gbwYab1ggpNW1ZgEUvqBw\", \"target\": \"D8uBDEKTvYV7V2AXqdYNRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1gbwYab1ggpNW1ZgEUvqBw\", \"target\": \"hWotMeINwSMsuStZDvr2mw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1gbwYab1ggpNW1ZgEUvqBw\", \"target\": \"FgYx9haFz7m/jpwNa8RpoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ni7y9F5zD15CH+lj9WSJvw\", \"target\": \"i0B7Cxb5LxImrSSUJbgNCA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"OTYw29EpzE8fZI954el3Rg\", \"target\": \"qBVSMRip8iPJgMQHjR8SCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"71iA9qV2BUl8sqhSgukASA\", \"target\": \"qBVSMRip8iPJgMQHjR8SCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gU019BfAhgOxjJPgknBZpQ\", \"target\": \"qBVSMRip8iPJgMQHjR8SCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"target\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DiTNRzvHxe9KujjLA7t6dw\", \"target\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RcN8xiuUhv2kkieL87f/ig\", \"target\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"aB2R0dr/cSuQ0saoTU0iCA\", \"target\": \"hvsaBnv2e212vOtI9S2HwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9myB9RP92+4bs0DcfUY/CA\", \"target\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"Wadm1Lv/yBVy7yCmh8nkHg\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Vd7FOp9N0ziiH4xcw34vTA\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mnnag11a3xzR2DFZMNdTCA\", \"target\": \"vZRT0MW4o7/ERY8DWdbdrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q62OQKXh0F0IVOGJ/nxxsw\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"mnnag11a3xzR2DFZMNdTCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9T2ULlgOdsI1nizKDTvRDw\", \"target\": \"WCwzOmjwPWbpLhw2NFCICA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"WCwzOmjwPWbpLhw2NFCICA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WCwzOmjwPWbpLhw2NFCICA\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HXJ7/V8OtxHH2EN916GePA\", \"target\": \"RkaicZuK8b+6K3e9xpupCA\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"3jrXS2+LmrfF9eZI2o6rCA\", \"target\": \"rzFcxkmo/fUZ0TWEtvO2Mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3jrXS2+LmrfF9eZI2o6rCA\", \"target\": \"LbpAv4RD73ZyJlP8Viv4ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3jrXS2+LmrfF9eZI2o6rCA\", \"target\": \"8+ZNPAfLfJ4E3rqIsOm3zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"eyAGwsikTSRHjosKLqBeLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"72sWJrEiMlL0pIoWjHY5WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"O6j0sHDBfrnArqvkE5CKXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"BZgWCBNlAJw0MgydF4igoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"r1iREzOib40Fq3xYyqDR0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"wZSNMWPhftzSTbrv/fr26w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"LW7RUp4WpBDp3yrEPkJV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5+Ml4fLjTTxXGXW5z++vCA\", \"target\": \"J1g4OQI92LIr7/d8aT91+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2UD2PaViHF8ssFnmB6i1JA\", \"target\": \"Wwwb2NcSPoh6VpCTJ/2vCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wwwb2NcSPoh6VpCTJ/2vCA\", \"target\": \"XXV6z+C21UqJfmBajVoCvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"target\": \"Wwwb2NcSPoh6VpCTJ/2vCA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hmoij6THJzrv9Ud2clOGIA\", \"target\": \"SaBANbUR2bQfaUhYskW9CA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SaBANbUR2bQfaUhYskW9CA\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rlz1JkRVqbwaCVUWl/fHA\", \"target\": \"6Fqk6IruRBNgJN0iEHwACQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Fqk6IruRBNgJN0iEHwACQ\", \"target\": \"VZDm4Fhi1cPeNnGwibUPPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Fqk6IruRBNgJN0iEHwACQ\", \"target\": \"shPnJN4xCSk7oXmY9Q4wuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"wBPjg88aMjlnEh95gkEOCQ\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"uELFW8vZx+O4j0k4uggbCQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X5dyuyZq3obza709mjmSrg\", \"target\": \"uELFW8vZx+O4j0k4uggbCQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8iXe8Rxo1mY3KR7nSIb99g\", \"target\": \"uELFW8vZx+O4j0k4uggbCQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/8ZHI0PSoRjZLb0dttQiCQ\", \"target\": \"jyjn/VXmPCyky36DAXHIRg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"1diDn2TqVXffSDwuCsufwA\", \"target\": \"pemNyO15uTZEp00imOk6CQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"Mm0vBMit1GguUSAVAZk8CQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"target\": \"Mm0vBMit1GguUSAVAZk8CQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"Mm0vBMit1GguUSAVAZk8CQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"WtJSCwtDxnvu4DgTlZNICQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K53b7HORgyhLUuQ9WN0kbA\", \"target\": \"WtJSCwtDxnvu4DgTlZNICQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"WtJSCwtDxnvu4DgTlZNICQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FGyuprTxUFE21nTnfcVLCQ\", \"target\": \"tt5c/hfUXcsvf076ArMHkA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"JuVP3exlf4shYDoAoKVSqw\", \"target\": \"noYMPGSzt8FmEPjFjBxVCQ\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"/sG+lWv0qnoQuVdyd5KUUw\", \"target\": \"1bo994GZOV8HEds5eJJdCQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1bo994GZOV8HEds5eJJdCQ\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1bo994GZOV8HEds5eJJdCQ\", \"target\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QA/4eqtZ2nkJ9kFc29hgCQ\", \"target\": \"aU4n2x4OPkJodk0KxvLYig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QA/4eqtZ2nkJ9kFc29hgCQ\", \"target\": \"R9reG8IlWahr3kb1OVLP5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QA/4eqtZ2nkJ9kFc29hgCQ\", \"target\": \"ya2o5/Rbz4LKL7fJB/aH8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"LvOiWpCmoGTwHrNYQ0mpHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"oMgttsFpag2MzaDeUJLmQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0p1y+f9o8JJoxwRWmEaCCQ\", \"target\": \"AWjelWpqAs1TTbdNOEv63w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9RJFsdiJwVjivPdqJGglA\", \"target\": \"lgj72idvG8jObtcuyfuDCQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"lgj72idvG8jObtcuyfuDCQ\", \"target\": \"vXN+LDp/laVyi1suSYO89w\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"target\": \"ixroP3o8cYcrdNuKfyajCQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"OLXOzJVz75+GOsLskyKgxw\", \"target\": \"xOfZoAfLV2KucgwJ/2G2CQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"SchPEfGmLGDrGUJawxRbxw\", \"target\": \"tm2icdHnb7GlDxJ6W1m9CQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"UREpM2NrwJ3mDq2vU5pV5w\", \"target\": \"tm2icdHnb7GlDxJ6W1m9CQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"4SV/Zm1taO3Sqac5TAHjCQ\", \"target\": \"WE/sSgPkeYnLGUNDQA/Rxg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"target\": \"f5y9NZ/5KqlQ9HqDpcXuCQ\", \"metadata\": {\"weight\": 46, \"hover\": 46}}, {\"source\": \"f5y9NZ/5KqlQ9HqDpcXuCQ\", \"target\": \"lkzhROxDtXgOQX5cWdPhSw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"SlRbWsroLBnECZVyHkDkwQ\", \"target\": \"f5y9NZ/5KqlQ9HqDpcXuCQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"7hu/3SxzMzOw+99hxtf/CQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7hu/3SxzMzOw+99hxtf/CQ\", \"target\": \"BdDwgZDolJQo4Ovd47SGIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7hu/3SxzMzOw+99hxtf/CQ\", \"target\": \"SECy+0u+2YtIyzgbZIcgSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"At3rUhegSM4L6VVjR4gMCg\", \"target\": \"CxXkjGu2Nlr/09RxlGrpRQ\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"0RrC2C1QeJuEtTZ5IdghCg\", \"target\": \"4P7OO9NwOYS6JeJqHVBNCw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"0RrC2C1QeJuEtTZ5IdghCg\", \"target\": \"eXyRv8MXYpLkGNQSuZBjmQ\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"0RrC2C1QeJuEtTZ5IdghCg\", \"target\": \"8RvOVn53HohruwyrXukI4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JoTHChXP0mi1f8VYxlwkCg\", \"target\": \"rXfvX3u/2hfcp3byjIJBRw\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"JoTHChXP0mi1f8VYxlwkCg\", \"target\": \"t4T3wmGipQx4c4H54HxOiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JoTHChXP0mi1f8VYxlwkCg\", \"target\": \"nQbo89EjFqendC5KI+7G5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZU+OQckB0MkyN1L5DK2HFg\", \"target\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"74bZRN5X5IW1TnM8MGtaXA\", \"target\": \"ixa7v7bj5ENazQ0MNaxBCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"czubaTois5tckUTLyS9bCg\", \"target\": \"kX1AeJhRCfClQVM+CSaZPg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"n4roh3AOe24VZvsRp3GOCg\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F5HRLcAVvtui7yRoAlPYYw\", \"target\": \"n4roh3AOe24VZvsRp3GOCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"f0mUmJg46NO2Wq++aSKWZg\", \"target\": \"n4roh3AOe24VZvsRp3GOCg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"/vWYb5IsDMKj6AN7glY4rA\", \"target\": \"n4roh3AOe24VZvsRp3GOCg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7BBG6FgT1nw6/Z7scC0Srg\", \"target\": \"ok/Lchkv4GjTnk17aaeZCg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"PLGQnhzQvSiNlgoZ53mxCg\", \"target\": \"Z8jlpMCdujC4++qzmq3BPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PLGQnhzQvSiNlgoZ53mxCg\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"PLGQnhzQvSiNlgoZ53mxCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FX0+HeMaZhtd3d6RYuS3Cg\", \"target\": \"rK+9r/bJqlMdwX6xNutDWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"68Q7ajA1itdZfaO6FmPPZg\", \"target\": \"FX0+HeMaZhtd3d6RYuS3Cg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FX0+HeMaZhtd3d6RYuS3Cg\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5jVxL0tV6gu/JeDMXjrJCg\", \"target\": \"hYb/rNnUevsWhOUyS1R9oA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"/DasHcz9qDrGxipjpxZYPw\", \"target\": \"ddiFjjFLVjBntpPih2rVCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2fLiXD3Oi+ti5kp4tkA5cw\", \"target\": \"ddiFjjFLVjBntpPih2rVCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ddiFjjFLVjBntpPih2rVCg\", \"target\": \"ooA+ANlPZHsTTGT2ER+g9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C4Of7edAVhVldWmHOs7pCg\", \"target\": \"ud5x3n4d6/TNWqjX6Uwwyw\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"PyX2urRShWHuCxtIg3wHCw\", \"target\": \"Zt02CNrU6B6qoZWAhb0yqQ\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E1+WI9OuYxMGF9bKHnDWdg\", \"target\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"target\": \"Pp3qG3oSNALuUCiYsoPszA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PcdvSMVk5RrLrEOR1BQaCw\", \"target\": \"x7rARw2qNlJ5MASYYmzq0w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"NBxN5qJ8r7125hIr2g4fCw\", \"target\": \"fTIctR0vW2sc4q6ZyMg6XQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NBxN5qJ8r7125hIr2g4fCw\", \"target\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NBxN5qJ8r7125hIr2g4fCw\", \"target\": \"rwxpB8UX/weoLJqfaRmJ/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"Y2m2ytV0Q1JDR/YJX38+Cw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xi2Gq8LSXq700zET/00Esg\", \"target\": \"Y2m2ytV0Q1JDR/YJX38+Cw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y2m2ytV0Q1JDR/YJX38+Cw\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M1JMvCs+uDhLtqeDvq0/Cw\", \"target\": \"fwii0M7bzVssIDM+LpTE9w\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"WVjZ3jfRpc6j80QIVDVJCw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WVjZ3jfRpc6j80QIVDVJCw\", \"target\": \"icW9xFiUc3lytmLbrRx/hA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WVjZ3jfRpc6j80QIVDVJCw\", \"target\": \"XIRrwR+1QmICAcgD/JfPrQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4P7OO9NwOYS6JeJqHVBNCw\", \"target\": \"fGRC6V2KP/aLwu7ryLIH4A\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"+frVo3muv6V06M/IKtzvLg\", \"target\": \"KlmYcWvHRSzF4ZNlEcxnCw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"4cWGKQFBhAZ6Esy/epNxCw\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4cWGKQFBhAZ6Esy/epNxCw\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4cWGKQFBhAZ6Esy/epNxCw\", \"target\": \"WSYFeSzGx7LhdNhRlOcfzg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"73yjV+3srPBqZeDnfep6Cw\", \"target\": \"QDWv7h3lOsHFQ1F5qRaXdg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"HWEW1PkDeiZClhSCd6pjIg\", \"target\": \"vwAGZn6uuaOVd++P1UOFCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uRBQkWEdVbeNQ9xfJLkIRg\", \"target\": \"vwAGZn6uuaOVd++P1UOFCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oLBEewI2+TtOi/P+zFONmw\", \"target\": \"vwAGZn6uuaOVd++P1UOFCw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"21kRQo8Kh+9oMACtB7K9Cw\", \"target\": \"amTcXluqwFvvCKvAyPmXhA\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"target\": \"Z3dQiuHWEPMgFSV0fhboCw\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"FFbkW5jsHSFbGrWaW3rsCw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FFbkW5jsHSFbGrWaW3rsCw\", \"target\": \"KF5Dbm9cM754JWLe3NAXuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FFbkW5jsHSFbGrWaW3rsCw\", \"target\": \"zn3v+4i0Sftl8cICrCEv3Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8T+q5wBfnFew/y6izv5ADA\", \"target\": \"OrBRfCSfh8JjEK1NoKq2JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8T+q5wBfnFew/y6izv5ADA\", \"target\": \"Svv21VeSyogknGWZLq0qjw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"7Lkk4/i0RsX0pZPWuSQ+3g\", \"target\": \"8T+q5wBfnFew/y6izv5ADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YY8z/h69E0yzLPuqomxiDA\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"YY8z/h69E0yzLPuqomxiDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YY8z/h69E0yzLPuqomxiDA\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1nWATN6mEw6+v/LPb5VjDA\", \"target\": \"5Mnxw2ItqZFTnRcqOtQ/Nw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"target\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D5+KfnZfLerid2bgjR8uPQ\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhHo3HeMfTGX/H0KDyMNYw\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wHmU4WakYx1Hqi9omUJAIg\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"nXuX1q5CqzGnJV+eNRDISA\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VzXB6IJaLXEXJ8d8MMJbVA\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KyOVJoQ1KBIHYx7862Clww\", \"target\": \"yTeYhXHj6kbvuDMxlSyjDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F4RdrvgcVitZblPtUleopA\", \"target\": \"TpoKQKJcrw56yPne71zHDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5I/RxqOeoSM2vBkJK5xS0g\", \"target\": \"TpoKQKJcrw56yPne71zHDA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DmkQdDNsbUmmMLkddnQT8Q\", \"target\": \"TpoKQKJcrw56yPne71zHDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wVgJQ8f3+v7juEd6iN8JQ\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"target\": \"TY7hrli72TWW8i5Lr4fYDA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"tg4htVvjR8oGHx8uubBYDQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OmSfnOYOTGiS6crbu4XSdg\", \"target\": \"tg4htVvjR8oGHx8uubBYDQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jxKUOp9v5E13ytG1Rsdy/A\", \"target\": \"qeuatAkhLNLIi8/FbpRgDQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"A4dMXilHUsHQSR6kFSqJDQ\", \"target\": \"wnxxkY/h8HD42E/vv4Y7gw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"SYg1UZl2xRlPu6/W05iOSw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"9u2HDSvX//SeuxXrnZqtyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"n4RzrfSaNuZhs0nJCUy93A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HjbBXpRquXhoMGLikIGrOA\", \"target\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"target\": \"jSN7JY5CiEq76H/IKAPBWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"target\": \"ZKP4K6n/oSk9zUwfIRgZDg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"+26sXlxBKwgvLpy9E5shDg\", \"target\": \"YyTqT6rBjf31jnAhbMJ1Jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+26sXlxBKwgvLpy9E5shDg\", \"target\": \"8l4iqTxQwu+5R2t40Ua0NQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+26sXlxBKwgvLpy9E5shDg\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7VxW5gODW0HzIt9IxfRVOA\", \"target\": \"onHQmElJIR/+Us7Pz/k8Dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lve+wd/wKPyn3CsMesLZyQ\", \"target\": \"onHQmElJIR/+Us7Pz/k8Dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q+4EDqYZPaAgWbykhywf8Q\", \"target\": \"onHQmElJIR/+Us7Pz/k8Dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"target\": \"ekYddT4Tcr2RVgRanxVxDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8WlJWpfvSrkQ4/HN21rW4w\", \"target\": \"ekYddT4Tcr2RVgRanxVxDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+XX4ipo2EDh1Vw861N3B7g\", \"target\": \"ekYddT4Tcr2RVgRanxVxDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6NReZq5WCWs8b8h2ZGKADg\", \"target\": \"rREDvHm7au3O8D+GCoHzGQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6NReZq5WCWs8b8h2ZGKADg\", \"target\": \"tZ670LCRnqYmZFgy501YSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6NReZq5WCWs8b8h2ZGKADg\", \"target\": \"VrJZ30qKInj1L/u4OmCrfQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Itxv0yte/EDqR+pR1jeLDg\", \"target\": \"YnVhfjodTZIUtQxbZcQiEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CudMQtlo+Z7PKAT27MOcGw\", \"target\": \"Itxv0yte/EDqR+pR1jeLDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9i5R1KEvmESEXUfnrcMo7A\", \"target\": \"Itxv0yte/EDqR+pR1jeLDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CUfNFmcagh/iWZdQRYiTDg\", \"target\": \"Vr6vzOHfwIdWVbGufER7Hg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0AvZ3yTTfxKv6PWjeYkiSA\", \"target\": \"CUfNFmcagh/iWZdQRYiTDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CUfNFmcagh/iWZdQRYiTDg\", \"target\": \"iFjI4Rd3CKYVzlxd3JT7eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/oz5D6qx21CJbLduu9mkRw\", \"target\": \"2YlME1YUq9QcSfq/wC6wDg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"2YlME1YUq9QcSfq/wC6wDg\", \"target\": \"bsdaANpcjpHWpeczatoMaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hJMVMW1FrtevBZ7FzuLmDg\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KlNDoIf7EQkwaCaUTuTr6g\", \"target\": \"hJMVMW1FrtevBZ7FzuLmDg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+vQfJbdbrfUr7z53avxu8A\", \"target\": \"hJMVMW1FrtevBZ7FzuLmDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ub6jKcVYxpyxDLYGMRDzDg\", \"target\": \"hL75IBvLbfMhsjCx+1t8wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JP3yhcbiuU7ifkiJqEgw6A\", \"target\": \"Ub6jKcVYxpyxDLYGMRDzDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"Ub6jKcVYxpyxDLYGMRDzDg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ET7J4JcMIZwIEmO2MahvFw\", \"target\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"iPRckEZ+9fRyg2mbWpNZaA\", \"target\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tnq/bmfznt3UJEd7a7f2Dg\", \"target\": \"xhxYTYvGcyJprp8iGNPxkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"191Ea/Jawze72ts2Yv9mew\", \"target\": \"XVZ0iwMF2irKUx1+9gcPDw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"5xe5BK5qQuhuLpIqeBskDw\", \"target\": \"Kbhv+XSqvDoMD13AFgLghg\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"ocMqEnIQQXgXvr8DZo7BIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"BNzwQD1dzf4lnoWRJxD1bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hcPbiZB+EqklCe9mW0OlA\", \"target\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"UInULZd3JLguWndjhxn7rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"HA63TWBU2S0+FaXntjCnwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ie5XQWjvBXQxLaFzgtXDw\", \"target\": \"jlP5eV/l50w203+qmY934Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gzcuyo0pazlggDZ6XHZdDw\", \"target\": \"nZemi4L/TnUeky0vAf+euw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"LO6Cn+YTpzSOAnEo9esvRg\", \"target\": \"wt1DYPl4mOHftx9dAs51Dw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"g7PJFIG6v9kmGHvuyA2yDw\", \"target\": \"vgFcKtNQ7SqjM54GthqWIw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"target\": \"g7PJFIG6v9kmGHvuyA2yDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wbch8nHNaJm78RwT0NdXw\", \"target\": \"g7PJFIG6v9kmGHvuyA2yDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Qt5reoO4qOnN5gAidO3Dw\", \"target\": \"ZvBzxChZplZxvBcbRvQNZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Qt5reoO4qOnN5gAidO3Dw\", \"target\": \"W9820uGVNNrihcyqAVBEdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Qt5reoO4qOnN5gAidO3Dw\", \"target\": \"ofSL6fj3xO5/y83Iczo74g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9b52fBh0B9XIxWekScLGDw\", \"target\": \"G3IPKxmXRobhVHi5Axf6JA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9+UpStn+i+Z+AhdJplnWfQ\", \"target\": \"9b52fBh0B9XIxWekScLGDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9b52fBh0B9XIxWekScLGDw\", \"target\": \"TDK1xqHDYg2OvbepjbOXyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9T2ULlgOdsI1nizKDTvRDw\", \"target\": \"OP3VuJz0MOYOFOeABeBvHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9T2ULlgOdsI1nizKDTvRDw\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3wSzQ1qgeYmFkPvbHBrkDw\", \"target\": \"4owBdThRITj1owKR6bwkvQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"813MKAEw6poYGq6K5JHtgw\", \"target\": \"AUVdOrb8T3ttoz82yYPuDw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AUVdOrb8T3ttoz82yYPuDw\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AUVdOrb8T3ttoz82yYPuDw\", \"target\": \"o8icG02ljIVugMJm5yWV5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Yrvybt4XPQyO7urFEIJEA\", \"target\": \"SbGcVcraYDc/7ZlQ7SJ3WQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"16W7EYhBrixyb0qpYa73tg\", \"target\": \"1Yrvybt4XPQyO7urFEIJEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0UVIs06F6OpYATgqQ/oRwA\", \"target\": \"1Yrvybt4XPQyO7urFEIJEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Yrvybt4XPQyO7urFEIJEA\", \"target\": \"TzJZOxXPxEKpEtCKqcAY2Q\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"JDNp0giLIQeKYhAcasUMEA\", \"target\": \"N5rUu9Z9APXGiNRDfx7hXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7h9Fg1B195k0e5jbUGH+cg\", \"target\": \"JDNp0giLIQeKYhAcasUMEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JDNp0giLIQeKYhAcasUMEA\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0SHLOfgkxRmjD9fIfz0NEA\", \"target\": \"FvxwjKG0LXhMuBY9DSns2w\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"CudMQtlo+Z7PKAT27MOcGw\", \"target\": \"YnVhfjodTZIUtQxbZcQiEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9i5R1KEvmESEXUfnrcMo7A\", \"target\": \"YnVhfjodTZIUtQxbZcQiEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ikGVhYtT4k/Nl3xyp2AkEA\", \"target\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"BPp59nVeguhqaVYfaD8mEA\", \"target\": \"VwrOoBFsxcsMJpuOmUULSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BPp59nVeguhqaVYfaD8mEA\", \"target\": \"ju2FdjnvEwJERaFrBSF1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9NyRQB1LYCsbPHrE6bFjlg\", \"target\": \"BPp59nVeguhqaVYfaD8mEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbZPBgWRbURp0aLL0Ad4dQ\", \"target\": \"LVLFh/YaYH7KeqgCZAFbEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KnQ1veuKdeMziZDzLYjmxA\", \"target\": \"LVLFh/YaYH7KeqgCZAFbEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LVLFh/YaYH7KeqgCZAFbEA\", \"target\": \"oqa1czMKG9P74MWoG5iYyw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"nGtfX1L62Gs5wlVGT15sEA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"K0pUol7h3ozvqSJCzt/0UA\", \"target\": \"nGtfX1L62Gs5wlVGT15sEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Fns6OhOXJvz0pJZ+6vorA\", \"target\": \"nGtfX1L62Gs5wlVGT15sEA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BuYd2X2wZ8mIkolg6ANxEA\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"7Jz2tWyndpnXhKTatCg0NQ\", \"target\": \"w1kNagJbloN2MOhjO2uFEA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"1t5D/KAZe4O+o6FXkuWGEA\", \"target\": \"qvgHYr//5UeK5A/rGOI+WA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"m+d2LV5NUpBGnNEZWOrgfg\", \"target\": \"zIv5R4lMqa7XQ9Y+1u2NEA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"2lQwbRqYwBClEYuT3sl5jQ\", \"target\": \"zIv5R4lMqa7XQ9Y+1u2NEA\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"Aqj0URYRADum8//AEpFSTQ\", \"target\": \"HWI3Bjwl14K+GhzMZk+6EA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HWI3Bjwl14K+GhzMZk+6EA\", \"target\": \"pUettJS0B/38xCxmsnnjgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HWI3Bjwl14K+GhzMZk+6EA\", \"target\": \"lvHT9cqSms7vkDUQasI/pw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJYJXom0e+Hss7fw5b/NEA\", \"target\": \"wtugXF+7qE82ez/dX8NvSA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJYJXom0e+Hss7fw5b/NEA\", \"target\": \"b2mBfHZKw/7Wv719ImjRyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJYJXom0e+Hss7fw5b/NEA\", \"target\": \"yXEVx+7BMBM9SJGPv2+Z+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"08bGjN1u0ANSZUfU31gawA\", \"target\": \"KqW1MSythNQ3Uu61DscFEQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"Twc7MU80HZFmKWQy9ecLEQ\", \"target\": \"uM6ABrtAGxdrSP3XP8y9Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"Twc7MU80HZFmKWQy9ecLEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"target\": \"qMV0wqJZhGOHoZqSaUvaag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HRfIlCMyjqCLOAdE7RCTiQ\", \"target\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"W08SC5+MMRtUmoI8eb8p8Q\", \"target\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MJMUTT4JMMSyMzSkOKjr+A\", \"target\": \"hHVQ84R0QsgKrG4nRdsZEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"target\": \"omwCoi4xiKOAcI5uEwkgEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"omwCoi4xiKOAcI5uEwkgEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/c8KCzUU8taJjhXPkCEYwQ\", \"target\": \"omwCoi4xiKOAcI5uEwkgEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oO6Kd6k9FVO7Ltqb0hQmEQ\", \"target\": \"wuWhg4Yw6D8Ry0qr0sGCWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TH6yeUquRV0AJfYGgRgOrA\", \"target\": \"oO6Kd6k9FVO7Ltqb0hQmEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YsX1xoG1Sju1MtguNdicyQ\", \"target\": \"oO6Kd6k9FVO7Ltqb0hQmEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O2+mvXcdd33t3E2igmFuGg\", \"target\": \"eWjzxCuVwpc+jrW5PDBIEQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"DIiIhMmqvp+ATRGDxBNPEQ\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DIiIhMmqvp+ATRGDxBNPEQ\", \"target\": \"qsZtcjv/Pr7Ps1rIbC+obg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"DIiIhMmqvp+ATRGDxBNPEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PfXUa5SVqfsZ9lS1QuB3EQ\", \"target\": \"bv3PChfP/0t22LDSCoYRVA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NCsCA3Mx7MjieYPd2Ajzqw\", \"target\": \"PfXUa5SVqfsZ9lS1QuB3EQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PfXUa5SVqfsZ9lS1QuB3EQ\", \"target\": \"if2uIOOYU984PgU0edHV/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"ZkWd9g1H/KU363ma8jTeKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"Z+Df51fCeSuCjkjYnEc8Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"9Gwg2EmcZbMB7v8/o0Xbfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7IpzIJTWaeXhoqXR7PGIEQ\", \"target\": \"8FTWC1IrA7HALNPMFE0lwQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"eUot1iW5hlu7RiRC2m4gWg\", \"target\": \"jmvmxbSBYu86uPMD/YetEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j6By1U2pa9tCpe2vghUI4Q\", \"target\": \"jmvmxbSBYu86uPMD/YetEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4t1AHK2HFYcR5D9nIC0Y9A\", \"target\": \"jmvmxbSBYu86uPMD/YetEQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bp5yJKjAGqSlAhZkD8HiEQ\", \"target\": \"cwo49QWCShomLLSCPzSMGQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0yNF6u5zyDfG/4h5/Uz0aA\", \"target\": \"Bp5yJKjAGqSlAhZkD8HiEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bp5yJKjAGqSlAhZkD8HiEQ\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZYFWfvZW9YI5QbanNPHwEQ\", \"target\": \"rDXjhpwwH1xRUqGN59Ikcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"ZYFWfvZW9YI5QbanNPHwEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IKaWUv1v0QppVoq3jDu4xw\", \"target\": \"ZYFWfvZW9YI5QbanNPHwEQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"kWU94fPkNTSTNWlzE9oaEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kWU94fPkNTSTNWlzE9oaEg\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZYIgMFU3qCf6nt4PPviA+w\", \"target\": \"kWU94fPkNTSTNWlzE9oaEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I2UHcG7Gi5Jq/6E+hXceEg\", \"target\": \"kZJvIqFrqBfAlh05aHf6gQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I2UHcG7Gi5Jq/6E+hXceEg\", \"target\": \"wWOB65sUCgBZmtKzkj+zkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I2UHcG7Gi5Jq/6E+hXceEg\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"txxhT5TTaq1HSahSSc02Eg\", \"target\": \"xdb7EalTUhFl41uzMWYMdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MsJMsnfAPOMulh3NVLhMgQ\", \"target\": \"txxhT5TTaq1HSahSSc02Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OkkGhjLgMjJNiAwrkAWG0Q\", \"target\": \"txxhT5TTaq1HSahSSc02Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"su6tafi80XozMhq/bUQQjQ\", \"target\": \"tUYqN6f2sv3djqz70cZWEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"tUYqN6f2sv3djqz70cZWEg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"tUYqN6f2sv3djqz70cZWEg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"hSNT1L+/WWfX3E3xDGVbEg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"R2NZRIws+qXh4yWI4/Iayg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"SmyQ4JHD7+SEeH4ITXT13Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ypDG+vXoAj7aYRiv3hoEg\", \"target\": \"UmPwQU3QXSrVekUbTxop9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XXq6u/cbFQCaHiuvbcRvEg\", \"target\": \"XmgJm7ulMhmz4WN52CFLfg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"/CORzbjEzOQeZXXaFtByGg\", \"target\": \"A3mWndNu28c7vWzia6CQEg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"YB0LA09nHexQq8yaL6RqJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"pVlR0mvxmhXylIv/NOu8Kw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"P7GmEF9OEFNMiorXM0//VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3mWndNu28c7vWzia6CQEg\", \"target\": \"VywXO7h+uJoHcQ2zWV+7Zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7rVbt5BH4NPe/afuuJbRwg\", \"target\": \"XhJTH9q0vJMKX88KdwKmEg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"M92YjPy0DN7oh97u74C0Eg\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"uM6ABrtAGxdrSP3XP8y9Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+7yOA0qi+lD/BcsfzFjNKQ\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"3twap36E2VebRsb5toQFTQ\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"oU7VQtJtQKoDumxH+arzcw\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HTmlpp/Iumoh5z1ZeAr6lg\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"SfINEI59msrKitc7M6Ln7w\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"aA9DZNqpSuugH0fbqslt+g\", \"target\": \"uSBD5gX8VAzRxNOmqzLIEg\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"7HpSPrL0CiAmbJRmVoXfEg\", \"target\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"VHmR3tDa7EGSZ8FpyTy4Wg\", \"target\": \"rkw+3Ic423re66LntM71Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7b2RfDpW6ux8JFAhGs6unQ\", \"target\": \"rkw+3Ic423re66LntM71Eg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/244Bhg1oGurt3IyzwKYxQ\", \"target\": \"rkw+3Ic423re66LntM71Eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"ZgH/ubaX0zuODb9Ja1X0Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"EtvEipevPIV+94kEnBlDEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"m+eJkUkV2waU1kg+shQUdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"pP36UZKw6kXrWeW9WIf6hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EtvEipevPIV+94kEnBlDEw\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"DPO2KhQYp35PfWoP5h9hEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"K0pUol7h3ozvqSJCzt/0UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"wxNjDbtynlXPoy/Q5D2AXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"vD7RLkl2lIfpCxXIygFzZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"FDPwNBUTwho2jWg6cpf7bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Fns6OhOXJvz0pJZ+6vorA\", \"target\": \"DPO2KhQYp35PfWoP5h9hEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"RdHJ6h70jpiHt3m/vAPL2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DPO2KhQYp35PfWoP5h9hEw\", \"target\": \"vxqJKZeQ2Vvx7xXFybjU3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"wHZn8d9tz5W3bK/Yxzp0Ew\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"EqnwVrJtqbj+nF6VjBB+Ew\", \"target\": \"lmBINJAFKbwThqfREy6/iA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EqnwVrJtqbj+nF6VjBB+Ew\", \"target\": \"S99EddmDGE9UZMtGmMlmtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EqnwVrJtqbj+nF6VjBB+Ew\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"target\": \"Z9YUiMU+AMQ1KkWYXjCuEw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"Z9YUiMU+AMQ1KkWYXjCuEw\", \"target\": \"sGb1o4in+YADYHRotfA/UA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"OPbynxn1A1QV0hBtvMlC5A\", \"target\": \"Z9YUiMU+AMQ1KkWYXjCuEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4IZ2wwGoYRjr+VSzBxa2Ew\", \"target\": \"pFJxA6EP5BLy+6YQ9ZTIaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4IZ2wwGoYRjr+VSzBxa2Ew\", \"target\": \"skeECVWpQl8ufmsJtEK60g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4IZ2wwGoYRjr+VSzBxa2Ew\", \"target\": \"nrmey3lo5Rp0gzeNirbf+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAlv0/vwcPMrCI1zCwbfOw\", \"target\": \"PTNvHk5YUZt3KumjjoG6Ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTNvHk5YUZt3KumjjoG6Ew\", \"target\": \"mf/sQ2DSs0ULStqjM3UzgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTNvHk5YUZt3KumjjoG6Ew\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BagtKawfQmam8a6BT4rNEw\", \"target\": \"EngmqUh4gyea4TS7OO9yjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BagtKawfQmam8a6BT4rNEw\", \"target\": \"H4E5AoIqhz9wh2Kf55g9ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BagtKawfQmam8a6BT4rNEw\", \"target\": \"T3l0u3ldOx9jtSUKFA+k7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL8e5mPC9uISxEF+S2UEJA\", \"target\": \"OUc82uPwlL8MMu6vQizhEw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4OzUZqFa0qF+o6k0o3L/Kg\", \"target\": \"OUc82uPwlL8MMu6vQizhEw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OUc82uPwlL8MMu6vQizhEw\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IQM9aWomrU3BEDzBJmVLug\", \"target\": \"qBq08MAwQ9kFkITDvTQaFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ARQKqak9qdhuK77IC6wK9w\", \"target\": \"qBq08MAwQ9kFkITDvTQaFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dtYtPCCrTanY+AdLfGTzMw\", \"target\": \"nkGZYDuCZwgagF/AGbocFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7eOLDy+7tMw6Uf8HgmmSUQ\", \"target\": \"nkGZYDuCZwgagF/AGbocFA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"bUR856SolxjVuhh51iNJfA\", \"target\": \"nkGZYDuCZwgagF/AGbocFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"faPrc6LisKuEQ29r3v4mFA\", \"target\": \"sHv2V4ZuvehzCwHPCnOQYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"faPrc6LisKuEQ29r3v4mFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"faPrc6LisKuEQ29r3v4mFA\", \"target\": \"rBRMKV18YrOSdA+WPlz6sQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"HiQHZwhiV5ctprO+wg5bGQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"pfw6cFOu3J2geMdfjUn5nw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"suNMjRNdU2uGcnzGvZaFoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4DmdVWN83PEzQefueAI5FA\", \"target\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4/BeRQFQUgYrWpdf9TxKFA\", \"target\": \"oetHm4+G1SvJebQE4pyfJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4/BeRQFQUgYrWpdf9TxKFA\", \"target\": \"nQbo89EjFqendC5KI+7G5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4/BeRQFQUgYrWpdf9TxKFA\", \"target\": \"JboAWyXnCoash2wb7PAb7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CwpEQuIi8zSScd15Vffgaw\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qfuAI7Ky2KFKbcYucitdFA\", \"target\": \"qh37fflxH4crnFBSNG1ffA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"lniOuhFsg10LXewtmrul0w\", \"target\": \"qfuAI7Ky2KFKbcYucitdFA\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SVncppnuBWX66nGOzF5GZQ\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C42qArnqlgCXYV5Eb3YR3w\", \"target\": \"U2fwMYpVLtQZ2SNSNeFgFA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"AuclOJMUqm+qN0kJfBknIw\", \"target\": \"CUpIgtOr0maU4VKMz/1jFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CUpIgtOr0maU4VKMz/1jFA\", \"target\": \"yo+slXRjEOyeYXIxTMtruQ\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"CUpIgtOr0maU4VKMz/1jFA\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"CUpIgtOr0maU4VKMz/1jFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9WCffFE9Mw7TEa6DHJwkQQ\", \"target\": \"GSmYxob/4rkd11kAIeF7FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"RTckRKEGiClaU/kOghmIWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"hpIBMXHnjQ7uDbzVv376rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"xFtvUt54mWyK6jRKl1JzxA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"GSmYxob/4rkd11kAIeF7FA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GSmYxob/4rkd11kAIeF7FA\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"target\": \"lDzqred3r2TxyB7oTUd/IA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OG2o1vAj49gdK8LP2VooSQ\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NQ2Kua1CDQH1/zRWd1YaVA\", \"target\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U8HymeeB0K3Ib0acWgJ8FA\", \"target\": \"o+m2QQS9epHCXQOZQQFibQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8wuDVU1YuPiCabH7EfMFA\", \"target\": \"olk1QAFpHTZg1V+12hNUYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+8wuDVU1YuPiCabH7EfMFA\", \"target\": \"7ARtNFnnaQ6GXiln4T/Qiw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+8wuDVU1YuPiCabH7EfMFA\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Oon+nAU+Py1QICO0rL3Lg\", \"target\": \"SgMaBxIjaJ4QFHkgR8jgFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0tfzKiqfAXj9nFago+QBRw\", \"target\": \"SgMaBxIjaJ4QFHkgR8jgFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WRVIPJmmW1C9askKNNRiUw\", \"target\": \"zmB62BQhhI6XLXm+6ULlFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZOXH4sYXO8arQZZMzYldhQ\", \"target\": \"zmB62BQhhI6XLXm+6ULlFA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"We/y8kKlzK1iY53AKV7n0w\", \"target\": \"zmB62BQhhI6XLXm+6ULlFA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JAC8a1Q+hochqr5jsbLVTg\", \"target\": \"qv6D+KQaueUpvOa8xj8GFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"qv6D+KQaueUpvOa8xj8GFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A14BetnIopZaaGAnjtv9mg\", \"target\": \"qv6D+KQaueUpvOa8xj8GFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BpRR0QhEMrdljaEKAwDnOA\", \"target\": \"L2lyi9WyZ8Wx8c+cAIYbFQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"nwTwB7veJZkBspgGW8IgFQ\", \"target\": \"rLQYxyqes6lU2yi9m0LyJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Howi1yXCwy8xQvfqMDCwVg\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nwTwB7veJZkBspgGW8IgFQ\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KXsJCgCkQt7RulySZ6+H+Q\", \"target\": \"nwTwB7veJZkBspgGW8IgFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hkbh2Z/duzjyT2lWCNZXFQ\", \"target\": \"lBimwmPeqlrqfcBOBTWMKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"Hkbh2Z/duzjyT2lWCNZXFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGdleYZfLD0f2H9xzK+zaQ\", \"target\": \"Hkbh2Z/duzjyT2lWCNZXFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"uaWvXzfkUgsilOb8D20xIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"HWZAYVBnOATRXMF9hCxmbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"dJLrv9jk7ldi+jAgapgViQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"HMLHgWFAdRQ52AVLutxJsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7KX3J2kl0HPi8GywziRjFQ\", \"target\": \"l2Q/oIYm74GDWIiJ0C031Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Z8QccklhoEKl/T3txCCFQ\", \"target\": \"BrKEzkZl+oeSpp1lEm/RlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Z8QccklhoEKl/T3txCCFQ\", \"target\": \"1qh/9xi047BN/ZyQnxclpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/Z8QccklhoEKl/T3txCCFQ\", \"target\": \"qIWaissn6WMBkpy7C7Z28A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qYTLx7xi5LMIcWLTCWaFQ\", \"target\": \"FE7mqW78yTU9wwMAC7HbPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qYTLx7xi5LMIcWLTCWaFQ\", \"target\": \"EpddrIm7N5G8G23V6jMJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qYTLx7xi5LMIcWLTCWaFQ\", \"target\": \"c5qReOIC8YJQNGm3SDsY0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YalEWtRbuh74YZNW+V+rFQ\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"ODOfjCoQGHXAkZ+DJzahVA\", \"target\": \"jqTQvwtadBvjuu5420exFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC76g5K8wAxvtnuruj3moQ\", \"target\": \"jqTQvwtadBvjuu5420exFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W5vKZMcezwUnhC22O8hM9g\", \"target\": \"jqTQvwtadBvjuu5420exFQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XTfpVCcfORKQ+DknxFbAFQ\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XTfpVCcfORKQ+DknxFbAFQ\", \"target\": \"wtljH1bOIKRg3l1tzqq9dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"XTfpVCcfORKQ+DknxFbAFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"vjDrwdMF72php/TR16xxQw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"9lplDmateBrR+nSpSFW2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Z8s2POb6xRgVr6sXArKFQ\", \"target\": \"zhwkPccrVBCZlu4Vm/0dvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SuNo1A6pPVft9vfEaDA7PQ\", \"target\": \"sclXs6iGF2XdJL6CuOjmFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8ER2sMgrYPshQENDsp1PA\", \"target\": \"1uQP+qEOk/Iq42/PV6/xFQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1uQP+qEOk/Iq42/PV6/xFQ\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1uQP+qEOk/Iq42/PV6/xFQ\", \"target\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CsWQSLgxYtAGh2euTYqX0w\", \"target\": \"cgFr4gR5TzPQo1GlEp/1FQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"YhXlhDtrAuoXpfAmHA4TFg\", \"target\": \"hUAZT7kt1KUkZ4fbtDs/Pg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YhXlhDtrAuoXpfAmHA4TFg\", \"target\": \"q/LU05EL2cNf9O5N1wNCyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"YhXlhDtrAuoXpfAmHA4TFg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pJCI7DG3PZnN4hb+DaE3Fg\", \"target\": \"zfRKs2oznM215YUmJDOzGw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"WB2s2HpFbbHYpva2vHoChg\", \"target\": \"pJCI7DG3PZnN4hb+DaE3Fg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"NFHpq1UDkaV5/g7ltpNKFg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"PAQX1YZikBf8Nx9aiRuGFg\", \"target\": \"cHPtw67C6L5578ABzu9m2Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"PAQX1YZikBf8Nx9aiRuGFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PAQX1YZikBf8Nx9aiRuGFg\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0ffo8htqDpK9tZnBD4THOA\", \"target\": \"ZU+OQckB0MkyN1L5DK2HFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"St9Ow3vHlWa+rtlVPRO3Fg\", \"target\": \"cDrqV5O9SkmmDl0mmuF2UQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"St9Ow3vHlWa+rtlVPRO3Fg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5qxQ32uiDgE9ejioUCp3+w\", \"target\": \"St9Ow3vHlWa+rtlVPRO3Fg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HOx+OKEcVbnVkHm25ejKFg\", \"target\": \"iLKRP/GmekuHICjQTLXOwg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HLd4WCwL+lRguGJbPDTi2w\", \"target\": \"HOx+OKEcVbnVkHm25ejKFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GcCIv1eDsDxcnxww5BRk8A\", \"target\": \"HOx+OKEcVbnVkHm25ejKFg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfaCWjVStturOAXfaGRhw\", \"target\": \"WbH5BOBw2wFJJDt9YHHhFg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"WbH5BOBw2wFJJDt9YHHhFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"WbH5BOBw2wFJJDt9YHHhFg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2kIv0pAaPg+lCtT2KEMNpQ\", \"target\": \"z58nwbXjBrUUHo0rqUjxFg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"Ha9Vkf8aPNc6T+GtsbjxFg\", \"target\": \"runqlAXZjxQe04Ry33PAGA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"C0Wtey5jUwozMtZQ/zCGXg\", \"target\": \"Ha9Vkf8aPNc6T+GtsbjxFg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"FYUbaJqdExrKUkHpVP00Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FYUbaJqdExrKUkHpVP00Fw\", \"target\": \"wd8lEJNfPOaevsTPxygQTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CfMMoO/qZjDVZ7RWqmTmYA\", \"target\": \"FYUbaJqdExrKUkHpVP00Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"target\": \"TUhSFD6MSB6xXaa6q3dNFw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"TUhSFD6MSB6xXaa6q3dNFw\", \"target\": \"kwZZ5CI8cUe0cUTqGKF6rg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"kUA3zTQcp1YyO9n7mYZpFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CIEk6rJ4pzoVNKDg6ks8zw\", \"target\": \"kUA3zTQcp1YyO9n7mYZpFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzXKeIKTxEylrN333Zct1Q\", \"target\": \"kUA3zTQcp1YyO9n7mYZpFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ET7J4JcMIZwIEmO2MahvFw\", \"target\": \"iPRckEZ+9fRyg2mbWpNZaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ET7J4JcMIZwIEmO2MahvFw\", \"target\": \"xhxYTYvGcyJprp8iGNPxkQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EwOElxfoJhlC43UZl4agFw\", \"target\": \"Tvk5iFzPudwpAjBrr/C3PQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AXXDOz0vS2tmKhyIhXZEXA\", \"target\": \"EwOElxfoJhlC43UZl4agFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EwOElxfoJhlC43UZl4agFw\", \"target\": \"jPwI+OB8erWmfUxJgF6Nrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/+gEOXElYTfxaCAILMq4Fw\", \"target\": \"AGqG5c/VWKGwOacxedtJag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/+gEOXElYTfxaCAILMq4Fw\", \"target\": \"UvwgWrEVRAhIKi90bruZqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/+gEOXElYTfxaCAILMq4Fw\", \"target\": \"WbIwPdpoyybcirBTSc677g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ydq9OqivGkHhR4sOMxuSOQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pcAaJGkNoaKboOUIf7l9Rw\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KaWuVUZ3E9K5pqffOyoaVg\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"q+Kqu3d3s3abK4QbQdM2cg\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"byLzCXNaqxT/CDt05ruSfQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"hdbnBT9t2fyEJTsarj2ckA\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e1Y/y58FpDPgmAh5G8G4lQ\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNaUmTD9XiBvuQRyF+hEog\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iK9ayHc/AXaY84l64fm17A\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AF7PlX/ZzcbqbqppKNmq+g\", \"target\": \"ry+Bc8XTG9qHzeTVjhW+Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cB4k/wvjlkEyABHiHtqigw\", \"target\": \"klOTmfJybyIxWLFRZ4LNFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"klOTmfJybyIxWLFRZ4LNFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6W3ZK4Q6x6D3AFIqq66p5A\", \"target\": \"klOTmfJybyIxWLFRZ4LNFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"vsUVcjvzycT49sp9EfLRFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2LHI1R6SjODg/VQK0mSy4g\", \"target\": \"vsUVcjvzycT49sp9EfLRFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"target\": \"vsUVcjvzycT49sp9EfLRFw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HwgiKjwo1WqhyzyKSibIKQ\", \"target\": \"VSygbfdnvtsy1YASYpTnFw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VSygbfdnvtsy1YASYpTnFw\", \"target\": \"z+Erzv6FAAAlpHglkqjD5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VSygbfdnvtsy1YASYpTnFw\", \"target\": \"r+f8AzuIChCT+43z1V4r+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZgH/ubaX0zuODb9Ja1X0Fw\", \"target\": \"m+eJkUkV2waU1kg+shQUdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZgH/ubaX0zuODb9Ja1X0Fw\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"yIb+coN9LF9f+cIPj6+sJg\", \"target\": \"z4yY0KLuahKFIiCO3ET3Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"z4yY0KLuahKFIiCO3ET3Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wZ45Zz2j32LbhWQfJBEbug\", \"target\": \"z4yY0KLuahKFIiCO3ET3Fw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O0bYqn+5ERSyAfk2Hp0JGA\", \"target\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"O0bYqn+5ERSyAfk2Hp0JGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"w3fZ06w50iTjsguyIbkuGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"i1FG2HVaFaWVKq8Gmr+Fag\", \"target\": \"w3fZ06w50iTjsguyIbkuGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jr/tmb8gfujXSG5D58/n2A\", \"target\": \"w3fZ06w50iTjsguyIbkuGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"ovM1WzY69dbgZd2rj5c7Ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Qyug5sP5mhFfOqoC1UzsRQ\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7iLqJ+rwS9A/DZ3vrRjTVA\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"1eS0SAabJx3xGSCwWSbPVw\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"p3tybEF2UpLMP4gDgTlShw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"leIQh+Nv7Br6jyV3azMvkA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"target\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"w5zZguOil64NNAAULQPU1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"target\": \"9jTabOUPSKMaECQFrBo6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9jTabOUPSKMaECQFrBo6GA\", \"target\": \"rv9CCzm9yv3/yk7JavW0dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"9jTabOUPSKMaECQFrBo6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"w2g1mby0W+j2A70Q16k9GA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"8qqjl2xkJE59URBcF20x5g\", \"target\": \"HxXh0zliSN4s8xGCT2dFGA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"AgTa7bKh9MmBJAaiAAE6Rw\", \"target\": \"bvn2snQLkRyKUisCg3BwGA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"bXuzTviHiDvMf/HlellLfA\", \"target\": \"bvn2snQLkRyKUisCg3BwGA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Ri2CyfNyzGOJEAIOkM6NGA\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ABNMMdHuqvyWm6YJkjwegA\", \"target\": \"Ri2CyfNyzGOJEAIOkM6NGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"Ri2CyfNyzGOJEAIOkM6NGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJe1EsF6WVGhJrfpobqgGA\", \"target\": \"S72IL4YSDnZZA425LPseRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LJe1EsF6WVGhJrfpobqgGA\", \"target\": \"gAzw07bKPCnVDOF1lzf8Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJe1EsF6WVGhJrfpobqgGA\", \"target\": \"VQWWWRLbO/6gR2x5xDP3gQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b2RuDKm6BDQPlGaLg/5OGQ\", \"target\": \"mM43sNjG0c/NvOYz/JWiGA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"EKisYL+aHVjdhvRsM9ikGA\", \"target\": \"FqlSDenR1ixjbu54Vutxlg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"AFFAXTu2gNkQUc+It6w8Xw\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7u2XSrqa0R2siPqtptBvhg\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"target\": \"tNAIkX4qZor6WS+AzCs0jA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"atJoIn0HO1lHzEghWBykxQ\", \"target\": \"hX6pHoKkPTVs3B7cOjy6GA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"UsIPfzCA+x/4AQhfAu/AGA\", \"target\": \"fgX7ya7V38qk7fE9/baWLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UsIPfzCA+x/4AQhfAu/AGA\", \"target\": \"mt56Y7tQ3sCIsVJj4zkXXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UsIPfzCA+x/4AQhfAu/AGA\", \"target\": \"bGDOuVUdJKIu5Ixbo/hl9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j4IK5nCCNuS7CCju09hlQg\", \"target\": \"xuD5Tu/T3V0eT3pRkefCGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"75emx1Xn05NP13ZlbDnqjg\", \"target\": \"xuD5Tu/T3V0eT3pRkefCGA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DKE0oHHGtU5ACYya+k/FGA\", \"target\": \"b8xddkkcHYN8w22fuuUcLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DKE0oHHGtU5ACYya+k/FGA\", \"target\": \"zl2ldV3zCVo7TVH54oYQyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X67JQd6BDRfyuEz1nK08UQ\", \"target\": \"rIJWEAmHpfJL9ygNVIDmGA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"Z+3GtyrpKpm+Q8/nh1/0GA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GFbM1Slh7/TpvUKSCABlsg\", \"target\": \"Z+3GtyrpKpm+Q8/nh1/0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XiC7FH1g29T+yR+JgexY0A\", \"target\": \"Z+3GtyrpKpm+Q8/nh1/0GA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiMXGNwaRu0vX1QsGU0eGQ\", \"target\": \"hBTV8gHKW131TEj7XT9BSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiMXGNwaRu0vX1QsGU0eGQ\", \"target\": \"n+6GBSL9r88/k1XUx+wJmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YiMXGNwaRu0vX1QsGU0eGQ\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"78tJaJJAzpF2sHBJTlVDGQ\", \"target\": \"9F6DxcwNzhY3s6yudOTDSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"78tJaJJAzpF2sHBJTlVDGQ\", \"target\": \"qkDwhgegxr+4Q7DZidQ+WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"78tJaJJAzpF2sHBJTlVDGQ\", \"target\": \"llovrNhzEbhUrsORmDYEXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bql4aQyUJhajEaLPowiggQ\", \"target\": \"b2RuDKm6BDQPlGaLg/5OGQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"BdDwgZDolJQo4Ovd47SGIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"SECy+0u+2YtIyzgbZIcgSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"5zGaSrpx8N1/soA9uEI+wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3DuZJFarhAU7kKtWJ35YGQ\", \"target\": \"W259ly2a2z+n+NPO0gK6zA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HiQHZwhiV5ctprO+wg5bGQ\", \"target\": \"suNMjRNdU2uGcnzGvZaFoA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"cVmbQo4/1D3qErZymi2IGQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"Nk2/mu/0OeJQu+AFrLKfcw\", \"target\": \"cVmbQo4/1D3qErZymi2IGQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"0yNF6u5zyDfG/4h5/Uz0aA\", \"target\": \"cwo49QWCShomLLSCPzSMGQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cwo49QWCShomLLSCPzSMGQ\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rREDvHm7au3O8D+GCoHzGQ\", \"target\": \"tZ670LCRnqYmZFgy501YSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VrJZ30qKInj1L/u4OmCrfQ\", \"target\": \"rREDvHm7au3O8D+GCoHzGQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hGN13fAWjXFjkcNbTkD8GQ\", \"target\": \"kejqF7PNFiVj0UUItLSbKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g40CLRrS7h0f2KDwtQT/pw\", \"target\": \"hGN13fAWjXFjkcNbTkD8GQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2H8qGfkq5FJFrwm6c6dCrA\", \"target\": \"hGN13fAWjXFjkcNbTkD8GQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+GJIVPTagS9nGMxEwIgDGg\", \"target\": \"yuiCkTk2AGHm5mClyk3kIw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+GJIVPTagS9nGMxEwIgDGg\", \"target\": \"GrqrBuWDMZVbhSwmYox8Og\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+GJIVPTagS9nGMxEwIgDGg\", \"target\": \"Llcr5KlFvbooWVvHhDsk/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"xu7RHPhCjrChYtE9udUIhg\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OedMXRR6GuunUdLE7Eirrw\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"92gCbscZjdcp5CNIO3Cd8Q\", \"target\": \"zSIEuhOJCp1RSUg1GfscGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"ZJABKZSq0Pb8qydMTaivHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1JUfBZJztS4NtT5jk77PHw\", \"target\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"metadata\": {\"weight\": 48, \"hover\": 48}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"IYgL0K/UrNk0p3Baa1N/RQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"VjjH8fRdx0M/KrNVGsogWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"vD7RLkl2lIfpCxXIygFzZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"FDPwNBUTwho2jWg6cpf7bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+0BvGvmt4QbfLkDdaZmPeQ\", \"target\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"Kah82w+S/u4725mVZgjAnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bxy0zu5PiV6ZTGmvaJlLGg\", \"target\": \"gc13kItc+IZ6DRIGAC079w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4AxyPSWTXsFcTxsgK/9MGg\", \"target\": \"ZUTxzdQNHeX1I/vY7OUf1w\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"VGoT3pblWNeNvo3RyQyadQ\", \"target\": \"Zr1xQbj95+rjQg7NFHFQGg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"NVczU2cHqw/8i0p//W2MRg\", \"target\": \"z0lL6W6EpkmtxxleyFxrGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"z0lL6W6EpkmtxxleyFxrGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"z0lL6W6EpkmtxxleyFxrGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T5bmSMxYLl6Z9C5awJduGg\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34hValFnV2+dT4B4gubXVw\", \"target\": \"T5bmSMxYLl6Z9C5awJduGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Av+NJ6AdBIQWI6bttPc38g\", \"target\": \"T5bmSMxYLl6Z9C5awJduGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/CORzbjEzOQeZXXaFtByGg\", \"target\": \"pVlR0mvxmhXylIv/NOu8Kw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/CORzbjEzOQeZXXaFtByGg\", \"target\": \"VywXO7h+uJoHcQ2zWV+7Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjKIWAxyw5ZDmfV2FRGgJg\", \"target\": \"NVdzb7qEwp+JDEtZEfJ4Gg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"NVdzb7qEwp+JDEtZEfJ4Gg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HJnZCVM1Suydwko0rNZiUA\", \"target\": \"NVdzb7qEwp+JDEtZEfJ4Gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e2hKmTwsutq/a8SqkTmUSw\", \"target\": \"tKeHjSdQxe3Z9h/+9knaGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"t20xkxierOcBE/o0aSAdZg\", \"target\": \"tKeHjSdQxe3Z9h/+9knaGg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6uEIF2c/sKN3ohddsWgT1w\", \"target\": \"tKeHjSdQxe3Z9h/+9knaGg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"oIY+UI7EbbGLRm9pCvgAGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"target\": \"oIY+UI7EbbGLRm9pCvgAGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oIY+UI7EbbGLRm9pCvgAGw\", \"target\": \"tX0B7WfMBbtslZFb0IpizQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+KNmFytU12EQiuKiLmQCGw\", \"target\": \"JtLiGrVMyc63d3hcU/qYoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+KNmFytU12EQiuKiLmQCGw\", \"target\": \"k+P5VcOaZtVHG+bmx8RO3Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/Pf5fjv5qaGt6+W1OJsLGw\", \"target\": \"foxuEhGkEcv65q+C8blnJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Pf5fjv5qaGt6+W1OJsLGw\", \"target\": \"w7AN2URAar7AQyqiyJ5h3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/Pf5fjv5qaGt6+W1OJsLGw\", \"target\": \"h37mnRkwndeMxNuIzr0k+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vdskl6n1tgJivLOYQUDTg\", \"target\": \"7HqkGStA2UDQzJDvpHgrGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7HqkGStA2UDQzJDvpHgrGw\", \"target\": \"PwyhAzA0omnIl03SygN+bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7HqkGStA2UDQzJDvpHgrGw\", \"target\": \"M8PtUDh0BZnkoIFUB3PAzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7HqkGStA2UDQzJDvpHgrGw\", \"target\": \"sTsjjiN8dBDEMqtx8wtk1Q\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"2+CxNgy+Ysn57e25B6YtGw\", \"target\": \"lDMw8TfqrCgHHpa7WOOYhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2+CxNgy+Ysn57e25B6YtGw\", \"target\": \"H2tvrSRDcqdQ6JvqtrIzsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2+CxNgy+Ysn57e25B6YtGw\", \"target\": \"3OV376PlBaoLTaGgahvzzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G/kLdeAVerSIy1b0YS6PKA\", \"target\": \"sClFZEdxiLr55WlJAS1aGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sClFZEdxiLr55WlJAS1aGw\", \"target\": \"tMYQJ9GjNmp4dSHdunw7ew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rx7rNseK4tgtTGeyt8759w\", \"target\": \"sClFZEdxiLr55WlJAS1aGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6OdEhQQhOWIlGA0ODNLMMw\", \"target\": \"rfnJwiDawLh1XtIuXn2GGw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"RfMSIv8DiMBSeZkZW9iLGw\", \"target\": \"dGVXj5FGpjyorj3Kj9HDyg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"RfMSIv8DiMBSeZkZW9iLGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"RfMSIv8DiMBSeZkZW9iLGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cuFTE6pk6eDeLzNdCG2NGw\", \"target\": \"tQITkugM/C3R1+isp/E6PA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PFQQFTwxo7gAyWxkxct3lw\", \"target\": \"cuFTE6pk6eDeLzNdCG2NGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"cuFTE6pk6eDeLzNdCG2NGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CudMQtlo+Z7PKAT27MOcGw\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"9i5R1KEvmESEXUfnrcMo7A\", \"target\": \"CudMQtlo+Z7PKAT27MOcGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+LeAE1b8Ja4GZ8hbuVu+Gw\", \"target\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+LeAE1b8Ja4GZ8hbuVu+Gw\", \"target\": \"tfw90wbD4QM/PpDbMLj6cA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+LeAE1b8Ja4GZ8hbuVu+Gw\", \"target\": \"LRvRi7afvuVDGY7sRVUrvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mr5ZLOeckoL3eb323kIQrw\", \"target\": \"evpuxwdu8csQws8vVcHGGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eRiEisBwuuYVtjRVE01srw\", \"target\": \"evpuxwdu8csQws8vVcHGGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"evpuxwdu8csQws8vVcHGGw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVzuargAqRhEhH9ikjoTlQ\", \"target\": \"gnkptQoFpXTfr9jYgmviGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"target\": \"gnkptQoFpXTfr9jYgmviGw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gnkptQoFpXTfr9jYgmviGw\", \"target\": \"p3DWdLyxBb2M4TQNRHwLog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HT8WzeCrcJmlevEIilDccQ\", \"target\": \"iPVKv/6OQoTmmrmHPGorHA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"Kbhv+XSqvDoMD13AFgLghg\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gg8gSKkaDuBXakmAggtwoQ\", \"target\": \"iyAX5eh3AUHSA/qH3jhhHA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BEgYfzGevBQjlfcdT2lnHA\", \"target\": \"CFWuU/FXzLqvDkRrko+9TQ\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"BEgYfzGevBQjlfcdT2lnHA\", \"target\": \"gvm93D0ferkbDxApCNsyZA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"NN+6Qzmj2ZvJu6QWXZ9nHA\", \"target\": \"rubYSqpKojQtvA8qiBpXrQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"egTXUYy7nfoHpJfpy2afPg\", \"target\": \"os2gEaRsfryCfJUpkHupHA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"os2gEaRsfryCfJUpkHupHA\", \"target\": \"xYBnEJB+6rnvZzZiDcWrYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"os2gEaRsfryCfJUpkHupHA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rlz1JkRVqbwaCVUWl/fHA\", \"target\": \"VZDm4Fhi1cPeNnGwibUPPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rlz1JkRVqbwaCVUWl/fHA\", \"target\": \"shPnJN4xCSk7oXmY9Q4wuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pJz6MHBW7g/FSNEbHh3kHA\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pJz6MHBW7g/FSNEbHh3kHA\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lsLKKaHMUiMrn6Zcpfq5yA\", \"target\": \"pJz6MHBW7g/FSNEbHh3kHA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MQPdmGkC0zRnm1rkJvU43Q\", \"target\": \"ngeFPVa/1m5AWfQ95RYnHQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"9IPFunlVMTqnxWTnopQX+w\", \"target\": \"ngeFPVa/1m5AWfQ95RYnHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jbFoGmlTquAm7t9w9GQtHQ\", \"target\": \"vmO6Y+KYqGplY91Uh4otkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbNmAv8ufmo03YB7SphOmA\", \"target\": \"jbFoGmlTquAm7t9w9GQtHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jbFoGmlTquAm7t9w9GQtHQ\", \"target\": \"odc3xGllAo0CLlmOvS30+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nt26scFmwAoHlqchE2Q1g\", \"target\": \"wUSvFtg39A812eCTmXdRHQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"BsPPFI0hRbbHh2Yj6wNZHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5gbSqQi7aHAiU/tNOC4hqQ\", \"target\": \"BsPPFI0hRbbHh2Yj6wNZHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RVWH5KhijIHcLRng2KuGHQ\", \"target\": \"bjM1RTxMkbo9D2ZgF6+JVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MevGjFG48jL1EP+uRx5xZg\", \"target\": \"RVWH5KhijIHcLRng2KuGHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QljCsEz0a///Jq2IB2+cxg\", \"target\": \"RVWH5KhijIHcLRng2KuGHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LvOiWpCmoGTwHrNYQ0mpHQ\", \"target\": \"oMgttsFpag2MzaDeUJLmQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AWjelWpqAs1TTbdNOEv63w\", \"target\": \"LvOiWpCmoGTwHrNYQ0mpHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kBqWNP1i1TjWuY6XIL7Og\", \"target\": \"NZOGuB7qjlFhwGOJyC/IHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NZOGuB7qjlFhwGOJyC/IHQ\", \"target\": \"uAvywguLcy7TEJ62HqUCUg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NZOGuB7qjlFhwGOJyC/IHQ\", \"target\": \"Sy2muxkb3YKQEB3A+UWj2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oGIy1SeOMj2/qGAyuTp1SQ\", \"target\": \"oV3IniodoT+MREwyXYDOHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"j2myGcumhmoz/9p4EAE2bg\", \"target\": \"oV3IniodoT+MREwyXYDOHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIvlvNgs59hiOwj2O06peA\", \"target\": \"oV3IniodoT+MREwyXYDOHQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YB0LA09nHexQq8yaL6RqJA\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P7GmEF9OEFNMiorXM0//VA\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3CAi1BHCJ4F6GOSyN9ndaA\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"vtRcGf0ox/w9MXmiOqN8qw\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+CMr8Kod/3DtGz10hUou1w\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pe7UfIlXV+bs378EUzk/5Q\", \"target\": \"zwDjXe56B2Rn4K0LnHnrHQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"C1v88cJyGkE/JFrP/EfwHQ\", \"target\": \"kWWat8VAJru0KAH35zPSzQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"Q7Duik1XvaT8SD31GqL3HQ\", \"target\": \"bjgiBt1reGHjsHTW+QP1Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q7Duik1XvaT8SD31GqL3HQ\", \"target\": \"ruqNFuUB6tHVOz0EcqpPWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SV4sfwaeMk9N7sb4Di38Q\", \"target\": \"Q7Duik1XvaT8SD31GqL3HQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZgUHPvya0V9G/so9Hz4HQ\", \"target\": \"8q9ThZ4dsMD6aLF39MmyxA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZZkUAgtwxPW4ue5corBtmA\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H7bKs0LhQYdNQKdCXn0esw\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"target\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bZ3gBkoKIcnZN3xYRrIGHg\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+hre7gCyki7DbDJpF54Emw\", \"target\": \"XSSPDACChV7VE4V6eMoaHg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"9EimI6rdmwmnjs+mU6IhHg\", \"target\": \"BZ7Hiow+j1NpeSNm7razZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9EimI6rdmwmnjs+mU6IhHg\", \"target\": \"9x3ved1T7wjAWcFR2XFOZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5iSNxr/itO4I17fTbTbe0Q\", \"target\": \"9EimI6rdmwmnjs+mU6IhHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PfRfZgTMHakV3AWfo/3x/Q\", \"target\": \"TUKfnIVWQOWiFDAoAXcuHg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"ziAjc86faoPYn9al48FNHg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"target\": \"rt6bQoEh10pLs01D+2tgHg\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"0AvZ3yTTfxKv6PWjeYkiSA\", \"target\": \"Vr6vzOHfwIdWVbGufER7Hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Vr6vzOHfwIdWVbGufER7Hg\", \"target\": \"iFjI4Rd3CKYVzlxd3JT7eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0CEfdShHc8kj3nBl7h2IHg\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0CEfdShHc8kj3nBl7h2IHg\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0CEfdShHc8kj3nBl7h2IHg\", \"target\": \"VTOkVft5FrNUyE5fBt51Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CLSpACpTt/VOa/AJlK2HeQ\", \"target\": \"xUpvP9QHNo94QQLkF2GMHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RdxNld8Jy3rGVLi1TUSehg\", \"target\": \"xUpvP9QHNo94QQLkF2GMHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"target\": \"xUpvP9QHNo94QQLkF2GMHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1bZ6aYbjy9atWbMAFdO3Hg\", \"target\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"AfT7PVK0yxzKtJ49oQfJHg\", \"target\": \"DVXpioDNFY1CEMdD0M1BOg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2WuhL5d5X3mqFFxzpE4Siw\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"81f+4meCZgFFZXrAqsoIng\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YoguZr7Ht5VTBpiOW2uiyA\", \"target\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"target\": \"tzXhsMltVbaVhDOHG+D51g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cWs/gMnWHiGA9P5yXIfcHg\", \"target\": \"mcallpj5pQ42vQPCDSTb3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"Wadm1Lv/yBVy7yCmh8nkHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wadm1Lv/yBVy7yCmh8nkHg\", \"target\": \"vZRT0MW4o7/ERY8DWdbdrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"target\": \"TvwnYZLgwH2Zg3y6GBHzHg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TvwnYZLgwH2Zg3y6GBHzHg\", \"target\": \"hJkECJ2HLr0UQKVZy7OAdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TvwnYZLgwH2Zg3y6GBHzHg\", \"target\": \"WcjDyJCvaIKJKcpprPVPzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DuKECx6iz87ej86wHmrk0A\", \"target\": \"NXHeZhJqzkRT6S2TvSofHw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"Wqqquk8TBr6fzWvHrWRDHw\", \"target\": \"Wto8vJIj6WsdCigVs77sTQ\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"QrdDL6JUD44vKE1FU/wgNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"mfNb4PePcIOAfwupmedlVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"1zegi/QAelz/NhbUIXIkWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"46aKlHUWbk6T7f6FIOuAgg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"bDci8BIt+vso5WXBUfZPhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Rlo35JxxSopAFTuCxNOHw\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"lDzqred3r2TxyB7oTUd/IA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OP3VuJz0MOYOFOeABeBvHw\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/BzWE+Rn/GqqV38iITCZHw\", \"target\": \"KF/ggkreIF0LsX56a0nTYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/BzWE+Rn/GqqV38iITCZHw\", \"target\": \"FbaFWKwjLhE68HJWltWqyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/BzWE+Rn/GqqV38iITCZHw\", \"target\": \"Vt717tNeUr26Ht7uz3W6zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPxTZE2+n5xhFFsIWTiSag\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"l5qTdPK/f/oVgA5z56KwHw\", \"target\": \"osRoK7EJhp/uYrUewqNieg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jdQapSWmQZLmHrDF7KlSqw\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"ECrXW4TwKkiq0yhDSQsg1A\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iZG0kK83mAwI7l40kRt+/w\", \"target\": \"l5qTdPK/f/oVgA5z56KwHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5bMac/1L9Hlr4864F2GxHw\", \"target\": \"mcdYiG6tbhQYd9JW+Bfqpw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"TkGzF0VtFvMZR00o+IYWMw\", \"target\": \"yutKWTkgBBMnkbPoOKa5Hw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"Lsm4YXngM+SdFC/A8mDKfA\", \"target\": \"bOJhqCEnedN5vMG06Nu+Hw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"1JUfBZJztS4NtT5jk77PHw\", \"target\": \"VGKshU5bzIdPYiX940SwLg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"UBvzeFzQMqnE1mhmQnp41Q\", \"target\": \"v2ros2t94DbEEnUTjOnxHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"v2ros2t94DbEEnUTjOnxHw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"target\": \"v2ros2t94DbEEnUTjOnxHw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2vun/ii125XeGUDqXi72Hw\", \"target\": \"QFU2MEjXqNUYBodQv55IOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2vun/ii125XeGUDqXi72Hw\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2vun/ii125XeGUDqXi72Hw\", \"target\": \"zK2i3Ls/9w5NBkwfx7F7Rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NXtITLwY/XNBuvLK70PXQw\", \"target\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hmoij6THJzrv9Ud2clOGIA\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BdDwgZDolJQo4Ovd47SGIA\", \"target\": \"SECy+0u+2YtIyzgbZIcgSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Svbu70DdkVOl27oKzxuvQQ\", \"target\": \"eC/XnuuS5o8IEr6SYqzjIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BwE/g8Wgt3CdH7ApP+YShA\", \"target\": \"eC/XnuuS5o8IEr6SYqzjIA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/a9HU16WypmlvPBzMlAP1A\", \"target\": \"eC/XnuuS5o8IEr6SYqzjIA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+iDF/+NUmcimkZ/a1vDtIA\", \"target\": \"aLpHxNNDNRGUvBG7y5bCeQ\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"target\": \"b4oXjIZRDnnzcBNWeVY3IQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b4oXjIZRDnnzcBNWeVY3IQ\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3GtPhtMHl5X4mu4HSukWhQ\", \"target\": \"b4oXjIZRDnnzcBNWeVY3IQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"target\": \"cTAnscLtT1cdCB8qhxM5IQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"cTAnscLtT1cdCB8qhxM5IQ\", \"target\": \"vKmWBYMfWo3uIw8qjxft/A\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"oz8+VHSy77Ift85Thf8zWg\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9jduueKJ+ghpIqAdXSLWw\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"s933IHR2SOYkrslDC3JgXw\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hrftt1kQzCVPx8AxEdZneg\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"st4pZAhzBQKvT58+t+JCew\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"target\": \"yrXDjH5Y3GviTTblofUhkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"y/GSzVK9/v+yupHu3fVbIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Oho6Z20dihFORKOVpu6SQ\", \"target\": \"v/vdz8S9uvE40Xq38f5rIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ds30CGNRVqJEmviGG5Mqnw\", \"target\": \"v/vdz8S9uvE40Xq38f5rIQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"target\": \"vK+M4+nZPjX8OiBYzftzpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"n4dz/aeAHhLfQ2Rgl09tIQ\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0ffo8htqDpK9tZnBD4THOA\", \"target\": \"4XGe9HGicBmKt37s8EN3IQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"XANgaiK1FlF7sXU9o9l4IQ\", \"target\": \"aTd06n7GzqvPoy04Amm/NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XANgaiK1FlF7sXU9o9l4IQ\", \"target\": \"i3zgrHGhwU1ZCoHDBm6BOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XANgaiK1FlF7sXU9o9l4IQ\", \"target\": \"ZU6/wYRtpnWbayzt0gCnfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bxtTY+x3AKEBwP60fpiWIQ\", \"target\": \"zN1upeQhUgH8ySChSc2hZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bxtTY+x3AKEBwP60fpiWIQ\", \"target\": \"plg79dOordUluDMn0QerlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"bxtTY+x3AKEBwP60fpiWIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"Sx+IFJGVaRwglNgrd2itIQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sx+IFJGVaRwglNgrd2itIQ\", \"target\": \"lds6GA7YRogoMFggLBQWqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sx+IFJGVaRwglNgrd2itIQ\", \"target\": \"XAkVRZGQ94PVTV2tBtEKww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sGOLVPefYSglunzn+nDIQ\", \"target\": \"wivzWNqrkkl8zEKhr6mwNQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sGOLVPefYSglunzn+nDIQ\", \"target\": \"L4+2ZMmnc8gTOu8mN1LjPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/9wvd4VqJwRqnTWtDanhig\", \"target\": \"4sGOLVPefYSglunzn+nDIQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BJeUy+7Q11m2rTvepSzOIQ\", \"target\": \"WAP9f1egYnZin84aLSc0dg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"NSh4yoNJhqwR/mYpwpaehQ\", \"target\": \"tnPi10EYwtsy6vOdV8n9IQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"dM+UVga4l5SwZ6vnVIcLIg\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"DKAWdo6As2L2HUFCvXjbQg\", \"target\": \"rTKRv6DiTA6L5QsdKBYOIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Kzv484GoYuRyMQRePjjFrw\", \"target\": \"rTKRv6DiTA6L5QsdKBYOIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rTKRv6DiTA6L5QsdKBYOIg\", \"target\": \"s50Uk1EXn+VMFjiSTbju+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+5enw4eQZD6PzwL03iwbIg\", \"target\": \"OSeyIFxuP+o3Yh/Hwo4aSg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"4MUf19wYnk7EbEoo8F4rIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4MUf19wYnk7EbEoo8F4rIg\", \"target\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4MUf19wYnk7EbEoo8F4rIg\", \"target\": \"ILLw32m9uRu0mMk194ka+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dJLrv9jk7ldi+jAgapgViQ\", \"target\": \"uaWvXzfkUgsilOb8D20xIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l2Q/oIYm74GDWIiJ0C031Q\", \"target\": \"uaWvXzfkUgsilOb8D20xIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"74bZRN5X5IW1TnM8MGtaXA\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBkQGjDrY3J6TAqmfqoqg\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D4NrVD7YBPxfp97z+4wK2A\", \"target\": \"x/dAel4REdzym5x4X6ZdIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4g2lGWPTonWIMQgJfV1eIg\", \"target\": \"xrJ3jQNVEYLKSG2wsIVQMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"4g2lGWPTonWIMQgJfV1eIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g2lGWPTonWIMQgJfV1eIg\", \"target\": \"r+bYu5Ulcywy8rBOadEYuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"APcebyIsBjD0c87yW+NgIg\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APcebyIsBjD0c87yW+NgIg\", \"target\": \"pgQHSJE9LdFJ4JX4uLFkbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APcebyIsBjD0c87yW+NgIg\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HWEW1PkDeiZClhSCd6pjIg\", \"target\": \"uRBQkWEdVbeNQ9xfJLkIRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HWEW1PkDeiZClhSCd6pjIg\", \"target\": \"oLBEewI2+TtOi/P+zFONmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5jKIs3ds0x1ZmVoyo9FaaA\", \"target\": \"ufEEAwHXUrDrhF2rnNGAIg\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"9cZ7WX4cBDmtHgG91g2OIg\", \"target\": \"bruKgrPMaRoxZXRCGPN7lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9cZ7WX4cBDmtHgG91g2OIg\", \"target\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9cZ7WX4cBDmtHgG91g2OIg\", \"target\": \"Ie2ipRiDjN8xf3W2LEwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DfFk7TlxB0SKkRl+KSWwUQ\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8rzeo+EaMha06b3mPHaFhw\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"target\": \"xExtfAhao3/BSxCKoKijIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JIIcZtdNc3gO1hbq4vDzNw\", \"target\": \"hzVxuFN90gUwpycD6XSkIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cS/bpu52WCU9X+jUmZu+Yg\", \"target\": \"hzVxuFN90gUwpycD6XSkIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bXGpMEzkXLgG31dxALVXyQ\", \"target\": \"hzVxuFN90gUwpycD6XSkIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hcPbiZB+EqklCe9mW0OlA\", \"target\": \"ocMqEnIQQXgXvr8DZo7BIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UInULZd3JLguWndjhxn7rA\", \"target\": \"ocMqEnIQQXgXvr8DZo7BIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5/iIlMEl3Flhj0dFtY7JSA\", \"target\": \"XF0PlmPVwNzCZ1mS4V3QIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"XF0PlmPVwNzCZ1mS4V3QIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9n4t1Zn+X0s5hKb1T+I6rQ\", \"target\": \"XF0PlmPVwNzCZ1mS4V3QIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iCmnZi9CFvdYvyiq1vugYA\", \"target\": \"vRAPwQoW49NhdfqTKtHjIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4fsPI0x1OUVboOOVA84FzQ\", \"target\": \"vRAPwQoW49NhdfqTKtHjIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+9xYtL34ZhnLLOnUagvkIg\", \"target\": \"ZIy/WsAB3wJpL965LjmTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+9xYtL34ZhnLLOnUagvkIg\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+9xYtL34ZhnLLOnUagvkIg\", \"target\": \"GjAof1RFrIHVKY/0zm3bxg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MFadgRNeoJXgS6129bqinA\", \"target\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"target\": \"uoq9y01xGOC/8QgrrSih6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rz7xx0+t9Pg49kUuRAUxog\", \"target\": \"VoQIcll8yYQ6mu4xtEHxIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8+SDMPAJnM5smfsvJtvU5Q\", \"target\": \"VoQIcll8yYQ6mu4xtEHxIg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VoQIcll8yYQ6mu4xtEHxIg\", \"target\": \"aU8RxAk5dpz79KvpKp2W7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fOV5Br0GYDzZFRxI+gQRmA\", \"target\": \"jWkbRjXrqO1AOdPk4zwUIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fO7Bg973y07RR33P9wVAvQ\", \"target\": \"jWkbRjXrqO1AOdPk4zwUIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RmT2VUCyBml1MSaKA8p4wA\", \"target\": \"jWkbRjXrqO1AOdPk4zwUIw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"target\": \"uAjnNExm68e/VriTomMVIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LkM0/MtyKDGvzCG666tvZA\", \"target\": \"uAjnNExm68e/VriTomMVIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T21csR2tiZvqkP3PvXdr0w\", \"target\": \"uAjnNExm68e/VriTomMVIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AuclOJMUqm+qN0kJfBknIw\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"AuclOJMUqm+qN0kJfBknIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"wd8lEJNfPOaevsTPxygQTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"CNaUNDtRAy8IVd9syOwtIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CNaUNDtRAy8IVd9syOwtIw\", \"target\": \"CfMMoO/qZjDVZ7RWqmTmYA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"j7rR44Lsi82gyHRfHndPLA\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KSy197RLM9KmZkkCLRjLjw\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Na1dZK+2rK5VDYolao51wQ\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"lmt+OhXHPo6hoVKzUzw6Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"pBxTXw3/vIIS3k3LzjU/Iw\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"dAmdzT0drYiMbV9rJdJvIw\", \"target\": \"evFrRg0OxE/+9bIf43KaSQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"dAmdzT0drYiMbV9rJdJvIw\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"target\": \"pejzevFVc+aG7TCaqhshYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"Hyv0Y/SRD3XT32vDuFF8Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FEdzgbkfU1GlG3WzAEOGIw\", \"target\": \"X6RG1Kq2oEGyIv4GTBqBuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FEdzgbkfU1GlG3WzAEOGIw\", \"target\": \"xkCQC4UuNjDrwruLbTgC9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FEdzgbkfU1GlG3WzAEOGIw\", \"target\": \"W/xMOfCQTNSfmwDOYwfP+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4czXzUA3cUHu4vDFhbWRIw\", \"target\": \"X60IMjZAXkAUxMSqc1sFUg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"H8ospugtmYNAXA/jIiE/Lg\", \"target\": \"Yv23/3krJRShpUgClOiRIw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"target\": \"vgFcKtNQ7SqjM54GthqWIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wbch8nHNaJm78RwT0NdXw\", \"target\": \"vgFcKtNQ7SqjM54GthqWIw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"71gwi7Mo8rnVUTFfwjLlnw\", \"target\": \"zB4WdokIJ0GBrsT2ZZSWIw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"cVjQboYulTlIt7PXc5u7pg\", \"target\": \"zB4WdokIJ0GBrsT2ZZSWIw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"TTTqxHqacNkMWmUf98OaIw\", \"target\": \"mTMmy/NAdwV89W4WJPIDUA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"EdEant+ae0LEoqOeV6jERg\", \"target\": \"rW/MwAPM82zAxZRpvjmwIw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"DlQJmZhrLcSFewBXCcWdPQ\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vD9s1XC8nMshE2yQpfmXUw\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TPUTckho+StrbYBpi7L0YA\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NzlMJMnlHuCbxGhinyGmfA\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eYfvAr+UfKq1aCZN2x4y6w\", \"target\": \"z7a8e/M7XwRd4+bIXcG9Iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1MJAGHkRmHjVpBC7NB7BIw\", \"target\": \"LJGylLlX+/njYiLtK5PItg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"LlaVgzJQejxtWoYhKnBQhA\", \"target\": \"VquO/JxvftDOEyHTE9vJIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"VquO/JxvftDOEyHTE9vJIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MauRd73SPuaI/SsIA8Wh9g\", \"target\": \"VquO/JxvftDOEyHTE9vJIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"target\": \"t77LdnOEMwCHq0DUADjMIw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"GrqrBuWDMZVbhSwmYox8Og\", \"target\": \"yuiCkTk2AGHm5mClyk3kIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Llcr5KlFvbooWVvHhDsk/A\", \"target\": \"yuiCkTk2AGHm5mClyk3kIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"jzNaSu+T3Qs82/UlWxzpIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"jzNaSu+T3Qs82/UlWxzpIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9JsLmui6toze4OCS9SqwtA\", \"target\": \"jzNaSu+T3Qs82/UlWxzpIw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4amTqPDVM2qaCvJkvE3wIw\", \"target\": \"NusVDiix1Smp76/E438NQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4amTqPDVM2qaCvJkvE3wIw\", \"target\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4amTqPDVM2qaCvJkvE3wIw\", \"target\": \"l5XDIvoOxlEM5vDuvZb/8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ay/j/DZdTWf6cqT9NS7xIw\", \"target\": \"hNssRjdsVPWPIXeaQ55ogw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ay/j/DZdTWf6cqT9NS7xIw\", \"target\": \"stZS7egMHVmBbshb4MJJxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ay/j/DZdTWf6cqT9NS7xIw\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4OzUZqFa0qF+o6k0o3L/Kg\", \"target\": \"LL8e5mPC9uISxEF+S2UEJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL8e5mPC9uISxEF+S2UEJA\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"4HBkQGjDrY3J6TAqmfqoqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"Ut/cnsk0Y1yuS0FtNMJBwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0dAKUfUWMi8+E9dg5TAQJA\", \"target\": \"IpE9fW8G0hjWR87t7DYy6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f3OysywHhD6Z8jwa/VbQPQ\", \"target\": \"rTFzCPICA7CFFNNB+iYpJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rTFzCPICA7CFFNNB+iYpJA\", \"target\": \"wzAftnwgVrYbBviqd5/Nlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rTFzCPICA7CFFNNB+iYpJA\", \"target\": \"ykhADMSBj+Y4ryryeKH5uA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A5KONIHSVOBCk9kmkPF9zA\", \"target\": \"FUxstvtv/+rU5Dh+tstgJA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"P7GmEF9OEFNMiorXM0//VA\", \"target\": \"YB0LA09nHexQq8yaL6RqJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KXmPvXyy4ZqMu2NJW680bw\", \"target\": \"YB0LA09nHexQq8yaL6RqJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YB0LA09nHexQq8yaL6RqJA\", \"target\": \"kwhLDg0U+a3YNXYiod7Vxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iRbYHE+vW9ThiDFrH1S6jQ\", \"target\": \"r570zqahkepxsh2eoJ5/JA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"mp5eORPy8RbLiLTmHwiLJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"htQlzVTv1oTgctxDSfBI9A\", \"target\": \"mp5eORPy8RbLiLTmHwiLJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MUKgszdFzAs+hYndndby/Q\", \"target\": \"mp5eORPy8RbLiLTmHwiLJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nQbo89EjFqendC5KI+7G5A\", \"target\": \"oetHm4+G1SvJebQE4pyfJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JboAWyXnCoash2wb7PAb7A\", \"target\": \"oetHm4+G1SvJebQE4pyfJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9BqTzf+HI3o6WFXzcgP6Ww\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YK6pX5qLtyizeuChPu6rJA\", \"target\": \"cdtm284VM0XW/UkAuEnudA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ABNMMdHuqvyWm6YJkjwegA\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YK6pX5qLtyizeuChPu6rJA\", \"target\": \"Z9dCRzGkhMPsUVW2ZxiKmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"YK6pX5qLtyizeuChPu6rJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2UD2PaViHF8ssFnmB6i1JA\", \"target\": \"XXV6z+C21UqJfmBajVoCvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2UD2PaViHF8ssFnmB6i1JA\", \"target\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Lkk4/i0RsX0pZPWuSQ+3g\", \"target\": \"OrBRfCSfh8JjEK1NoKq2JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Howi1yXCwy8xQvfqMDCwVg\", \"target\": \"rLQYxyqes6lU2yi9m0LyJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KXsJCgCkQt7RulySZ6+H+Q\", \"target\": \"rLQYxyqes6lU2yi9m0LyJA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9+UpStn+i+Z+AhdJplnWfQ\", \"target\": \"G3IPKxmXRobhVHi5Axf6JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G3IPKxmXRobhVHi5Axf6JA\", \"target\": \"TDK1xqHDYg2OvbepjbOXyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"Y84rzA1oQbbFi71z+Qn7JA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y84rzA1oQbbFi71z+Qn7JA\", \"target\": \"pA2XvK7a3lX0398AJNHdsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uwZmfCzbbNDnrsxq9S4EJQ\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MuG/pOvxWpq41fkfo/RhnA\", \"target\": \"uwZmfCzbbNDnrsxq9S4EJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hauBoMkrAw7jNahaRNgApA\", \"target\": \"uwZmfCzbbNDnrsxq9S4EJQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HX5tAgQbmKUs5gGEs/gx1g\", \"target\": \"fVKL4EddhfGDpPg7OR8RJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fVKL4EddhfGDpPg7OR8RJQ\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ljvza8Y1bpL3EvLFOqkYJQ\", \"target\": \"iwHVSQbCvnI2VmbeHJzpXw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"Ljvza8Y1bpL3EvLFOqkYJQ\", \"target\": \"aCn8MLPRUWx5ggppKWnMvQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"EafAcCecfOXmVtdb/5oeJQ\", \"target\": \"h8KNYZHf0bxUHrr8W4MKWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EafAcCecfOXmVtdb/5oeJQ\", \"target\": \"d+jDWSs2T6c8VQ8BAurfuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EafAcCecfOXmVtdb/5oeJQ\", \"target\": \"voyyn7epEtNpu6dfPTzP0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EJdvqKwmYlAS+Xm8bKRbJQ\", \"target\": \"FVDkPmeCBusht6HcouaOcA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EJdvqKwmYlAS+Xm8bKRbJQ\", \"target\": \"Kii3w+OpNXvyJU7mN5vIeA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EJdvqKwmYlAS+Xm8bKRbJQ\", \"target\": \"OuGpotqT00tF+qVPIIKGsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"target\": \"rfNNiCvdTiGlx3UokrcLPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LLqUTf2C7DiwEPqO9IAzaw\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1jKoWPtNZuyTySc8hwFBig\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TaylE4VzYn6LbkxhJyE6xw\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"target\": \"mQJRFdwXYiEx8QpcJ3BhJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AgyaMoHm6GHD7OTM7tdmJQ\", \"target\": \"LyS4NoG1akOcBiR9Y4fkgA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"0wVgJQ8f3+v7juEd6iN8JQ\", \"target\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0wVgJQ8f3+v7juEd6iN8JQ\", \"target\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9O1Kb43wxyJilyoZOe+EJQ\", \"target\": \"gaZz3FRaKrrPotJgszj/aw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"CJ2M5IpExMq2lCjRAo2IJQ\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"eKrbGVwxXslFk7tfTUidJQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"+7mhXK/ObCSwV/qE+rxsUA\", \"target\": \"4g680cdUyORUJQPIIrvZJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"HYymt0lDvgI53eZlSzAjZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"9JsLmui6toze4OCS9SqwtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"NuW0BVMZ00PqaZsud0QN0g\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"4g680cdUyORUJQPIIrvZJQ\", \"target\": \"X+ETh+ba1MHT0Np6yw/i4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1swWkYMcwILy7Fx6Zpvz4g\", \"target\": \"4g680cdUyORUJQPIIrvZJQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5DY6eHZJSWEo3oBtSU/dJQ\", \"target\": \"SmZUCSQkckSaD6bxuaqjSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5DY6eHZJSWEo3oBtSU/dJQ\", \"target\": \"BbkarsI6ax7N0cDQt6BIbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5DY6eHZJSWEo3oBtSU/dJQ\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VTOkVft5FrNUyE5fBt51Sg\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A4GDSAA4mHRobOibWak3lw\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O/m49NG+OSq7jZLZYq9E6g\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J9lncln67Ektsz70Jz1s+Q\", \"target\": \"f0ZqIe9yBU4CTmvpdjn6JQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ThrLo2r7sbGKGToF5D/UA\", \"target\": \"2lyFL4MZm9NN+aGet2M8Jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2lyFL4MZm9NN+aGet2M8Jg\", \"target\": \"6qLyFjJCSb5H4btWpQA2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iF/+MGd6b6rcWMWF/4KuHw\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Os8EzZqwnhhmbmny3t/aOg\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"/VK6UvapYnz8anaV+QeKmQ\", \"target\": \"x+e1f4UgQ10sORXUS0Q9Jg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"ma5WzktOIRb2JmWJZwlEJg\", \"target\": \"uUCDilQXqpQUOOB0ZFjJSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"target\": \"ma5WzktOIRb2JmWJZwlEJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O61qmbeWRO9KIoKQ+zT/2g\", \"target\": \"ma5WzktOIRb2JmWJZwlEJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+ukLSirK9Uz5XpuYpv9NJg\", \"target\": \"gRn+/8gycwpXhkV24zExlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+ukLSirK9Uz5XpuYpv9NJg\", \"target\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8LYpRks5YYQzVzoyQElSJg\", \"target\": \"vWcvRByQP51uOlZDbmbUbQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"target\": \"sAbMJ4JNtrkiNxfJM/22Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+JdY8sLhBcaEI+2fsGZAZA\", \"target\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"EjXIpdCPF+ANqs8VdEvHow\", \"target\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"target\": \"rKPsaIVig93SRx4sDucCrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nAE3Iupt5EKxe3NeMz1aJg\", \"target\": \"wynyTIsH6t/BOa/n3aEe1Q\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"foxuEhGkEcv65q+C8blnJg\", \"target\": \"w7AN2URAar7AQyqiyJ5h3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"foxuEhGkEcv65q+C8blnJg\", \"target\": \"h37mnRkwndeMxNuIzr0k+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"il07b2ar2edXerhF1SttJg\", \"target\": \"pk5B0OVLBJS0AxojkgDPTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"il07b2ar2edXerhF1SttJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL3EugqztyFZS7UuGML+yA\", \"target\": \"il07b2ar2edXerhF1SttJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eU//jS/YGhjXUkc31H9SPA\", \"target\": \"jJ27Mbj4eUDidX1sAM9xJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hUqcqGPdKtI69S4i5SSFvg\", \"target\": \"jJ27Mbj4eUDidX1sAM9xJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"jJ27Mbj4eUDidX1sAM9xJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8l4iqTxQwu+5R2t40Ua0NQ\", \"target\": \"YyTqT6rBjf31jnAhbMJ1Jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YyTqT6rBjf31jnAhbMJ1Jg\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UZ6y6lAusJZ6T6c1pzhxMQ\", \"target\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"target\": \"fVODvtXqbIUOpKDyQOeZkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KQfkDTCpE+13mWT03/1e9A\", \"target\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"HjKIWAxyw5ZDmfV2FRGgJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HJnZCVM1Suydwko0rNZiUA\", \"target\": \"HjKIWAxyw5ZDmfV2FRGgJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+dvhAHBxRpcc3JD0l919MA\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9pyAHATD/zmm5A0TXWbt6g\", \"target\": \"ZpDdANbVisicDILeVLelJg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"OmSfnOYOTGiS6crbu4XSdg\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"TxvBO7S9xqj6+BYalhASmA\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wZ45Zz2j32LbhWQfJBEbug\", \"target\": \"yIb+coN9LF9f+cIPj6+sJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Xx2MKu3v/ca2MdNY+roAog\", \"target\": \"b3mYkaG76yXTbJpqkNq4Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b3mYkaG76yXTbJpqkNq4Jg\", \"target\": \"ufljtH2NardpOebKv0f7qA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b3mYkaG76yXTbJpqkNq4Jg\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"target\": \"iT8BNOTgOOsmg9/VThq0KA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiYxSGimBFYfI1PSZXEXpg\", \"target\": \"aLzg8ciVdKB4AnwO7AnNJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IO3g2MwcyRgMWLIiPvDNJg\", \"target\": \"eJr98/w3TNjFYYEosmJmlw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"jD2au3yiXlaWJnqGxkfkJg\", \"target\": \"vb55pYg/AOTWKfMFbVM7ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"jD2au3yiXlaWJnqGxkfkJg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sa3pdyOhhVraK3JVehnezw\", \"target\": \"jD2au3yiXlaWJnqGxkfkJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZwC6Jos8tXbLFjtN+qWqPQ\", \"target\": \"eLFnutYUBbSaocV3w9P+Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e66HgXZ0Dd9pxVG+Mc2JRA\", \"target\": \"eLFnutYUBbSaocV3w9P+Jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eLFnutYUBbSaocV3w9P+Jg\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9GHwM2Vq3oyzQrCqt5ciQ\", \"target\": \"yedb80Fwh6vLYA7MQBULJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P3m65AjR0i02EPNbMQtNqg\", \"target\": \"yedb80Fwh6vLYA7MQBULJw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BzxNAuFyU0u79vAaduSj2g\", \"target\": \"yedb80Fwh6vLYA7MQBULJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ec1JUzxjNL2uv25lY0xJw\", \"target\": \"InRmCKqhMYij+gzBJsA2PQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"0G6punNxpIrXDMozaIw8Jw\", \"target\": \"HbngqRZ1/oSZb7WR1lnUNA\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"QZOuiPvOdXLf0ipjpdZYJw\", \"target\": \"a00EzNZRMAgZFXLOFn2jpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QZOuiPvOdXLf0ipjpdZYJw\", \"target\": \"x9R/caK7uyrvHrdoHKuZqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AwPAXKgosGfgMgf3zbXw2A\", \"target\": \"QZOuiPvOdXLf0ipjpdZYJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0XjQtad182c9lBYCcGV0Jw\", \"target\": \"w/FcbfRxQvw1pK7Q0yqzSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0XjQtad182c9lBYCcGV0Jw\", \"target\": \"FaeXygmksygb2560fsqvag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0XjQtad182c9lBYCcGV0Jw\", \"target\": \"7RXVddCVGk1aSOf5BMkg6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W0nU23eN5tbdtlnxiPeyJw\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W0nU23eN5tbdtlnxiPeyJw\", \"target\": \"r2Exk8lJPGlgrhGDuXbItA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7DJ1W9saIcI9kuHgRJb9ww\", \"target\": \"W0nU23eN5tbdtlnxiPeyJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PIdgmaizGZMoimTTuaXXJw\", \"target\": \"qhjwK5yVFJXceVtxx9ARMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"PIdgmaizGZMoimTTuaXXJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PIdgmaizGZMoimTTuaXXJw\", \"target\": \"aewBFp5Orqz4bzZqctfT8w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7JHQoIsP0g4FS2VokidWSg\", \"target\": \"jMWqeq52If22Wh9PvQXaJw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jMWqeq52If22Wh9PvQXaJw\", \"target\": \"tMN/g0oGryogyXQvhLf+Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"jMWqeq52If22Wh9PvQXaJw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jMWqeq52If22Wh9PvQXaJw\", \"target\": \"w4Gwasum6XPWxFODHnnT8A\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3JHFRc0psawMPSLp7G5OyQ\", \"target\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"target\": \"GfyAUcsLzhVQEJH+riPw1w\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"Dubx0iEFkoMEvZDOOBcHKA\", \"target\": \"U3v3OOBqhXPTXAhsLPhL9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"YoguZr7Ht5VTBpiOW2uiyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"mcallpj5pQ42vQPCDSTb3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"htQlzVTv1oTgctxDSfBI9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bf47983ITZjl1tQpD7wJKA\", \"target\": \"MUKgszdFzAs+hYndndby/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0wrfmRz0bC4DiMMMjONHKA\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0wrfmRz0bC4DiMMMjONHKA\", \"target\": \"27dEDmdur1Zy6ijanei8tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/bA9vVOFPjpACVu2Rb8t0w\", \"target\": \"0wrfmRz0bC4DiMMMjONHKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VUm+A7X8eh0YdMFfZAhOKA\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VUm+A7X8eh0YdMFfZAhOKA\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VUm+A7X8eh0YdMFfZAhOKA\", \"target\": \"kpts1Dex2CaSJVU8vdHE7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6xcSc7RWzxobCUZccCVzKA\", \"target\": \"LlZMdonbcTzMHX8tffT5ig\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"6z38xJT8PJ+OX2wGh3AZOg\", \"target\": \"DkeGauT8R8raKKUqw+qMKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DkeGauT8R8raKKUqw+qMKA\", \"target\": \"Q6evY2lIk1V0daivfGCf6w\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"G/kLdeAVerSIy1b0YS6PKA\", \"target\": \"tMYQJ9GjNmp4dSHdunw7ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G/kLdeAVerSIy1b0YS6PKA\", \"target\": \"rx7rNseK4tgtTGeyt8759w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"LqjvcaTtiAIN4NXPRWqTKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Io8slHVhx1bwsIhDh76qow\", \"target\": \"LqjvcaTtiAIN4NXPRWqTKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LqjvcaTtiAIN4NXPRWqTKA\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"in+YJvsOojXHH/Ob/Y2jKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"in+YJvsOojXHH/Ob/Y2jKA\", \"target\": \"tTO1LQu/M4nsk0dADel4UA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rg71KvMVmp7RPzqsdMHX+A\", \"target\": \"in+YJvsOojXHH/Ob/Y2jKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"iT8BNOTgOOsmg9/VThq0KA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YiYxSGimBFYfI1PSZXEXpg\", \"target\": \"iT8BNOTgOOsmg9/VThq0KA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KMEoeG0uw8FmOZpGW4S/KA\", \"target\": \"iqOPT8+OtBjqMEsIZx2STQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"KMEoeG0uw8FmOZpGW4S/KA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"59SqJ30Y4ewJfCaPESjibw\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GrIMPukpxNchu/p5HFfdsA\", \"target\": \"wMcXwM/zQkUlZqpnLZzLKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cJX4tUrBIaK7+EkSfsAUg\", \"target\": \"wA5CI2W0VKI1hEG1273UKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MHef1Rs4455vMbiW11h8nQ\", \"target\": \"wA5CI2W0VKI1hEG1273UKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"target\": \"wA5CI2W0VKI1hEG1273UKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K4GUwmOSE5EwoXkl6ifZKA\", \"target\": \"VdfALO0gD1XZVZq4asFDLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"K4GUwmOSE5EwoXkl6ifZKA\", \"target\": \"ODH4G/1dGsJI0ltnCWxSTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K4GUwmOSE5EwoXkl6ifZKA\", \"target\": \"mLUf20JHZo0y4cZdGEJL9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Z+Df51fCeSuCjkjYnEc8Zg\", \"target\": \"ZkWd9g1H/KU363ma8jTeKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Gwg2EmcZbMB7v8/o0Xbfw\", \"target\": \"ZkWd9g1H/KU363ma8jTeKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pNzciMw4meySKnwq5PrtKA\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lAzBrk9QGzuamP+I91TWlw\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1Y8y0BN2GoCseNXlNfRuQ\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"pNzciMw4meySKnwq5PrtKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pNzciMw4meySKnwq5PrtKA\", \"target\": \"y49HkmqZsWWjpBlDEZSH9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hvLxb+HIIMnAXb5rrsTYUQ\", \"target\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RU7ImjsrRJsKlzFRmKjN3w\", \"target\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"84cQ3j2fcrmCy4xje6xR8g\", \"target\": \"iLaCIH3YHmDW8gCcgzHyKA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"icW9xFiUc3lytmLbrRx/hA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZgWCBNlAJw0MgydF4igoQ\", \"target\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"XIRrwR+1QmICAcgD/JfPrQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JvGAyyIDfzEvsCkSWPoZKQ\", \"target\": \"LW7RUp4WpBDp3yrEPkJV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"scCQ4EkEpjBP4kcbwAYeKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7lhN4GXU1jN/cw81F5Viig\", \"target\": \"scCQ4EkEpjBP4kcbwAYeKQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"8ZgtUC5oiX3t5uq7NRAe2Q\", \"target\": \"scCQ4EkEpjBP4kcbwAYeKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3E5FvfHnZOL7RkNiaiowKQ\", \"target\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"3E5FvfHnZOL7RkNiaiowKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3E5FvfHnZOL7RkNiaiowKQ\", \"target\": \"tL8Oc0Tm9BAb2WU2KCrC8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fqxr4U/A0rdSg8HIaSj3TQ\", \"target\": \"k6uUP8gx74Dn1kQ5Q4I0KQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"Emni82nbGNjkVtShNsS7fg\", \"target\": \"k6uUP8gx74Dn1kQ5Q4I0KQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"cxmtn2AvCTzQcgJUg/JMKQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"target\": \"cxmtn2AvCTzQcgJUg/JMKQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cxmtn2AvCTzQcgJUg/JMKQ\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"i+mEeURUNZMkwdukcXesOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"tRJwNHh9csMWQV2GvAFjdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"pYz+Bh5cLgD4u37ISthJnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"vtWfeIoNdt2OYL/M/Cg5qg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"lzH6Idq2FJnBDgEnU3CMvQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UBC/nd1zjAQ+97PFb05iKQ\", \"target\": \"Xyt8E9Vly0yzp9vAum9d2Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"g40CLRrS7h0f2KDwtQT/pw\", \"target\": \"kejqF7PNFiVj0UUItLSbKQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2H8qGfkq5FJFrwm6c6dCrA\", \"target\": \"kejqF7PNFiVj0UUItLSbKQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"OmSfnOYOTGiS6crbu4XSdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2126Ui5KZ62zr+niVdOrKQ\", \"target\": \"aY38F1Hi68kXNObkjJy0kg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HwgiKjwo1WqhyzyKSibIKQ\", \"target\": \"z+Erzv6FAAAlpHglkqjD5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HwgiKjwo1WqhyzyKSibIKQ\", \"target\": \"r+f8AzuIChCT+43z1V4r+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5998ToEfo0L8YaszINfSKQ\", \"target\": \"8iebXCqtG1eN+lGV7HH8Qw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5998ToEfo0L8YaszINfSKQ\", \"target\": \"8T1982ymi8ae9f3QJo87xQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5998ToEfo0L8YaszINfSKQ\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DiTNRzvHxe9KujjLA7t6dw\", \"target\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E2X4Af5b9cZ65cCBAzVxrg\", \"target\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"MXZNIAJ67ll379Nk+0n/KQ\", \"target\": \"hvsaBnv2e212vOtI9S2HwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/4ACyr77rb+9baaVrT4iKg\", \"target\": \"2w6gQx/64oNIN6vPSJkq1g\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"WmX+Bd3+PspInoASh3GROA\", \"target\": \"hLcKVFSDYzYhd3ukkH4rKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gkorgH/UGPyBdCL13IruUA\", \"target\": \"hLcKVFSDYzYhd3ukkH4rKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PWazbWYXRKDBh37GwcFlvA\", \"target\": \"hLcKVFSDYzYhd3ukkH4rKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Gk9r9+9dPSxFKRaRSiRig\", \"target\": \"e4ROZ13ccxz2g26f45swKg\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"7njeFt4dGgGvsxh33HpOnw\", \"target\": \"8n6srpqptj5FhuXzdPRNKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8n6srpqptj5FhuXzdPRNKg\", \"target\": \"WbjeTkam/jv1EPnvm9ya/A\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"0AV8XBG6I50yWsMa6N9pKg\", \"target\": \"402+Q4nAghzmmhzcXv9sUw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0AV8XBG6I50yWsMa6N9pKg\", \"target\": \"1TyGrvk8SzqnwelG70YR5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0AV8XBG6I50yWsMa6N9pKg\", \"target\": \"fNS5Dg9E+rY2v60BUkcE9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SQ42EOxBogb4ZYJ+L6pPng\", \"target\": \"i3MBq8W1fq88lPJPOWWDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8JbF9ap+6Qhiv10Vnu/1uQ\", \"target\": \"i3MBq8W1fq88lPJPOWWDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fNckhogPhWH5mD6GuOx38Q\", \"target\": \"i3MBq8W1fq88lPJPOWWDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"lBimwmPeqlrqfcBOBTWMKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGdleYZfLD0f2H9xzK+zaQ\", \"target\": \"lBimwmPeqlrqfcBOBTWMKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/19+KHblwik18G6UCCeQKg\", \"target\": \"rXwmglMMZnc6Yf56zT6cNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/19+KHblwik18G6UCCeQKg\", \"target\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/19+KHblwik18G6UCCeQKg\", \"target\": \"N9riAVATY34jHBt90TQZrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7fjN0LsajQqPfVlvDEusKg\", \"target\": \"pYlTvg387QEobSKG4JksRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7fjN0LsajQqPfVlvDEusKg\", \"target\": \"hW366XCp/i7HQnhv+RXHXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7fjN0LsajQqPfVlvDEusKg\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ee+PzZHHk1pLNU6kTEnDKg\", \"target\": \"dOitCDCE63Unt2Uz+02yPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2xWzE0Ep6ErJ3OdsXO9HqA\", \"target\": \"Ee+PzZHHk1pLNU6kTEnDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"22CPbcrrBAQIB6Uhv2CtQw\", \"target\": \"UU6wJSRbX+6ETKorOIDDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UU6wJSRbX+6ETKorOIDDKg\", \"target\": \"xqgM3rfoMtsn1TX/WLjvbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"target\": \"UU6wJSRbX+6ETKorOIDDKg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CDlP7HSYXLmFaiyN5IqYgQ\", \"target\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"target\": \"LTaDkNz2mZP7yiaR9otroQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9fU7qlQhRR5rhI7dOB+uyA\", \"target\": \"Cxa1mNdb+IH5+SvGvFzfKg\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"4OzUZqFa0qF+o6k0o3L/Kg\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"st4pZAhzBQKvT58+t+JCew\", \"target\": \"yHBDU4vBCfdsrU8X0BwMKw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"KAKEOkFekajnA5P8iX0aKw\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KAKEOkFekajnA5P8iX0aKw\", \"target\": \"KBvffIWk1pKZrIIrmmUtVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KAKEOkFekajnA5P8iX0aKw\", \"target\": \"ri48j885BLzHXAWT8WJduA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l0Jn5R0PeAMlVCjBWql4Zw\", \"target\": \"oSOIcWuiSZPMHE5B5bBWKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O/gDisntYgEbfhuQHG3dZw\", \"target\": \"oSOIcWuiSZPMHE5B5bBWKw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oSOIcWuiSZPMHE5B5bBWKw\", \"target\": \"opICajuz4lb9z9H3bjGb2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"Gf88tDhAetc/OxboxVK8VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"CIEk6rJ4pzoVNKDg6ks8zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"ZzXKeIKTxEylrN333Zct1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBQRQOTB6JvvuJWXm5vKw\", \"target\": \"6RqXWDqyVqOwgmmmqWtA/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hP1+cpOWd9uU9/r4Bl2dKw\", \"target\": \"k4BLc8VJPYj1HiQLZE0fSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TbiaKQeWZOhnP0oW13uX/w\", \"target\": \"hP1+cpOWd9uU9/r4Bl2dKw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"VywXO7h+uJoHcQ2zWV+7Zg\", \"target\": \"pVlR0mvxmhXylIv/NOu8Kw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jSRfMZy/4td8W+2rHbKKjg\", \"target\": \"zk77BSjWg14792evZRPLKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cH7hwoKgMaOJsY5D3kVnmw\", \"target\": \"zk77BSjWg14792evZRPLKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2kwqkjb20NhFUxxC1Tm51Q\", \"target\": \"zk77BSjWg14792evZRPLKw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G7/xMwCxUY6aMLpdikocRw\", \"target\": \"rWlJxrA/s72KH2o1oRTzKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"rWlJxrA/s72KH2o1oRTzKw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"rWlJxrA/s72KH2o1oRTzKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M8HxGRFCNypXwF/eIsH6Kw\", \"target\": \"hGEk18My+bGDzPUGuGj1VQ\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"ODH4G/1dGsJI0ltnCWxSTQ\", \"target\": \"VdfALO0gD1XZVZq4asFDLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VdfALO0gD1XZVZq4asFDLA\", \"target\": \"mLUf20JHZo0y4cZdGEJL9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Rb0njpcOXDpaiJ6vmA4Ng\", \"target\": \"A6Lm5QBypgDp8HuoTthILA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"eUllzuIfKGJ2N2NV6xyHmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"lBfTM/Eoboj+//nPf9zJpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib9VmFqcj1KqsdJi47OwA\", \"target\": \"A6Lm5QBypgDp8HuoTthILA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6Lm5QBypgDp8HuoTthILA\", \"target\": \"jW7V0TO2LoawsPs4sppD9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1IsjuWLfsWa9UTyKGAheqA\", \"target\": \"9eRCLSKhdRxkjv0juzJPLA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"KSy197RLM9KmZkkCLRjLjw\", \"target\": \"j7rR44Lsi82gyHRfHndPLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"j7rR44Lsi82gyHRfHndPLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"target\": \"pfshJY0SJSdlynrp5SpwLA\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"fgX7ya7V38qk7fE9/baWLA\", \"target\": \"mt56Y7tQ3sCIsVJj4zkXXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fgX7ya7V38qk7fE9/baWLA\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"bGDOuVUdJKIu5Ixbo/hl9g\", \"target\": \"fgX7ya7V38qk7fE9/baWLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"rHM9RQATp1jHQEMKoPrBTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"AGdleYZfLD0f2H9xzK+zaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"9Magx3/mXuyBOVJWMpiCug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"XQnT/93qqR6fC3YyjNB40A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1YhAPzeWqGXyj0MJwKm5LA\", \"target\": \"ILLw32m9uRu0mMk194ka+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4UwkwFD6vbUHvdt1KNwrPg\", \"target\": \"zcgO0wKMPX9rwh9b4B7XLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tGIgPpSLABsuqToLwtBzsg\", \"target\": \"zcgO0wKMPX9rwh9b4B7XLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lmCvKTCRZckGDMS8v1XR9w\", \"target\": \"zcgO0wKMPX9rwh9b4B7XLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"HrocpK+R2Xbz1ur0/JLxLA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"HrocpK+R2Xbz1ur0/JLxLA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HrocpK+R2Xbz1ur0/JLxLA\", \"target\": \"IaImK3Wfmh8zprJ17Fuz1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XU24yr/ZZYJLIUWRlyZPSQ\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LkM0/MtyKDGvzCG666tvZA\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Z1owg5XRBMZ+UZarVUEvbg\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"T21csR2tiZvqkP3PvXdr0w\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q9DbiBLOUlsRxS7bC1lH4w\", \"target\": \"jjcuIH+Rb4ZSTVL5/BcYLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"vK+M4+nZPjX8OiBYzftzpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"zl2ldV3zCVo7TVH54oYQyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8xddkkcHYN8w22fuuUcLQ\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3JF5d44TiQe135KITj8gLQ\", \"target\": \"nS6lfxCR8UbhgnG0zjn2wA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"G0Jvudh0MprO+ahcgETzwA\", \"target\": \"IDGncZABpx7Dz7CreKwpLQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"CtDI2Ydifk/J2l6kEfI2LQ\", \"target\": \"SNmVHg4+txr17tuDDEzSRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CtDI2Ydifk/J2l6kEfI2LQ\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"CtDI2Ydifk/J2l6kEfI2LQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+abHxnRqRfh1nZS42+ZlLQ\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+abHxnRqRfh1nZS42+ZlLQ\", \"target\": \"cT8S0osGv1Yx07xujT9gqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+abHxnRqRfh1nZS42+ZlLQ\", \"target\": \"budk6JQt4FfXRTibqggC/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"target\": \"hBaIymmn7uUX5Xp9RkaDLQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"4hZmMgnJIT+452lBnYuVPw\", \"target\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"H8DT+1a16Vl5KIs2uBGBcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"GogN3PGHqIxQPq1ggN//mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fk9ODZxwazvx3GbYrh77tA\", \"target\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GN80cgRQzi3/LJyYVI2mLQ\", \"target\": \"eKr9JVEDRy/wrfqS0kXGug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"target\": \"eEtdS1uf44YPM0aRYMu2LQ\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"4ANIk4A9ljxROfdROPu4LQ\", \"target\": \"DOJ3OEl+wag5/2KgunNwhg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Y2XOerDgiAo1WK6+LC/sQ\", \"target\": \"4ANIk4A9ljxROfdROPu4LQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ANIk4A9ljxROfdROPu4LQ\", \"target\": \"9SJVLkajTeR4POfLrh2KvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EeLZzQRqDNrmxT6Ry8jILQ\", \"target\": \"gUFSWzIUmsXeT+D4FdTbWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EeLZzQRqDNrmxT6Ry8jILQ\", \"target\": \"MX1iQXm9JIumNefXUd9PXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OnleVs9vYySxKt/ycEmYkQ\", \"target\": \"lotyYjcXgKfDBSZvdowGLg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"VzS48APpJ+ye48pIki2dug\", \"target\": \"lotyYjcXgKfDBSZvdowGLg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"9u9ObBHw0ZkLEIYDSjgPLg\", \"target\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9u9ObBHw0ZkLEIYDSjgPLg\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9u9ObBHw0ZkLEIYDSjgPLg\", \"target\": \"M+OEVS8+0HCG1kjM26aRsw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3gslUUOyf0AwJz5K9OMXLg\", \"target\": \"NPfCKgsf74P+xfBuYOkBPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3gslUUOyf0AwJz5K9OMXLg\", \"target\": \"HxdyC6c/hI78wBGO81UahQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3gslUUOyf0AwJz5K9OMXLg\", \"target\": \"AgQzuVP3IkMn/Ov+dswguQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+x+3cuNFE2sMEo+dTzgtLg\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"foxrIAy0Xhl38FjWCJAvLg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"SFALSDMtSkulgxrvfj4+Lg\", \"target\": \"liBrYiJanb7tl/OaVcpARA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"SFALSDMtSkulgxrvfj4+Lg\", \"target\": \"mnkauRSDn2xt+0K5bWlj1w\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"eyAGwsikTSRHjosKLqBeLg\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"eyAGwsikTSRHjosKLqBeLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"72sWJrEiMlL0pIoWjHY5WA\", \"target\": \"eyAGwsikTSRHjosKLqBeLg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eyAGwsikTSRHjosKLqBeLg\", \"target\": \"jIVsa9D/kpFcPilmWa4Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eyAGwsikTSRHjosKLqBeLg\", \"target\": \"wZSNMWPhftzSTbrv/fr26w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lI/eft/RzEEhzaigNox70g\", \"target\": \"qAd6USNyWqskG4vch3uqLg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"fc6IFrUFydQMo2hfHcOqLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"fc6IFrUFydQMo2hfHcOqLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"uczLdKTFHKiIVXA00xpOqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8RvOVn53HohruwyrXukI4g\", \"target\": \"VGKshU5bzIdPYiX940SwLg\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"YhGi57jZutouXnsH9GfHLg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"aS/j8kZ+FFHiJeK+4iBrTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"ZsxjhsAD6Sv1A0bFckkNfw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y6tU5iNEDLF6oW77OnXC0g\", \"target\": \"YhGi57jZutouXnsH9GfHLg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YhGi57jZutouXnsH9GfHLg\", \"target\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5Of74SG9/W96DpqLkPXKLg\", \"target\": \"ocP4qC/3EO7sFT+R6aIZTQ\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"4FMBsVtLVFe/Q7jRSBv/gg\", \"target\": \"5Of74SG9/W96DpqLkPXKLg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"5Of74SG9/W96DpqLkPXKLg\", \"target\": \"wd8a5USSMAFt1nzWAND3lA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"5Of74SG9/W96DpqLkPXKLg\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"y3Vmos9YspAQxCoqI6LuLg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"+frVo3muv6V06M/IKtzvLg\", \"target\": \"CThZPER+VAiHSpO3wsKG9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0tfzKiqfAXj9nFago+QBRw\", \"target\": \"1Oon+nAU+Py1QICO0rL3Lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OVRrkEa1Qc7kjpyFl1Y7xw\", \"target\": \"VARfV1bcE8iSgeX/DUgDLw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"7pOwWLDQjqEZj812MoIMLw\", \"target\": \"koIW9iwU5uZe/6B7Rj8bdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pOwWLDQjqEZj812MoIMLw\", \"target\": \"M28X/3X9XhtMKEhs+6oP2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pOwWLDQjqEZj812MoIMLw\", \"target\": \"Df0dOb7XVmqj7vlzc20y4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CsWQSLgxYtAGh2euTYqX0w\", \"target\": \"mrh7Q4e4jyxYkrYaHRIrLw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"imqM2tAn9iI3UoMOfiJ9Vg\", \"target\": \"wIe8AMmvGoVrHsQaNupMLw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AdIBqPKbWZ1ixMQ1vwkHig\", \"target\": \"wIe8AMmvGoVrHsQaNupMLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"wIe8AMmvGoVrHsQaNupMLw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RnBcJDQA/ghDLQ6v3nxjLw\", \"target\": \"ZXBZdqAF3xm7IzHq5J1VRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1+u3lYKavPRkmHAzpIgisw\", \"target\": \"RnBcJDQA/ghDLQ6v3nxjLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"target\": \"RnBcJDQA/ghDLQ6v3nxjLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"z9SQ8Yfw19I4E86iEKyweQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"ymZAIf0E6zclGzrp8HZOkA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"rfBcOTnoGOUeM+2vyb/r1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"target\": \"qYX/hJ1iKWEAkuu9BK/y3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P/7py6K8bExzhGEq33Cz+w\", \"target\": \"oRsK7fnKlgVc1w5M9v2PLw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9rFAyGveDQdoTcKZUAqYLw\", \"target\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"qhjwK5yVFJXceVtxx9ARMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aewBFp5Orqz4bzZqctfT8w\", \"target\": \"qhjwK5yVFJXceVtxx9ARMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTNx6oL4X1f9yslPIOEfMA\", \"target\": \"b3tzFgpkl9x19kBFzaQ7iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"QTNx6oL4X1f9yslPIOEfMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTNx6oL4X1f9yslPIOEfMA\", \"target\": \"V42JQgL0mjSlYRIaBgRe1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E+2Xq5DDpUlkLdDvBpM6MA\", \"target\": \"gty2NExwPAbA4hpY0yCDsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZ9LMeimyr0YWPJ0IsRj3Q\", \"target\": \"E+2Xq5DDpUlkLdDvBpM6MA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E+2Xq5DDpUlkLdDvBpM6MA\", \"target\": \"qzW5fohBXdhHaVpKw/wW9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Yo27tV3GL1QlPVO9Xgs8MA\", \"target\": \"ne3mJ4vHAOk3E9IlDOcAqQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WEDPEOtHnqBwx2mcLMq81Q\", \"target\": \"Yo27tV3GL1QlPVO9Xgs8MA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Yo27tV3GL1QlPVO9Xgs8MA\", \"target\": \"tEeYd2NRrb/Qi528JuN1+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBSjXE/BZwDBw+/y9M/xTw\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"target\": \"gKIU7Gl4oIeRvEvPu/O/ew\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BnBQ+tWug8T5kfIlBJf1yQ\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GolMlD0lgvRnJJ+TP7Iy2A\", \"target\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c1kd2WQP6EnqnEHUyx5AMA\", \"target\": \"r8kHtYO3piUAlwogK5+R+Q\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"118lQL1ttP5xuIWkGz5JMA\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"118lQL1ttP5xuIWkGz5JMA\", \"target\": \"8Axznb3nRk/NprDR3QVNxQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"118lQL1ttP5xuIWkGz5JMA\", \"target\": \"6suweX+9HNHlp9Z3oC+26g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T6DOy1T+b+BR6BskRAVMMA\", \"target\": \"sbcB52eztAxnw3afxfrTzg\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"4zizU9T3lsrxZyVd95tuMA\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4zizU9T3lsrxZyVd95tuMA\", \"target\": \"mweUiILAkdAuuG85MxZPrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4zizU9T3lsrxZyVd95tuMA\", \"target\": \"UOJIpTijHzZsoiQk7xwzxQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"yUy3v6dGwda6RCUo5/KBMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vWy0S3JkUaZezamXjZGr3A\", \"target\": \"yUy3v6dGwda6RCUo5/KBMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Jk7T08xaG4CWAcdaiJqg8A\", \"target\": \"yUy3v6dGwda6RCUo5/KBMA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ihRDb579O7VarQ0579yJMA\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"ihRDb579O7VarQ0579yJMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SU/6PQhlsHPBRc4pxcQR6w\", \"target\": \"ihRDb579O7VarQ0579yJMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TLWNjDgOrmFv4k8NQe+wMA\", \"target\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9H4dfR82pf4C6zAX/Kw+wA\", \"target\": \"TLWNjDgOrmFv4k8NQe+wMA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TLWNjDgOrmFv4k8NQe+wMA\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sgu2BdeSWV91ulWfcnHRMA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"XWuOWtv1rRFGAv36ULTZMA\", \"target\": \"mQ7tVUOG/uH2XHt3C1YnQg\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"uxafDr00Oc9wR3p87+iCGA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"xrfWfyWvrn2oZzLIjT1bUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"UzNqOCgoTFGUyAk8syFNVg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"GdAR33PKO7t7itLwkcSkgQ\", \"target\": \"TRMbN56JfWQj7mhdiELdMA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"mgKH8XgnUmt990hciUKkvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F1YGf+WOJFyqnwxZfAmy2g\", \"target\": \"TRMbN56JfWQj7mhdiELdMA\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"TRMbN56JfWQj7mhdiELdMA\", \"target\": \"jnYl9d4UZUupzck1m5Xl6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLTeNonoRsfy6pTZgfM80g\", \"target\": \"QFKPk5ErCFl9tR5YYp31MA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"eJYBaXb15Ay5PIUOGzwCMQ\", \"target\": \"pb73mVNEl7N+Chk55BH2VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eJYBaXb15Ay5PIUOGzwCMQ\", \"target\": \"uldXPY99tgYVFbIPI3L5tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"eJYBaXb15Ay5PIUOGzwCMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVgPo1NwXZR+BngAq2QfMQ\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"MVgPo1NwXZR+BngAq2QfMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVgPo1NwXZR+BngAq2QfMQ\", \"target\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjYyHz4ObV6kmsjcMvQfMQ\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjYyHz4ObV6kmsjcMvQfMQ\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjYyHz4ObV6kmsjcMvQfMQ\", \"target\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GJ//Aso190vpgiSuCMInMQ\", \"target\": \"ZhZVkXk5CkcWX5ZOOMDl8A\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"Of3cqqWX3hgee7b+lotWVg\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"target\": \"wjjHMDS+oPWRjv725xcDiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UvwgWrEVRAhIKi90bruZqA\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"target\": \"uUCzjxRkoKiyOiDmn6dJMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DQtysVHWuXq+1/X7I2IIrA\", \"target\": \"VJ4miKmv2dvTOUuQo0FiMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7bnu1kXLvO3ak/QRfIZKsA\", \"target\": \"VJ4miKmv2dvTOUuQo0FiMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8zxchcDckT1281RKsWBF3w\", \"target\": \"VJ4miKmv2dvTOUuQo0FiMQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UZ6y6lAusJZ6T6c1pzhxMQ\", \"target\": \"fVODvtXqbIUOpKDyQOeZkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KQfkDTCpE+13mWT03/1e9A\", \"target\": \"UZ6y6lAusJZ6T6c1pzhxMQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"DfFk7TlxB0SKkRl+KSWwUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6HKS535LPpWhKpn2J6ajMQ\", \"target\": \"Wbuc7nVa2E5KBLrpb9Rr6Q\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"zbj5HceitgxNgyxaCXK2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G0HrHwXCAPzndCm/PFCQ7Q\", \"target\": \"zbj5HceitgxNgyxaCXK2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"zasWMA2ujUekpJ/0C/VH9g\", \"target\": \"zbj5HceitgxNgyxaCXK2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wk1nG7TWHHrjkW5jCMm2MQ\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"Wk1nG7TWHHrjkW5jCMm2MQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dPQX4HZuIcEoHZnu61i2Q\", \"target\": \"Wk1nG7TWHHrjkW5jCMm2MQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8M3rhKck0REhSjpNtC7YMQ\", \"target\": \"XLl7+jPIy0KntxXZsFAjZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8M3rhKck0REhSjpNtC7YMQ\", \"target\": \"o2CKozplhIEEwPMwuJwHfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8M3rhKck0REhSjpNtC7YMQ\", \"target\": \"Z9n/kmsyq52cF3jYG9nZwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"xrJ3jQNVEYLKSG2wsIVQMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r+bYu5Ulcywy8rBOadEYuQ\", \"target\": \"xrJ3jQNVEYLKSG2wsIVQMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E5RFxFLm0rwucZ8uZNlUMg\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5htVZaN4DNSg5D/11IMaSQ\", \"target\": \"E5RFxFLm0rwucZ8uZNlUMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E5RFxFLm0rwucZ8uZNlUMg\", \"target\": \"xsZ3QoOsiYVsocqIeU1Yfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2yyjPHHujpqv9H3nU+D7Tw\", \"target\": \"fwR6mM3NYfCOhSS0Vj1bMg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"l7I3lB3cXywY3HXs1bt9Mg\", \"target\": \"xSijYTPxbvF64cPzbe9oVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l7I3lB3cXywY3HXs1bt9Mg\", \"target\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h+88TEDu69e76yofbFUC7w\", \"target\": \"l7I3lB3cXywY3HXs1bt9Mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3pLi4d+RCLq4lC3A772EMg\", \"target\": \"raZOG5bVUG5VdyFDA9JGuA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"A7DMC5xh2BOv+DzA5zFtbw\", \"target\": \"yP6QOObDsAHs1VjRToyUMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vU3OpI4mB3qzER4N/RBhnw\", \"target\": \"yP6QOObDsAHs1VjRToyUMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tNPQOgx1QK26mgnI8Z8woA\", \"target\": \"yP6QOObDsAHs1VjRToyUMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"48shU8rWkVDv9ux1mYNJVw\", \"target\": \"pgCefxI2zE0FtD8nu6O0Mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"pgCefxI2zE0FtD8nu6O0Mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pgCefxI2zE0FtD8nu6O0Mg\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IOyeV/FDuKq0lQsYOChRxQ\", \"target\": \"fNb6tc/91t7GAC/jctvKMg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"mmZH8gVBkIsf/WBYN3zaMg\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"zqCo80r14M+NVkN22VzcMg\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"YrrsQS8pOEwx8jIkOi12VQ\", \"target\": \"nYvgrk6azMPgtq4Gr5vcMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"target\": \"nYvgrk6azMPgtq4Gr5vcMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2t1yVN7Z9uNwoEmgU8tS7Q\", \"target\": \"nYvgrk6azMPgtq4Gr5vcMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0RJgJMYTybpAEfPhQMBfcA\", \"target\": \"M4N56iTz6LyhT1VwgSjoMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6sR9fgv8OAB5rOrZEqkQqA\", \"target\": \"M4N56iTz6LyhT1VwgSjoMg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M4N56iTz6LyhT1VwgSjoMg\", \"target\": \"vxral90saOW+72B9xdDaxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"JBXEywy8jAIFIaaiea3oMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HZQlAg8cz/q0rps2qUxTmQ\", \"target\": \"JBXEywy8jAIFIaaiea3oMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WZO2jjMqEHtvBBYv4mK8A\", \"target\": \"JBXEywy8jAIFIaaiea3oMg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93f7IAVfiVHO+9CK8tAGMw\", \"target\": \"PiJmAxkbdCeOWOHSKl/zTA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"J7Ke/4dKti+GVxib2RxLMw\", \"target\": \"P3ZfkdUWoPHfTnvoEZovjg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"4IorKL4CJGfv5Xy/10jaOA\", \"target\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"target\": \"kD0Flo+4T5a+cZgS2c3wdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6bRiUSe4hBMy0l8u/Kc6qQ\", \"target\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"target\": \"wvKwvzhvGsDMWXfZrSC8yw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OrtYZ7zSrgx1JQwhYidPMw\", \"target\": \"b0c1d26mJFr1jSCe2avt1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"HJnZCVM1Suydwko0rNZiUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+NTLg1n/OAp1T/gBz+hZMw\", \"target\": \"oFQNBM4xI+HgY5Q9FrzhXA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"ZZkUAgtwxPW4ue5corBtmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"pL6nc0UXPCXIC0pq2oPHow\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"49SU9wSH7GHxDjHGMs+yMw\", \"target\": \"H7bKs0LhQYdNQKdCXn0esw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LbpAv4RD73ZyJlP8Viv4ig\", \"target\": \"rzFcxkmo/fUZ0TWEtvO2Mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+ZNPAfLfJ4E3rqIsOm3zA\", \"target\": \"rzFcxkmo/fUZ0TWEtvO2Mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JglA7absRTpBaoWEMEWXRw\", \"target\": \"dfhJNnLn2T6N+DAzlIfGMw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dfhJNnLn2T6N+DAzlIfGMw\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dfhJNnLn2T6N+DAzlIfGMw\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"target\": \"Z40sY+dpymk2VZt++4Odfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"target\": \"bUgdrd1w1QJ1vRcQBboOuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DoWrGTWQg6VqcUOPqKQA6w\", \"target\": \"MjI0xmfXGfCgfcHMPbDaMw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"bUR856SolxjVuhh51iNJfA\", \"target\": \"dtYtPCCrTanY+AdLfGTzMw\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"target\": \"QrdDL6JUD44vKE1FU/wgNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"aQooP03pBVj41aWCxfDcTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"mfNb4PePcIOAfwupmedlVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/aM4gHYQGmLOHeMeBo9xWg\", \"target\": \"QrdDL6JUD44vKE1FU/wgNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"SW495dBUNeThwmcdR2mnsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QrdDL6JUD44vKE1FU/wgNA\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8fOcjVMM97bF0nHRwpmwQw\", \"target\": \"Zh+0dGB/2opkTTQr5085NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TECaccIMdVH1O/B8fm3MYw\", \"target\": \"Zh+0dGB/2opkTTQr5085NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WsADvQUexHH226piNwJkmg\", \"target\": \"Zh+0dGB/2opkTTQr5085NA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cJV6ZU5D/C9ybgB24bfVRA\", \"target\": \"ouCOwW/QrzKxPCVjsHI6NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"target\": \"ouCOwW/QrzKxPCVjsHI6NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ESC0HxN2+18/OEVFpNgDtw\", \"target\": \"ouCOwW/QrzKxPCVjsHI6NA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PCycEl2GTWjoexk2Y2k+xQ\", \"target\": \"Qcsa0of7TxrhoWN0jPxeNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5RDTYztzVBjOOGuLnfYJfw\", \"target\": \"VZV+c0obhQy70SOsyW5vNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VYKTf58Y/3PKyKyODXVDnQ\", \"target\": \"VZV+c0obhQy70SOsyW5vNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"VZV+c0obhQy70SOsyW5vNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kOMnWfmlMTJk3xPhEQgqRQ\", \"target\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"target\": \"qiADwYywQwryVlnMOEJtiQ\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"target\": \"q1hIpuJfhsRHeVqWKvcwkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kmTGPRz2k0yUZKHmEjiKNA\", \"target\": \"mJoSuOtK1NC4MEDpqX/U4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MZv1gsgN9o3VF/brc9GUNA\", \"target\": \"OSUbNnz8594/TF66ul1B1g\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"/bOpgNw5PZsjwLRRUphn+Q\", \"target\": \"TETkfceYjomyctQgahadNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pyXxMZeE/GIVMGUOpgBeA\", \"target\": \"KMleOwgXGNplcmZFeNWjNA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"d7gA8hz1s23obdi8bo7s3w\", \"target\": \"yt8+YJQAZqCKOf5cVKWlNA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"K1/A/RTcPKClvEGG70qqNA\", \"target\": \"NQycxBqIh2cAluZ/Nfbimg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"d7cfpeFTwYWLuU7WK5u8NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"d7cfpeFTwYWLuU7WK5u8NA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d7cfpeFTwYWLuU7WK5u8NA\", \"target\": \"lGkpU3/jy713soPYjV1X4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ow3h3bI7n0amMosQn3tVYw\", \"target\": \"vLFjoEu+CQIXNXB3XvnINA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1WjfVSCScOY81ocVLG5loQ\", \"target\": \"vLFjoEu+CQIXNXB3XvnINA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"POgaZ85u3n/rjr0nGAs1sg\", \"target\": \"vLFjoEu+CQIXNXB3XvnINA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"zvGeU+VcJmW6QjWCy7rXNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"target\": \"zvGeU+VcJmW6QjWCy7rXNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9GK18/slEWXsvIbLQoRFpQ\", \"target\": \"zvGeU+VcJmW6QjWCy7rXNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"13uhEOHN+3Mmm20+Zv+x+w\", \"target\": \"f24Xi8c/0Fdxk2+NzM7jNA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"YKL0iF5OjEnX3U+aQiPxOQ\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"target\": \"uTX3fyUcUp+b6NWtu4o0Zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LOSl8aE9nEoPZ/lS3NzlfA\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MrbW31/GLJu0yonpmKadiA\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QpCAHtbvoruznvjbEU8nsQ\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"target\": \"rzJUaPiHt2NUPHoWWCfuNA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/D6LrHV3O/2uD7GGDRXj6Q\", \"target\": \"Geq3alYhTi8s1rs4KRQkNQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"7Jz2tWyndpnXhKTatCg0NQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"2FUWUn57d9WkTiJeBNJWgQ\", \"target\": \"PI1Us3jqDlTa6XXAUUM2NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PI1Us3jqDlTa6XXAUUM2NQ\", \"target\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PI1Us3jqDlTa6XXAUUM2NQ\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"IUCSc8JrpOX9siFlq4kTmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"vZRT0MW4o7/ERY8DWdbdrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GzbwEpelVBu6aiwYm+Q7NQ\", \"target\": \"I7yLN7s/WeYO56T867I33w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vcGMItDb18P4MiqQtBg9NQ\", \"target\": \"y1ddPhWn8OawoC33VNunNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"target\": \"vcGMItDb18P4MiqQtBg9NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"vcGMItDb18P4MiqQtBg9NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"VW/3wn1Ua34HQooLnX2bNQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"target\": \"y1ddPhWn8OawoC33VNunNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"y1ddPhWn8OawoC33VNunNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L4+2ZMmnc8gTOu8mN1LjPg\", \"target\": \"wivzWNqrkkl8zEKhr6mwNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/9wvd4VqJwRqnTWtDanhig\", \"target\": \"wivzWNqrkkl8zEKhr6mwNQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8l4iqTxQwu+5R2t40Ua0NQ\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aTd06n7GzqvPoy04Amm/NQ\", \"target\": \"i3zgrHGhwU1ZCoHDBm6BOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZU6/wYRtpnWbayzt0gCnfw\", \"target\": \"aTd06n7GzqvPoy04Amm/NQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"FocYZ2czD2rOLZNlCDLhNQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"GGG3GLyEkkn6TlX9FkYjNg\", \"target\": \"JZ/SP3mwjV46p9S5v9Mwgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GGG3GLyEkkn6TlX9FkYjNg\", \"target\": \"tag4XqPZ1ovS8C2YXBc2iw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+Rb0njpcOXDpaiJ6vmA4Ng\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+Rb0njpcOXDpaiJ6vmA4Ng\", \"target\": \"eUllzuIfKGJ2N2NV6xyHmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"yyo4QzO+toBAnp5zD/2MNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"yyo4QzO+toBAnp5zD/2MNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"yyo4QzO+toBAnp5zD/2MNg\", \"target\": \"zIMloag8qUWv9b91U8kx/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JdHgLTmCpdKriVMq73fU7Q\", \"target\": \"L8yNKzJqcqaVQqBU762QNg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"target\": \"rXwmglMMZnc6Yf56zT6cNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9riAVATY34jHBt90TQZrA\", \"target\": \"rXwmglMMZnc6Yf56zT6cNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"Ud/MzJXQJ6KFdZpM+gO1Ng\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IrD+kWAzYPM1bqM4hRxKpA\", \"target\": \"Ud/MzJXQJ6KFdZpM+gO1Ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ud/MzJXQJ6KFdZpM+gO1Ng\", \"target\": \"oUJBjKPhjCGJybVjNgQS5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"o+1THDudDNgd5LeGu621Ng\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iQM2EjFgUk/83dUXxYq3lA\", \"target\": \"o+1THDudDNgd5LeGu621Ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DyY4dH1vjZdzrw7I3gxArg\", \"target\": \"o+1THDudDNgd5LeGu621Ng\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"j0LG2TBfq7KBMfdREM9O/Q\", \"target\": \"o+1THDudDNgd5LeGu621Ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F5HRLcAVvtui7yRoAlPYYw\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wlAJo/RlvognTYu62pnBNg\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/vWYb5IsDMKj6AN7glY4rA\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kpts1Dex2CaSJVU8vdHE7Q\", \"target\": \"wlAJo/RlvognTYu62pnBNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"OI/ydWTogQ/yJqrsKqnXNg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OI/ydWTogQ/yJqrsKqnXNg\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OI/ydWTogQ/yJqrsKqnXNg\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"z/TAoZvzjf2wvlusVBnV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yaCMg5tnqv/eCXpc+syNw\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wbch8nHNaJm78RwT0NdXw\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/c8KCzUU8taJjhXPkCEYwQ\", \"target\": \"blQQCVqfYrEIWYH4ZHQzNw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"168vFRjReKcksP7HJpOVuQ\", \"target\": \"5Mnxw2ItqZFTnRcqOtQ/Nw\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"tTO1LQu/M4nsk0dADel4UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kd5jV4cKPchRaI9ODUGXNw\", \"target\": \"Rg71KvMVmp7RPzqsdMHX+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JIIcZtdNc3gO1hbq4vDzNw\", \"target\": \"cS/bpu52WCU9X+jUmZu+Yg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JIIcZtdNc3gO1hbq4vDzNw\", \"target\": \"bXGpMEzkXLgG31dxALVXyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XDch17TWpi6KnT3vVbMAOQ\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9DtTLKdp0pHZCbYalxQFYA\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DOsl6zK+y/hfIPJ3VtMngw\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lsLKKaHMUiMrn6Zcpfq5yA\", \"target\": \"sIgfRFv7kfqGfRO0nED2Nw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BqVAoi3vwE1iMVUXAiWGfg\", \"target\": \"u9tpxhNNcS/7dFt97stROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RzobwgLknSJL7QUthZojvw\", \"target\": \"u9tpxhNNcS/7dFt97stROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0mApAkzVCbCD0Bj419HRwQ\", \"target\": \"u9tpxhNNcS/7dFt97stROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7VxW5gODW0HzIt9IxfRVOA\", \"target\": \"lve+wd/wKPyn3CsMesLZyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7VxW5gODW0HzIt9IxfRVOA\", \"target\": \"Q+4EDqYZPaAgWbykhywf8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1yukRzWql92dVK/8H+xhOA\", \"target\": \"Y4HpFSDpB/pb5VCJTwiQRw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0cSWpJdc3Akr/N3MCnC8kQ\", \"target\": \"1yukRzWql92dVK/8H+xhOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1yukRzWql92dVK/8H+xhOA\", \"target\": \"XEXq4+EHfYmpdLTINBij/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eWoysQjmb1YXqETtx01uOA\", \"target\": \"eo4vpF7nVaIftXjavEnGSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eWoysQjmb1YXqETtx01uOA\", \"target\": \"sWKWSenk2C9eaWrxecV1Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XjnqMtdhe/1AFJoQ5rqZog\", \"target\": \"eWoysQjmb1YXqETtx01uOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WmX+Bd3+PspInoASh3GROA\", \"target\": \"gkorgH/UGPyBdCL13IruUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PWazbWYXRKDBh37GwcFlvA\", \"target\": \"WmX+Bd3+PspInoASh3GROA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"target\": \"Y8BKm9HLQuNZAEIUJgv30A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QmC0hKSul+B5fhM04xGv/A\", \"target\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HjbBXpRquXhoMGLikIGrOA\", \"target\": \"jSN7JY5CiEq76H/IKAPBWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"HjbBXpRquXhoMGLikIGrOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjbBXpRquXhoMGLikIGrOA\", \"target\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"target\": \"mrM4ROiVkGaCfKkD2OPCOA\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"ii3tszFdiAhbrHyv0f7DOA\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UZtMHjAFyNCmnx136tTiTQ\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34hValFnV2+dT4B4gubXVw\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Av+NJ6AdBIQWI6bttPc38g\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bkTpfRcqaOJ298DCRgK68g\", \"target\": \"ii3tszFdiAhbrHyv0f7DOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0ffo8htqDpK9tZnBD4THOA\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"BpRR0QhEMrdljaEKAwDnOA\", \"target\": \"PcXLA8V21+Wb46Z5bgKSXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BpRR0QhEMrdljaEKAwDnOA\", \"target\": \"OyTztUYnRhTYYxoLBI9FbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"BpRR0QhEMrdljaEKAwDnOA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DVXpioDNFY1CEMdD0M1BOg\", \"target\": \"jw3uDJbwqaXK2CElqcXwOA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"9DtTLKdp0pHZCbYalxQFYA\", \"target\": \"XDch17TWpi6KnT3vVbMAOQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DOsl6zK+y/hfIPJ3VtMngw\", \"target\": \"XDch17TWpi6KnT3vVbMAOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KcKrZ7VTELYyhbcB1CLjw\", \"target\": \"hN89C2iTzaduKojIrKJAOQ\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"QFU2MEjXqNUYBodQv55IOQ\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QFU2MEjXqNUYBodQv55IOQ\", \"target\": \"zK2i3Ls/9w5NBkwfx7F7Rw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"kVGEDdEcZATOkoKpVm9fOQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"TL5s/frCf3gd9X1oCJZ0OQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"ZU6/wYRtpnWbayzt0gCnfw\", \"target\": \"i3zgrHGhwU1ZCoHDBm6BOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E1IK+hjo8sbiIQR1ji6tqw\", \"target\": \"f4qGvK6jVxaOQVXbKMmGOQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"DhizICH7mxQCp4zSzsSLOQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"DhizICH7mxQCp4zSzsSLOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhizICH7mxQCp4zSzsSLOQ\", \"target\": \"dLxkDItK6ds0BvVWlMzfxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7tbayrhcwEFuJlOLEUmPOQ\", \"target\": \"claAW9BD3Hw/5DoSlbSKXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7tbayrhcwEFuJlOLEUmPOQ\", \"target\": \"xrWu5aeUX9Np83JY2t36fQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7tbayrhcwEFuJlOLEUmPOQ\", \"target\": \"j2Yua3a567JQqNUafYalpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ydq9OqivGkHhR4sOMxuSOQ\", \"target\": \"hdbnBT9t2fyEJTsarj2ckA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ydq9OqivGkHhR4sOMxuSOQ\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F5YJ1jose1f1KbLOiCJJyw\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"265feNjxTzIMZ8+BKwy4zg\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"target\": \"cCmG6cRvUcKWgi1UAH9g0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U3CatnBWnxP2vm+b6lWnOQ\", \"target\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SssatqK3hP1QznpmsvEoRw\", \"target\": \"sz1wpqB2jxUvK7682RnHOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JARaDTo+BmuRHMBD03pY0Q\", \"target\": \"sz1wpqB2jxUvK7682RnHOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sz1wpqB2jxUvK7682RnHOQ\", \"target\": \"wVc80t3sNC598XKNFbIp/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VMHBJSbwjrpqQxe7xSHOOQ\", \"target\": \"kVhIf9Yg6rCX4/kOHXUnjQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"YKL0iF5OjEnX3U+aQiPxOQ\", \"target\": \"uTX3fyUcUp+b6NWtu4o0Zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QpCAHtbvoruznvjbEU8nsQ\", \"target\": \"YKL0iF5OjEnX3U+aQiPxOQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0HqZ+gKQEfBndFGw6c8NUQ\", \"target\": \"R20ccImKXtHGaosBHaEMOg\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"RXvDBU82q16Pw9nStf8zcw\", \"target\": \"SDfPe+g+qKIRwCGUZ309Og\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"bVoAGD67kCzsNOh18bHUmg\", \"target\": \"tBSpZbKt95ZOs+uKf3ZjOg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"JTvwqLDX31+2hz07xl5yOg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JTvwqLDX31+2hz07xl5yOg\", \"target\": \"x/rpyDH2fFCbE+u0d79MiA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"JTvwqLDX31+2hz07xl5yOg\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GrqrBuWDMZVbhSwmYox8Og\", \"target\": \"Llcr5KlFvbooWVvHhDsk/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIlgfYinDLoYqQs7OaamOg\", \"target\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HIlgfYinDLoYqQs7OaamOg\", \"target\": \"RGjlmlPAkXa/tI12Y6I10g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HIlgfYinDLoYqQs7OaamOg\", \"target\": \"PyEwC8P2XWgBNOn//O9W6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"xRIZCO6SRfXLOE0+vaXu8Q\", \"target\": \"yB4nFjITPKoh7bEpLPDzOg\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"9kBqWNP1i1TjWuY6XIL7Og\", \"target\": \"uAvywguLcy7TEJ62HqUCUg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9kBqWNP1i1TjWuY6XIL7Og\", \"target\": \"Sy2muxkb3YKQEB3A+UWj2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+uAcgSKO2bNolKgqpWQIOw\", \"target\": \"84cQ3j2fcrmCy4xje6xR8g\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dJz7k+gQ7Qf0mGFV/ibGqw\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lzG09nQSYpfLweqcxR9KOw\", \"target\": \"nWOJ3KQgDcbnanj95rwerQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lzG09nQSYpfLweqcxR9KOw\", \"target\": \"nNdeLertJElPQpss2WS+4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTana0mhDAQ7pDlNgeTo5g\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I/O27hbD2ZdHsBYgQYVQ+Q\", \"target\": \"lzG09nQSYpfLweqcxR9KOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/8YpjmS6ea+0tmqCIWNvOw\", \"target\": \"oyFfCj3XEK2o5kEyMRZXug\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"UZtMHjAFyNCmnx136tTiTQ\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"target\": \"tH9869I8NvruzTNOD7edxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bkTpfRcqaOJ298DCRgK68g\", \"target\": \"pPWaOIY5snaVaOt3uiN1Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"KsAKs7t7Z8NDli2Ph9N3Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Iv1TVwC5a8DIOQwR/OdixA\", \"target\": \"KsAKs7t7Z8NDli2Ph9N3Ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KsAKs7t7Z8NDli2Ph9N3Ow\", \"target\": \"iLCK0JeQAw5z+bYWs/914A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"rt/IZulKGE61yudVPiWLOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"target\": \"rt/IZulKGE61yudVPiWLOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"rt/IZulKGE61yudVPiWLOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3GtPhtMHl5X4mu4HSukWhQ\", \"target\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DK7xT9uf0LeeXUMjF5eeOw\", \"target\": \"T1TY0PEf4JGxqOim/tVrrQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"aUsB1m1dWOhCOv1IOrurOw\", \"target\": \"jDNhsvbjunwQKLmvhy38bw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"aUsB1m1dWOhCOv1IOrurOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"i+mEeURUNZMkwdukcXesOw\", \"target\": \"pYz+Bh5cLgD4u37ISthJnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"i+mEeURUNZMkwdukcXesOw\", \"target\": \"lzH6Idq2FJnBDgEnU3CMvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ae9DRMtLdxRiRvwoQZcWVg\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ifsn31I/BxOTLopfp+ELnA\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jIVsa9D/kpFcPilmWa4Hzw\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"wx8mXJPztJumhis0sY+tOw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"i1FG2HVaFaWVKq8Gmr+Fag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTd+448E4V6kEdjyxkzCOw\", \"target\": \"jr/tmb8gfujXSG5D58/n2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AAlv0/vwcPMrCI1zCwbfOw\", \"target\": \"mf/sQ2DSs0ULStqjM3UzgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAlv0/vwcPMrCI1zCwbfOw\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BEjSdCilxicLKERRH2kM6g\", \"target\": \"EwsQJO9BG79bRBbT6sbtOw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"kdyzdInEahDDJDFc45n6Ow\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jZp0wulp0qyqJdux+qWZbQ\", \"target\": \"kdyzdInEahDDJDFc45n6Ow\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"H51lkjTGo0qqwQ7sEroFdQ\", \"target\": \"kdyzdInEahDDJDFc45n6Ow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kdyzdInEahDDJDFc45n6Ow\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NqG+c1a1lIoBlf+gygANPA\", \"target\": \"laa31xOWPxkSz2RmR/OzLQ\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"NqG+c1a1lIoBlf+gygANPA\", \"target\": \"XeGKIwBj2l/BdnCHeKgxTA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"/+tEWbza2NMQ+0GqgeYlfg\", \"target\": \"UMbT8esxzL0+gc3dtkQaPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"UMbT8esxzL0+gc3dtkQaPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UMbT8esxzL0+gc3dtkQaPA\", \"target\": \"YSeBLUEND64U5fx2jVt88w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qiADwYywQwryVlnMOEJtiQ\", \"target\": \"yomEKZktx2kx0s5Uz6Q5PA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"PFQQFTwxo7gAyWxkxct3lw\", \"target\": \"tQITkugM/C3R1+isp/E6PA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"tQITkugM/C3R1+isp/E6PA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TH2nlEfNlTbfzWVGhDc3QQ\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eLVohINWQqpjz9ZXpnMOQw\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"EDp/Q2VCkQFOz0Iplgj9ig\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eU//jS/YGhjXUkc31H9SPA\", \"target\": \"hUqcqGPdKtI69S4i5SSFvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"eU//jS/YGhjXUkc31H9SPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WNsmKI9Jb0iXFNPu7hJ1PA\", \"target\": \"bDdU/0byIvyGkNcVnGcpcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WNsmKI9Jb0iXFNPu7hJ1PA\", \"target\": \"dX/TaBHa6EarDLBexxa0rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WNsmKI9Jb0iXFNPu7hJ1PA\", \"target\": \"bDI9Og953C9gM6mQqrsd2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8ER2sMgrYPshQENDsp1PA\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+8ER2sMgrYPshQENDsp1PA\", \"target\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H+It2SD4KPOr34Qht7sHsw\", \"target\": \"MLdSmvn3v1YguLOrXiSDPA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"lxovHFLCK1G/Kp7GpW2jPA\", \"target\": \"mRbA34kTgrTVR5ssP2vtnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2sihRpUNQ4AoNIXbK1Q3yg\", \"target\": \"lxovHFLCK1G/Kp7GpW2jPA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+NijVvh9cRhrJcDfe+sxg\", \"target\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"cCAe70sXGQWYb/OuJM5A0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Qmf5uaVlfG6fz+GqXbAPA\", \"target\": \"MVxpMOd/YHo81uKU8J1D2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"target\": \"k55CIte3Gp7p6qcb3qdhaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XHApgMrcyJKBXYHBHMgahA\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dUP7AahGpOkDnORHDuEzrw\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eRxPWjT//2+yUjJyJK+N7Q\", \"target\": \"fiXjQ3gIe6eKQJNBSzjLPA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"izLXj7XivmVFEI8heob6PA\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"D5+KfnZfLerid2bgjR8uPQ\", \"target\": \"DhHo3HeMfTGX/H0KDyMNYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D5+KfnZfLerid2bgjR8uPQ\", \"target\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UpdDOZZ/nnNC6z5GD0lrPQ\", \"target\": \"riYzk3GZZhFYefWPcH7rnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IPgGExpgq0OmbJYAJoFSwQ\", \"target\": \"UpdDOZZ/nnNC6z5GD0lrPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WC0EmD43hs84OV0WQld1PQ\", \"target\": \"r+zf57mLB0xmGAqQxt7d0A\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"9Pjx+U21nuLt9VnXHy6I8A\", \"target\": \"QfPcP1f2mG6CK6IQ/xOPPQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"DlQJmZhrLcSFewBXCcWdPQ\", \"target\": \"TPUTckho+StrbYBpi7L0YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DlQJmZhrLcSFewBXCcWdPQ\", \"target\": \"NzlMJMnlHuCbxGhinyGmfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZwC6Jos8tXbLFjtN+qWqPQ\", \"target\": \"e66HgXZ0Dd9pxVG+Mc2JRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZwC6Jos8tXbLFjtN+qWqPQ\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"target\": \"z8HESHrmU9pp0w+KLN2NNA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Ym5cu26ZERosFfZto1n+g\", \"target\": \"KteAmg/1DwFRDn3bRbuzPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AXXDOz0vS2tmKhyIhXZEXA\", \"target\": \"Tvk5iFzPudwpAjBrr/C3PQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Tvk5iFzPudwpAjBrr/C3PQ\", \"target\": \"jPwI+OB8erWmfUxJgF6Nrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"target\": \"Z8jlpMCdujC4++qzmq3BPQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"Z8jlpMCdujC4++qzmq3BPQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f3OysywHhD6Z8jwa/VbQPQ\", \"target\": \"wzAftnwgVrYbBviqd5/Nlw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f3OysywHhD6Z8jwa/VbQPQ\", \"target\": \"ykhADMSBj+Y4ryryeKH5uA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4iidBzFOnffMhDtuDP6vcw\", \"target\": \"xTR0hple3jVx3DJEv73gPQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"xTR0hple3jVx3DJEv73gPQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"xTR0hple3jVx3DJEv73gPQ\", \"target\": \"xmCrALNj7UEjOj1fRMfp6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LLqUTf2C7DiwEPqO9IAzaw\", \"target\": \"rfNNiCvdTiGlx3UokrcLPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1jKoWPtNZuyTySc8hwFBig\", \"target\": \"rfNNiCvdTiGlx3UokrcLPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8NClRelN6TKhc2JQrXUPPg\", \"target\": \"QOy58Co3JRbiEU3GogWNRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8NClRelN6TKhc2JQrXUPPg\", \"target\": \"s1UQaN0Z9EukrsqUTC9QTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"8NClRelN6TKhc2JQrXUPPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VZDm4Fhi1cPeNnGwibUPPg\", \"target\": \"shPnJN4xCSk7oXmY9Q4wuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a1OoyB7+WXFUAag08KpKrw\", \"target\": \"bdXYpNo41ar0262WrMYoPg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"4UwkwFD6vbUHvdt1KNwrPg\", \"target\": \"tGIgPpSLABsuqToLwtBzsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4UwkwFD6vbUHvdt1KNwrPg\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hUAZT7kt1KUkZ4fbtDs/Pg\", \"target\": \"q/LU05EL2cNf9O5N1wNCyg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"hUAZT7kt1KUkZ4fbtDs/Pg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qdvG7gcskrjeWirNiH5iPg\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NDxIQcbkXhjk9VSfn5PNrQ\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WSYFeSzGx7LhdNhRlOcfzg\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"f1nU9QKf5radbUNVzHHM/g\", \"target\": \"qdvG7gcskrjeWirNiH5iPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"HF0jaPfeSJtgaaVfxuZmPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+v4QPdKqrYzi44heM0Bfnw\", \"target\": \"HF0jaPfeSJtgaaVfxuZmPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8GSDTYbw+zWL3W0uIt2tyA\", \"target\": \"HF0jaPfeSJtgaaVfxuZmPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kcFwDaFlVYo5rF26BC/cyQ\", \"target\": \"v/fbMN99v35S6/2pLoiEPg\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"target\": \"thNRJ+Ek8LABph+n40eNPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"thNRJ+Ek8LABph+n40eNPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CbkkslpELDMcPtNI+j667w\", \"target\": \"thNRJ+Ek8LABph+n40eNPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gx0mZi7s5KN1g7OHmM+XPg\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTBYEyX2QOB4W51Qglmqhw\", \"target\": \"gx0mZi7s5KN1g7OHmM+XPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wu9y2fqKtlmpQc2y8UYBjw\", \"target\": \"gx0mZi7s5KN1g7OHmM+XPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"fEuMTfxSadNfJoNM6t+XPg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"kX1AeJhRCfClQVM+CSaZPg\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kX1AeJhRCfClQVM+CSaZPg\", \"target\": \"up9psA1MqaBe3U64WLyMdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+546eOPGtXQD4e1DDKtkA\", \"target\": \"kX1AeJhRCfClQVM+CSaZPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"egTXUYy7nfoHpJfpy2afPg\", \"target\": \"xYBnEJB+6rnvZzZiDcWrYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"egTXUYy7nfoHpJfpy2afPg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DH0rbjPPkEJYJ4iOLqWmPg\", \"target\": \"Ye9kqudPVvs1pgQ+Rc9mlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DH0rbjPPkEJYJ4iOLqWmPg\", \"target\": \"V6ERLfamkqdKjMJZjCzbpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DH0rbjPPkEJYJ4iOLqWmPg\", \"target\": \"N3NaYvG5XKOWroyCvqHesw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/9wvd4VqJwRqnTWtDanhig\", \"target\": \"L4+2ZMmnc8gTOu8mN1LjPg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"pgaiIo5Awks0fC4Gk+ABPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pgaiIo5Awks0fC4Gk+ABPw\", \"target\": \"rMyZnSKrpHKJOv0TZsU+/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HxdyC6c/hI78wBGO81UahQ\", \"target\": \"NPfCKgsf74P+xfBuYOkBPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AgQzuVP3IkMn/Ov+dswguQ\", \"target\": \"NPfCKgsf74P+xfBuYOkBPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9H4dfR82pf4C6zAX/Kw+wA\", \"target\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"dC3LeDMaq+ZhSi3JoXcDPw\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PvFb6I9HEC3Jb5xbzEwLPw\", \"target\": \"kUwvpSYL10SBe4X6VrMWtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PvFb6I9HEC3Jb5xbzEwLPw\", \"target\": \"lnsdRCpfQaAQ/sNzVzgm3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PvFb6I9HEC3Jb5xbzEwLPw\", \"target\": \"WaZcaQu0SHC/mL5lo4gZ+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/DasHcz9qDrGxipjpxZYPw\", \"target\": \"2fLiXD3Oi+ti5kp4tkA5cw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/DasHcz9qDrGxipjpxZYPw\", \"target\": \"ooA+ANlPZHsTTGT2ER+g9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/++dgXP7Ji1DX6Jjqmpl8g\", \"target\": \"EjYVLbjXyyFjMsvonN9ePw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"kE/iXEylgaiZzGqa0NliPw\", \"target\": \"tSRwNpETY7Lfodms/g7djg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Iat6FJq/KuV7fq2K9pp+pQ\", \"target\": \"kE/iXEylgaiZzGqa0NliPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ehabqbw4OQYvR5CymUIO2A\", \"target\": \"kE/iXEylgaiZzGqa0NliPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhYgYjdAip/3+eZn4S9qPw\", \"target\": \"dSSZ+HP6teRDlmQgSqDoVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYgYjdAip/3+eZn4S9qPw\", \"target\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYgYjdAip/3+eZn4S9qPw\", \"target\": \"bXGpMEzkXLgG31dxALVXyQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mfHjc8E5wq5hAEBqLwMktw\", \"target\": \"nsXSmtJQKEtoW+A+WbRuPw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"4hZmMgnJIT+452lBnYuVPw\", \"target\": \"H8DT+1a16Vl5KIs2uBGBcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4hZmMgnJIT+452lBnYuVPw\", \"target\": \"GogN3PGHqIxQPq1ggN//mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2xWzE0Ep6ErJ3OdsXO9HqA\", \"target\": \"dOitCDCE63Unt2Uz+02yPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVzQrHoO4Xmx/ObIjHGqQA\", \"target\": \"OUYfjK3qliQPxJkOHd/MPw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"xr0BKa4pvuxbmEAUMl/lUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"y4UnH6+f6jsDk+33vZLosw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"iImUqiPNPbAQT9k7P7UswA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OUYfjK3qliQPxJkOHd/MPw\", \"target\": \"ZsXj1rezqrBl2BtRb/pv3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EpddrIm7N5G8G23V6jMJQA\", \"target\": \"FE7mqW78yTU9wwMAC7HbPw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE7mqW78yTU9wwMAC7HbPw\", \"target\": \"c5qReOIC8YJQNGm3SDsY0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpddrIm7N5G8G23V6jMJQA\", \"target\": \"c5qReOIC8YJQNGm3SDsY0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YWjU6xATC2Q0iWOLiX/MWg\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AnqqRMSFJIdjqNTRgBhGiw\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"44m6YoyPWWMgqGmxbpPgww\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rToxk4r0uYkTlZK66ha06A\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h6LTY3LaaE6dWUsrCOYj/w\", \"target\": \"xlm0G+Xzw41Rm+YvXlwZQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"target\": \"rv9CCzm9yv3/yk7JavW0dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hYb/rNnUevsWhOUyS1R9oA\", \"target\": \"lZJSocdEIWg2qfH2eRpeQA\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"gdgrqfKRzrB2XWkXMYRgQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BN+YmIxT+3E9xyYfA94pdg\", \"target\": \"gdgrqfKRzrB2XWkXMYRgQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5htVZaN4DNSg5D/11IMaSQ\", \"target\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"xVgSzLLJX7f2LxUQjaVnQA\", \"target\": \"xsZ3QoOsiYVsocqIeU1Yfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3ysewCXPmGRHKwwmyptuQA\", \"target\": \"qjM9bPDJ6Esfd1jc9Zuv2w\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"Na1dZK+2rK5VDYolao51wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"HjiL/TAGzcamF/nUBzeFQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HjiL/TAGzcamF/nUBzeFQA\", \"target\": \"I8/gD89DiH9csk/ZEjSV9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"deq3qSOiknCWsbVMWkjFLw\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VTOkVft5FrNUyE5fBt51Sg\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SHfZgdFBroXem8lXNwkJcg\", \"target\": \"gt6r2GNUZyrgLRd88ouJQA\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Bvlmxnniuxc85ZjU+CuOQA\", \"target\": \"djPc9CUQxRvQdtbRzAyjUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0/q+Y7rDgFo0pIuKyYUPlQ\", \"target\": \"Bvlmxnniuxc85ZjU+CuOQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bvlmxnniuxc85ZjU+CuOQA\", \"target\": \"uob06uLmmmvE1HYJtEpitQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LAnZCtjOl2bhcv2vZlGOQA\", \"target\": \"NT51/BBSLEzC/YF2jxWkQw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"hu8ICB4fKw3AVpjcGUhZXw\", \"target\": \"wSbdhtDL5S2z1K8YGhuQQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"wSbdhtDL5S2z1K8YGhuQQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"foEOhXqE/MBXNZlfAAZmmQ\", \"target\": \"wSbdhtDL5S2z1K8YGhuQQA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"HYymt0lDvgI53eZlSzAjZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"STJBi8oPwc2BctwyE6sWjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"V0X2HIuhS0Ps7WOiYcGtmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GshRXihzIo3/9uNPAYilQA\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVzQrHoO4Xmx/ObIjHGqQA\", \"target\": \"xr0BKa4pvuxbmEAUMl/lUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FVzQrHoO4Xmx/ObIjHGqQA\", \"target\": \"ZsXj1rezqrBl2BtRb/pv3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfRf9yRZVZ42QN1Q6w/tQA\", \"target\": \"T9flAVJsWQvGQcCuP9ajYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0QIadK8r6HxNza6Ny+h+qA\", \"target\": \"CfRf9yRZVZ42QN1Q6w/tQA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfRf9yRZVZ42QN1Q6w/tQA\", \"target\": \"i1YhmqPsCV5G50aFCHtD+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9WCffFE9Mw7TEa6DHJwkQQ\", \"target\": \"hpIBMXHnjQ7uDbzVv376rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"9WCffFE9Mw7TEa6DHJwkQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EDp/Q2VCkQFOz0Iplgj9ig\", \"target\": \"TH2nlEfNlTbfzWVGhDc3QQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TH2nlEfNlTbfzWVGhDc3QQ\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WnSaJh7YZRbTu+sts30iw\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"target\": \"cbBd9N1KLhKdXGpN8o10mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"target\": \"lKV3X4tv+9nIeOaFPOb5rw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CbkkslpELDMcPtNI+j667w\", \"target\": \"ZzvzUT8crgIkBFwdFBBEQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BA9DMxaYbrqyBsAxrrvV0A\", \"target\": \"hUiWm2ZzAZ3XyhwYaMGGQQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"GvVaeFtGWMdr6uDDVcKOQQ\", \"target\": \"cTkKFRE9ldy7qptah1XVTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GvVaeFtGWMdr6uDDVcKOQQ\", \"target\": \"IXdPVWFghod/SBOsAt1aYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/hg11VBlQNdhRdNquj44mQ\", \"target\": \"GvVaeFtGWMdr6uDDVcKOQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8ZQvaCv1scRUhplnRb8mSA\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SToRdrEwGm/BztKtepZaVw\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JC9CR/h5Zd8Lo5hza/4/og\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KAOYRnIa8jpoVsl6LEwC0A\", \"target\": \"lM1KF8F6d89mNUIA002mQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BwE/g8Wgt3CdH7ApP+YShA\", \"target\": \"Svbu70DdkVOl27oKzxuvQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/a9HU16WypmlvPBzMlAP1A\", \"target\": \"Svbu70DdkVOl27oKzxuvQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AYUi4YjxI3sjyh69XmUZjA\", \"target\": \"nlX50aGPxITwrjO4N7TUQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nlX50aGPxITwrjO4N7TUQQ\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EdXT816QZBfXGmfl0EIs3Q\", \"target\": \"nlX50aGPxITwrjO4N7TUQQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"OTAk+XizNExtptGmcZ/YQQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTAk+XizNExtptGmcZ/YQQ\", \"target\": \"mlnfnafl4/KzepBre697rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTAk+XizNExtptGmcZ/YQQ\", \"target\": \"bHlug9FuJiSNo/yQC0I/uw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"zEUlGrpc2A8953RQVcuadA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"QZ213ed+FC+L24Iot9ZepA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+RbgpxXNqLHXHYiw+1f+QQ\", \"target\": \"LSmb834QdrGseWhJgOqB3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"target\": \"NusVDiix1Smp76/E438NQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NusVDiix1Smp76/E438NQg\", \"target\": \"l5XDIvoOxlEM5vDuvZb/8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+YCMtJjW5r1HUEkrpuZIQg\", \"target\": \"nSw0eUskiHWpYHPIy4zIRw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"75emx1Xn05NP13ZlbDnqjg\", \"target\": \"j4IK5nCCNuS7CCju09hlQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"wpR4LPmkbscTQ47aqutyQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N3vEw/7LBzj7u0aepCJFRw\", \"target\": \"wpR4LPmkbscTQ47aqutyQg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ezRssIMYZ4RBowwXiNLpxA\", \"target\": \"wpR4LPmkbscTQ47aqutyQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ZZRg+v5JVI9y2rYz/arQg\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4ZZRg+v5JVI9y2rYz/arQg\", \"target\": \"pLV1jlhExMm2ObkllrzYzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ZZRg+v5JVI9y2rYz/arQg\", \"target\": \"IWWaiBa/jxZXyRG8dtN64Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8QVDvYH9xxe4NWKCDrG2Qg\", \"target\": \"F1YGf+WOJFyqnwxZfAmy2g\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"nKe2lnx8Wl2cfijCKn+3Qg\", \"target\": \"rbgnt5R6NMMlyp1yD64C/Q\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"k0enGgElWRs9A+5NRNS8Qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"k0enGgElWRs9A+5NRNS8Qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jV2svVJMSyO+sjV8yHa59w\", \"target\": \"k0enGgElWRs9A+5NRNS8Qg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LWvoOHWcJwMOVIrQGvXLQg\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LWvoOHWcJwMOVIrQGvXLQg\", \"target\": \"Lkgw2dolfwaJQyooYYppfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DKAWdo6As2L2HUFCvXjbQg\", \"target\": \"Kzv484GoYuRyMQRePjjFrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DKAWdo6As2L2HUFCvXjbQg\", \"target\": \"s50Uk1EXn+VMFjiSTbju+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AWjelWpqAs1TTbdNOEv63w\", \"target\": \"oMgttsFpag2MzaDeUJLmQg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"muD2o32/rvJ6qO3uaY8vQw\", \"target\": \"v6OGQ3IGrh7t1+9Pc5ClVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"target\": \"muD2o32/rvJ6qO3uaY8vQw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"muD2o32/rvJ6qO3uaY8vQw\", \"target\": \"olMAQl+wwkOfD/g3eOeP0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HAOzB/UXYT43MrMLWyx9ew\", \"target\": \"iOb2c9ib1dpXVg05OiJzQw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"+WsOH4nJKjn2CB/iEjBAmg\", \"target\": \"2NkehMA6nPR3sXPYqd12Qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2NkehMA6nPR3sXPYqd12Qw\", \"target\": \"6MOzNfjdUIZpKdO5Anh4sQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2NkehMA6nPR3sXPYqd12Qw\", \"target\": \"xRv17OpeWpPllhbTSqIRvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2NkehMA6nPR3sXPYqd12Qw\", \"target\": \"96AWJdjtpTR2ckzh2+cg5A\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"22CPbcrrBAQIB6Uhv2CtQw\", \"target\": \"xqgM3rfoMtsn1TX/WLjvbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"22CPbcrrBAQIB6Uhv2CtQw\", \"target\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8fOcjVMM97bF0nHRwpmwQw\", \"target\": \"TECaccIMdVH1O/B8fm3MYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8fOcjVMM97bF0nHRwpmwQw\", \"target\": \"WsADvQUexHH226piNwJkmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GnAbts15yBTBPSTHzQh7Yw\", \"target\": \"rXkCDNRNSVG5itmWEa+0Qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rXkCDNRNSVG5itmWEa+0Qw\", \"target\": \"xJ4etXa+11viKMelSA2I7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c6l/6JPY8da2RBVQz7qV/g\", \"target\": \"rXkCDNRNSVG5itmWEa+0Qw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q8AlycToBKVFjB1QrFvIQw\", \"target\": \"Vdww/iwpIzuxddWe+uDx/A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"target\": \"NXtITLwY/XNBuvLK70PXQw\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"NXtITLwY/XNBuvLK70PXQw\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"NXtITLwY/XNBuvLK70PXQw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pHWyJ9eZRLIiBaTaCHx5Q\", \"target\": \"NMDpgfX8D3+RhKXJwIrfQw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"5hZtqsiLHbi1NqVfW5PKRw\", \"target\": \"77iPv90BW5iJ8c7Iz2LuQw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"77iPv90BW5iJ8c7Iz2LuQw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"77iPv90BW5iJ8c7Iz2LuQw\", \"target\": \"UWN2fvz659JGxKe9R1s92w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8T1982ymi8ae9f3QJo87xQ\", \"target\": \"8iebXCqtG1eN+lGV7HH8Qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8iebXCqtG1eN+lGV7HH8Qw\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHkiHkN1YD8HiUKcuM8DRA\", \"target\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Em0/xm51jDdmoLNgvocVtQ\", \"target\": \"rbgJY/m+OO8EhjJplaEWRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cyZ5Pkk5ztmXzP61SVHf3w\", \"target\": \"rbgJY/m+OO8EhjJplaEWRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"EZajhl39OsXmqiSpuFxPRA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"EA8a4UBy2yScgW0M741Now\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hKQRArjse+VYfHpwz8rFsA\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nRGKdSUZWr/RPx5aNVjOug\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aNKtA7iq1FYEJ6bLoj+s2g\", \"target\": \"p49Fh3DpndPGDHlKDL5RRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"p49Fh3DpndPGDHlKDL5RRA\", \"target\": \"yW3srrSTsNB2YpFbKqcI4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"s5rYWe8YJ6DEhjCr4P5iRA\", \"target\": \"uYIu5+gtVaTQVZiPGapHjQ\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"5GNyvObSsBPX6MLHNtxyRA\", \"target\": \"giVUGbtk3+U2igTdOb/Ktg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5GNyvObSsBPX6MLHNtxyRA\", \"target\": \"sBo1DoKZGqK99B32lYnxuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5GNyvObSsBPX6MLHNtxyRA\", \"target\": \"P1k6r0S9EQbkqpJzRaPMww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e66HgXZ0Dd9pxVG+Mc2JRA\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QOy58Co3JRbiEU3GogWNRA\", \"target\": \"s1UQaN0Z9EukrsqUTC9QTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"QOy58Co3JRbiEU3GogWNRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eNm73uTArP4UKMj8vLHpRw\", \"target\": \"vyL9TIMjcuScOBNcE+ScRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"vyL9TIMjcuScOBNcE+ScRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE4q4bQKSwYZK+FHrWWgRA\", \"target\": \"qZLjmxMAXLWRVlLqWDUUmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE4q4bQKSwYZK+FHrWWgRA\", \"target\": \"UZYf/isTOX6flCmlncT2uw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FE4q4bQKSwYZK+FHrWWgRA\", \"target\": \"rSNn/s244brhIQqf3dJ++g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G61pOLo45+GyyS5e8k3vWg\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8wXFOFxvQzDP2XGsXPTJug\", \"target\": \"R9Lpgl8efAju6ZpoTg2iRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ykn3g3QC0rQT10FGrwVuhQ\", \"target\": \"imzcpoBNOLHSZyZXErylRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"imzcpoBNOLHSZyZXErylRA\", \"target\": \"o5hJtnYCQOtp9KjOY9KKww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ek+y8Dv6MgaaKLo1u1FL4A\", \"target\": \"imzcpoBNOLHSZyZXErylRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"uKRVRvJ+p5AZp6PXEmbVRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YyQl1eJdobquxuw0oBQZeg\", \"target\": \"uKRVRvJ+p5AZp6PXEmbVRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IMy6N7C+hCRMkf7TI+/alg\", \"target\": \"uKRVRvJ+p5AZp6PXEmbVRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cJV6ZU5D/C9ybgB24bfVRA\", \"target\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ESC0HxN2+18/OEVFpNgDtw\", \"target\": \"cJV6ZU5D/C9ybgB24bfVRA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ux6au0DBAXaqHpV/RNnaRA\", \"target\": \"vnd7GVG/CYH07RNAUEgKww\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"ntw3gxP9i//bs6Ho95X20g\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"aWgN5cqeT7YYPzmmF4rfRA\", \"target\": \"rMyZnSKrpHKJOv0TZsU+/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SqG/l6IbODdXxSygyTzS8w\", \"target\": \"Ui/0A3wBxzeKBPvoCCkYRQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"kOMnWfmlMTJk3xPhEQgqRQ\", \"target\": \"q1hIpuJfhsRHeVqWKvcwkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kOMnWfmlMTJk3xPhEQgqRQ\", \"target\": \"mJoSuOtK1NC4MEDpqX/U4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"J9jUserjmCZ39iAnKJZARQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J9jUserjmCZ39iAnKJZARQ\", \"target\": \"rxcVniLDqVaT6evzgA+m8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J9jUserjmCZ39iAnKJZARQ\", \"target\": \"Rtz5xYqf3eobdXs3wUh79Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3mNS9kxe26Yi816SQSYhA\", \"target\": \"QNJ0t5GrRws4c5Ryv6lHRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EADV6v6vusn6OhIrZeLLtA\", \"target\": \"QNJ0t5GrRws4c5Ryv6lHRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNJ0t5GrRws4c5Ryv6lHRQ\", \"target\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"imglETtywlrVcvzIwI5aRQ\", \"target\": \"oFQNBM4xI+HgY5Q9FrzhXA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"mlnfnafl4/KzepBre697rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"bHlug9FuJiSNo/yQC0I/uw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"rxcVniLDqVaT6evzgA+m8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AB6JX81ub1q0qaT/06h8RQ\", \"target\": \"Rtz5xYqf3eobdXs3wUh79Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fGRC6V2KP/aLwu7ryLIH4A\", \"target\": \"ihle6Lr2WCOEHf3ter6fRQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1FGUAXuCvr8NsxHFaO7ARQ\", \"target\": \"HHin+VkuwzW1+zW1nIAhjQ\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Io8slHVhx1bwsIhDh76qow\", \"target\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J53P0IkFKVfzsXe/Ta3CRQ\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Av+NJ6AdBIQWI6bttPc38g\", \"target\": \"j2aDJCmt7q7D2VRoSB3JRQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Jr47GnKDcqO8qnyRy6PSRQ\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"7t4SY1vCVINoIMbgrdPkRQ\", \"target\": \"WPY/12VLyv/ZGCMOGvjPVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zz49PYLjgQ+HgQ+JdRW/Q\", \"target\": \"7t4SY1vCVINoIMbgrdPkRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7t4SY1vCVINoIMbgrdPkRQ\", \"target\": \"g8omXv57dirNyxDKqHKY/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1A50rC9DmpBJi2Rzbw+wTw\", \"target\": \"CxXkjGu2Nlr/09RxlGrpRQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ALTewdivDV/ha76oe0fsRQ\", \"target\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ALTewdivDV/ha76oe0fsRQ\", \"target\": \"V8ksPyfaupEEfgw8dUrT3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ALTewdivDV/ha76oe0fsRQ\", \"target\": \"felsQ1UdIZxKSSJZnxxh8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L4R7iZWb3a4kArkl2EZPWA\", \"target\": \"Qyug5sP5mhFfOqoC1UzsRQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"Qyug5sP5mhFfOqoC1UzsRQ\", \"target\": \"q7vfrx1Y2yIt4jU/MTVU8A\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"e3PtXxVdlrus06SK1N/6RQ\", \"target\": \"vRASEJmApd9kVKJdViBVkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e3PtXxVdlrus06SK1N/6RQ\", \"target\": \"ze9Ajo7bQIrDR2Q61Vkf4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Vql7Mlk/vvWRyGpTsvc5w\", \"target\": \"e3PtXxVdlrus06SK1N/6RQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oLBEewI2+TtOi/P+zFONmw\", \"target\": \"uRBQkWEdVbeNQ9xfJLkIRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D8uBDEKTvYV7V2AXqdYNRg\", \"target\": \"hWotMeINwSMsuStZDvr2mw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D8uBDEKTvYV7V2AXqdYNRg\", \"target\": \"FgYx9haFz7m/jpwNa8RpoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S72IL4YSDnZZA425LPseRg\", \"target\": \"gAzw07bKPCnVDOF1lzf8Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S72IL4YSDnZZA425LPseRg\", \"target\": \"VQWWWRLbO/6gR2x5xDP3gQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lqVFqi7mcd2hzZDi+SNGRg\", \"target\": \"yepgno4n/p28H6591WQMTg\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"UnMVJbIAOTybaBsAyfxQUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/FbYCEQvYjAF7sxBwUvWVA\", \"target\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"aIIgb7T9OT5k+4MjasF9WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1RXEjZUbzQlv/sF+7lcjmg\", \"target\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"z74I6YSnuYW7jPenY9cb4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"target\": \"ki2D2kbSKwtmj52dz5bw+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"M1y5hXH0hVEApIW5iJ1HRg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"1+u3lYKavPRkmHAzpIgisw\", \"target\": \"ZXBZdqAF3xm7IzHq5J1VRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"target\": \"ZXBZdqAF3xm7IzHq5J1VRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DO1jzZFQdAAskqacb4ZeRg\", \"target\": \"jv+QLRmhrtNe/K3zwfC03w\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"/p+phwA8hAMIeSUv3ihmRg\", \"target\": \"PSO2XmC4lzxblJbq6YuYZA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"71iA9qV2BUl8sqhSgukASA\", \"target\": \"OTYw29EpzE8fZI954el3Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTYw29EpzE8fZI954el3Rg\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"OTYw29EpzE8fZI954el3Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTYw29EpzE8fZI954el3Rg\", \"target\": \"T7Bbq1+NkLmIA0EL6tys0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IQOr8oWTplyMdqllGFB/7g\", \"target\": \"OTYw29EpzE8fZI954el3Rg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C0lM+vSEaaT/IWOghVGARg\", \"target\": \"dQJc1MumJDhkpndnjaPvfA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2tErsV7PrIgWpryU+hSNmA\", \"target\": \"C0lM+vSEaaT/IWOghVGARg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C0lM+vSEaaT/IWOghVGARg\", \"target\": \"kUSjYI/KovDOP2WNmP3Ppg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"NVczU2cHqw/8i0p//W2MRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"NVczU2cHqw/8i0p//W2MRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AiBoaQxP8X4ZGTH7DL/geg\", \"target\": \"bK6/ywJvHiPC8jeX0h2zRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6lApIV2MCrZkWFZZJf/rlw\", \"target\": \"bK6/ywJvHiPC8jeX0h2zRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bK6/ywJvHiPC8jeX0h2zRg\", \"target\": \"ifErMyAVjoUcEphHINV83g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YUMbaFzgJYeU3f4B//ckTg\", \"target\": \"dBRqkyn6shmbpWrSZaHARg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6jNVAJhI7DMcPITe0gOFzw\", \"target\": \"dBRqkyn6shmbpWrSZaHARg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZjABoGhX7FZn8b7BhsAApw\", \"target\": \"jyjn/VXmPCyky36DAXHIRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xe55gpjzk9yxQKYpqNHIyA\", \"target\": \"jyjn/VXmPCyky36DAXHIRg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"naXz8IWsp750AAUIcEzJRg\", \"target\": \"zK2i3Ls/9w5NBkwfx7F7Rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dTkENAnFlFXuxJCq9UEvZw\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"naXz8IWsp750AAUIcEzJRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CoryOarI0mEf4885yBnMRg\", \"target\": \"XqkxpgKTYkq8YB+YxQNJkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CoryOarI0mEf4885yBnMRg\", \"target\": \"XsBDmmlxAWof97JjGRrn4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CoryOarI0mEf4885yBnMRg\", \"target\": \"DLqvxwV6cLRbZzV/S6ce/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"N3vEw/7LBzj7u0aepCJFRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"ezRssIMYZ4RBowwXiNLpxA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"nIgO2SB8550Bt4Vxy2bC1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LUjjh0xV0bKoEVWW1hnWRg\", \"target\": \"pTMybSugouBc0nZLe/g+2g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Gan7ZZVQhOZ9l4LX4oznRg\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Gan7ZZVQhOZ9l4LX4oznRg\", \"target\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gan7ZZVQhOZ9l4LX4oznRg\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+xia6NKW5jSDHWguW88yrA\", \"target\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"GrIMPukpxNchu/p5HFfdsA\", \"target\": \"mnk4NmT6j5Sgh6UeBYfuRg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9xlQC1cVGGA060Zj7md5gQ\", \"target\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"target\": \"i1pSrAwriMYqECKfr6rHqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KJEfvuLac+nSxhHuB/L7Rg\", \"target\": \"Nhtm09YjxapjrWGAhjE88w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8r55dj/JwBrDybXJWyQSRw\", \"target\": \"J8SjBvJCmPKOGw5leXvCjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8r55dj/JwBrDybXJWyQSRw\", \"target\": \"B1+BS78xBzICq4XtMwmzlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8r55dj/JwBrDybXJWyQSRw\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"G7/xMwCxUY6aMLpdikocRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"G7/xMwCxUY6aMLpdikocRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TPUTckho+StrbYBpi7L0YA\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oCOW0mRITDqwiopKqDIiRw\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"oCOW0mRITDqwiopKqDIiRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JARaDTo+BmuRHMBD03pY0Q\", \"target\": \"SssatqK3hP1QznpmsvEoRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SssatqK3hP1QznpmsvEoRw\", \"target\": \"wVc80t3sNC598XKNFbIp/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hW366XCp/i7HQnhv+RXHXw\", \"target\": \"pYlTvg387QEobSKG4JksRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pYlTvg387QEobSKG4JksRw\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"mIrtzl5yLLagVORQq8OocQ\", \"target\": \"rXfvX3u/2hfcp3byjIJBRw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"rXfvX3u/2hfcp3byjIJBRw\", \"target\": \"t4T3wmGipQx4c4H54HxOiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nQbo89EjFqendC5KI+7G5A\", \"target\": \"rXfvX3u/2hfcp3byjIJBRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DJnQmC7rRNI9KohvnfZERw\", \"target\": \"Z40sY+dpymk2VZt++4Odfw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"N3vEw/7LBzj7u0aepCJFRw\", \"target\": \"ezRssIMYZ4RBowwXiNLpxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"jgVNAsOxee4qAIu4Pw17Rw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"KaWuVUZ3E9K5pqffOyoaVg\", \"target\": \"pcAaJGkNoaKboOUIf7l9Rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e1Y/y58FpDPgmAh5G8G4lQ\", \"target\": \"pcAaJGkNoaKboOUIf7l9Rw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0cSWpJdc3Akr/N3MCnC8kQ\", \"target\": \"Y4HpFSDpB/pb5VCJTwiQRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XEXq4+EHfYmpdLTINBij/A\", \"target\": \"Y4HpFSDpB/pb5VCJTwiQRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JglA7absRTpBaoWEMEWXRw\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JglA7absRTpBaoWEMEWXRw\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/5BFUkTesobt+C2GA42cRw\", \"target\": \"5xwY0szZnsiqQTwCAlnatQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"YRplCx8z9GNMnXrPdwUkWg\", \"target\": \"aZ9AyPjf2OgaKfRYk4KuRw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aZ9AyPjf2OgaKfRYk4KuRw\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"U3NKDsVT0UakD3a8oMZsNg\", \"target\": \"nSw0eUskiHWpYHPIy4zIRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"nSw0eUskiHWpYHPIy4zIRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"5hZtqsiLHbi1NqVfW5PKRw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5hZtqsiLHbi1NqVfW5PKRw\", \"target\": \"UWN2fvz659JGxKe9R1s92w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"SNmVHg4+txr17tuDDEzSRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"SNmVHg4+txr17tuDDEzSRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"eNm73uTArP4UKMj8vLHpRw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CG15xx+fRRlt+sL6G1fqRw\", \"target\": \"RuZEZek+dIdNb16T8TQk6g\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"tMA277Q1r1Ou54ivdg0ctg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"Q4g51W5/PH9o2PLu7gz07Q\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"I1AeZzIB6CjfTTcTE7n+Rw\", \"target\": \"LIeJPRncazKd2mFj47eC+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"71iA9qV2BUl8sqhSgukASA\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qOLZfj6vsjEJBm5kg+Dv6w\", \"target\": \"tWOkiXBLW15DgKI96XQQSA\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"0AvZ3yTTfxKv6PWjeYkiSA\", \"target\": \"iFjI4Rd3CKYVzlxd3JT7eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ZQvaCv1scRUhplnRb8mSA\", \"target\": \"SToRdrEwGm/BztKtepZaVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ZQvaCv1scRUhplnRb8mSA\", \"target\": \"JC9CR/h5Zd8Lo5hza/4/og\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VrJZ30qKInj1L/u4OmCrfQ\", \"target\": \"tZ670LCRnqYmZFgy501YSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/SXshfQ4e66loe29E5xgSA\", \"target\": \"hYb/rNnUevsWhOUyS1R9oA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"b2mBfHZKw/7Wv719ImjRyA\", \"target\": \"wtugXF+7qE82ez/dX8NvSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wtugXF+7qE82ez/dX8NvSA\", \"target\": \"yXEVx+7BMBM9SJGPv2+Z+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JhqYKo/AXz59R4vLLyeJSA\", \"target\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MeX6DDISi5cEsrtmH2FZiQ\", \"target\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hu6/TvmZK8UiWeZ2sq0rnQ\", \"target\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QcnP7E4XqR4YLJ2LdOJ9SA\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JhqYKo/AXz59R4vLLyeJSA\", \"target\": \"MeX6DDISi5cEsrtmH2FZiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hu6/TvmZK8UiWeZ2sq0rnQ\", \"target\": \"JhqYKo/AXz59R4vLLyeJSA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8gDLDfXLxM28SJRP0dizSA\", \"target\": \"oLmHykDqis1sd6wnFn+L9w\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"9F6DxcwNzhY3s6yudOTDSA\", \"target\": \"qkDwhgegxr+4Q7DZidQ+WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9F6DxcwNzhY3s6yudOTDSA\", \"target\": \"llovrNhzEbhUrsORmDYEXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VzXB6IJaLXEXJ8d8MMJbVA\", \"target\": \"nXuX1q5CqzGnJV+eNRDISA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KyOVJoQ1KBIHYx7862Clww\", \"target\": \"nXuX1q5CqzGnJV+eNRDISA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"5/iIlMEl3Flhj0dFtY7JSA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5/iIlMEl3Flhj0dFtY7JSA\", \"target\": \"9n4t1Zn+X0s5hKb1T+I6rQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oV0tCAoy/67CcunzmRnpSA\", \"target\": \"wXF+o2ujVwvWa8meOksFnQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"VwrOoBFsxcsMJpuOmUULSQ\", \"target\": \"ju2FdjnvEwJERaFrBSF1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9NyRQB1LYCsbPHrE6bFjlg\", \"target\": \"VwrOoBFsxcsMJpuOmUULSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5htVZaN4DNSg5D/11IMaSQ\", \"target\": \"xsZ3QoOsiYVsocqIeU1Yfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1iE3IfSpcAwr1GJpuN1wbg\", \"target\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"target\": \"wph8PLZvlqygec2g0ZIIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a4+4zao4O23gIPqZq/U2uQ\", \"target\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hQ9sNYfi7Xoi4HS4wTZhvA\", \"target\": \"lO9MQjl7ZdMuYQV0CokeSQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"NQ2Kua1CDQH1/zRWd1YaVA\", \"target\": \"OG2o1vAj49gdK8LP2VooSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OG2o1vAj49gdK8LP2VooSQ\", \"target\": \"o+m2QQS9epHCXQOZQQFibQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wwxtb8xu/ctdJoe3JAFYpA\", \"target\": \"roNyJxmSzevCeoq7B4MwSQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"TX+5JEGDptCeafACyExaoA\", \"target\": \"x9gxsxVegryFTUoduSA1SQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"XU24yr/ZZYJLIUWRlyZPSQ\", \"target\": \"Z1owg5XRBMZ+UZarVUEvbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q9DbiBLOUlsRxS7bC1lH4w\", \"target\": \"XU24yr/ZZYJLIUWRlyZPSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kWrxTjv+GDZWFiLdsajHmg\", \"target\": \"wbPAkwU7l5fq1Q4QU4xUSQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"OTBYEyX2QOB4W51Qglmqhw\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Wu9y2fqKtlmpQc2y8UYBjw\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3JHFRc0psawMPSLp7G5OyQ\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U3v3OOBqhXPTXAhsLPhL9Q\", \"target\": \"zu1oyAK0SZx27NVzxCVkSQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3kCb/KZ8/abI4WHLBJ7HZQ\", \"target\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"target\": \"lTy5ajnv+ybkdhf/wEdD1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SBNtJnW3Lo3nbtXncDpmSQ\", \"target\": \"ttNA9EtrRO4vzKDbSnXp8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTOR0zQk/QrNO8A3N7P8UQ\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"qsZtcjv/Pr7Ps1rIbC+obg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"JwgF3TNIvzasqJg5v/oRnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1z8Qkaup4fk+PHtX1lefqw\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"GPneXxn/W3TbBC5am7l0SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GPneXxn/W3TbBC5am7l0SQ\", \"target\": \"bXt54Mwr7PfZh3d4YYJ/8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"j2myGcumhmoz/9p4EAE2bg\", \"target\": \"oGIy1SeOMj2/qGAyuTp1SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIvlvNgs59hiOwj2O06peA\", \"target\": \"oGIy1SeOMj2/qGAyuTp1SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5YGAR6dLsSNn1A529+x/SQ\", \"target\": \"RSZUgKf+wntpgqok5ehF6g\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"target\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9dW2s/cOhwx8l3hsM4ujyg\", \"target\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MAxDghRGm9FTe6u+ICeTSQ\", \"target\": \"WNt4O+KU1Es4d3huye/V6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TqzXbkZUYgz9e5gRVLOw+w\", \"target\": \"z30Gf3D0E1lDmg/K5I26SQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"7Oho6Z20dihFORKOVpu6SQ\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"qiADwYywQwryVlnMOEJtiQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"H6Q8EBjmrFQ71jp9fVgjSg\", \"target\": \"aewBFp5Orqz4bzZqctfT8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mzsTI4zPBXs++IY6nIwSg\", \"target\": \"BMl2T4INigVgCJo/c67Yew\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"9mzsTI4zPBXs++IY6nIwSg\", \"target\": \"TmA41kwRYQQsZVMXIhz82A\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MAk0Mt0s1sgQXxtIyhtorg\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PX0uMM9zOfkfjyAq6RMg9A\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7JHQoIsP0g4FS2VokidWSg\", \"target\": \"tMN/g0oGryogyXQvhLf+Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7JHQoIsP0g4FS2VokidWSg\", \"target\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0PwYW8mRbpa9Mpnu9DSNSg\", \"target\": \"HQ5PLb8USOfOCBh65VitdQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"SmZUCSQkckSaD6bxuaqjSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SmZUCSQkckSaD6bxuaqjSg\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GQFoIQ9wL/eZEy/wZDZehA\", \"target\": \"h3tGHaX0JqWf6UeIgZeuSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h3tGHaX0JqWf6UeIgZeuSg\", \"target\": \"pvS7Yyc5fiUtVQLhhblzrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h3tGHaX0JqWf6UeIgZeuSg\", \"target\": \"luYw49ThXPmJHnnREMyJ3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FaeXygmksygb2560fsqvag\", \"target\": \"w/FcbfRxQvw1pK7Q0yqzSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7RXVddCVGk1aSOf5BMkg6g\", \"target\": \"w/FcbfRxQvw1pK7Q0yqzSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eo4vpF7nVaIftXjavEnGSg\", \"target\": \"sWKWSenk2C9eaWrxecV1Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aY38F1Hi68kXNObkjJy0kg\", \"target\": \"eo4vpF7nVaIftXjavEnGSg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"XjnqMtdhe/1AFJoQ5rqZog\", \"target\": \"eo4vpF7nVaIftXjavEnGSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"target\": \"uUCDilQXqpQUOOB0ZFjJSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O61qmbeWRO9KIoKQ+zT/2g\", \"target\": \"uUCDilQXqpQUOOB0ZFjJSg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VQWWWRLbO/6gR2x5xDP3gQ\", \"target\": \"gAzw07bKPCnVDOF1lzf8Sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SQZC7ws63zW22bLZOBDyw\", \"target\": \"4n9iCHRmvy7wi5E8w50CSw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"FcmC8FNud2LgsDFUfpN/LA\", \"target\": \"aWe7skIST5t4AzA77+EsSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aWe7skIST5t4AzA77+EsSw\", \"target\": \"p2QDiSm6RlYOAvJqDpb0TA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aWe7skIST5t4AzA77+EsSw\", \"target\": \"uwrCTZHxVx7vgzrTvSCk5Q\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"hBTV8gHKW131TEj7XT9BSw\", \"target\": \"n+6GBSL9r88/k1XUx+wJmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hBTV8gHKW131TEj7XT9BSw\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L2ysSMWtWvLFNQcmBeFLSw\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L2ysSMWtWvLFNQcmBeFLSw\", \"target\": \"Pn48zoj9DvyN79bhDOnBlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L2ysSMWtWvLFNQcmBeFLSw\", \"target\": \"cfyIaZvA2RoXHpxUpLCevg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kp/uA317xD3ySXD3jBdRaw\", \"target\": \"dAHx8sgeJ7beftxxEKR1Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9riAVATY34jHBt90TQZrA\", \"target\": \"dAHx8sgeJ7beftxxEKR1Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8FaU6NkPlqE9UM1z6SSa7w\", \"target\": \"dAHx8sgeJ7beftxxEKR1Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bknqOYp4Vp6LPwQl9RTauA\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E44NS8+3z6vWzACYVC9pvw\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"GFetumiakdGmPB9Is78i/Q\", \"target\": \"yFABn+VCmS63kgHUgUp9Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"Y6tU5iNEDLF6oW77OnXC0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WS2zfixx34S6YAYVqPuFSw\", \"target\": \"vWy0S3JkUaZezamXjZGr3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Jk7T08xaG4CWAcdaiJqg8A\", \"target\": \"WS2zfixx34S6YAYVqPuFSw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CwpEQuIi8zSScd15Vffgaw\", \"target\": \"SYg1UZl2xRlPu6/W05iOSw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"qh37fflxH4crnFBSNG1ffA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SYg1UZl2xRlPu6/W05iOSw\", \"target\": \"n4RzrfSaNuZhs0nJCUy93A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e2hKmTwsutq/a8SqkTmUSw\", \"target\": \"t20xkxierOcBE/o0aSAdZg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6uEIF2c/sKN3ohddsWgT1w\", \"target\": \"e2hKmTwsutq/a8SqkTmUSw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"KF5Dbm9cM754JWLe3NAXuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"dLxkDItK6ds0BvVWlMzfxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BBcjp3mKb0dkgN5rywu5Sw\", \"target\": \"zn3v+4i0Sftl8cICrCEv3Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"So39yTeC3xz+XFDiEbKrUQ\", \"target\": \"nQiQKsGxgxQbKUGv2pLTSw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"+Y38GQWJ9sDVV1yJBS3ZuQ\", \"target\": \"BY1jEgFuwflESgCTbV/XSw\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"lkzhROxDtXgOQX5cWdPhSw\", \"target\": \"yGAvhgaNrM/b3CFteWTrZQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"HhV9VWKbsizXigvZATJX8w\", \"target\": \"lkzhROxDtXgOQX5cWdPhSw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"CTCn3Fgh6h156cuq7dXkSw\", \"target\": \"js8Y0lf08jWreDJNejVvYA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"tMN/g0oGryogyXQvhLf+Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CfMMoO/qZjDVZ7RWqmTmYA\", \"target\": \"wd8lEJNfPOaevsTPxygQTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q62OQKXh0F0IVOGJ/nxxsw\", \"target\": \"Vd7FOp9N0ziiH4xcw34vTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"Vd7FOp9N0ziiH4xcw34vTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xo/JU3qR/3/wCmPN37SrTA\", \"target\": \"t//zurDsECjhkSF+dDy3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XkYOl3ks1X2aSgiy+kcncg\", \"target\": \"Xo/JU3qR/3/wCmPN37SrTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"Xo/JU3qR/3/wCmPN37SrTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"gbTBrGKYi9EDhNNNZpNjig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"f/GYujqRnQGcFVM9i0k/sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JjdNS7oWxI3B316S3ohBtA\", \"target\": \"MbYMRdaNc3zs4dLbhIazTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MbYMRdaNc3zs4dLbhIazTA\", \"target\": \"rdcU0794FRm7pA510uJR1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"NqzCCjAYhYA57dD9FeKWVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"eQM+KwEzGGQwXa5pfTsnZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"oklVnGTYPCdUOJPs4w8Lhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"target\": \"aMtomuAEu+BPWSpp9f67lQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"/CMsaEuGu3ULvTJxZ5L0ow\", \"target\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NEchXFq2tu9tS/CqClXlpA\", \"target\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Z2Wr1N00QeD7yeo+jzHHTA\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"pk5B0OVLBJS0AxojkgDPTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LL3EugqztyFZS7UuGML+yA\", \"target\": \"pk5B0OVLBJS0AxojkgDPTA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"KHMZW0HFBIMS9c1KqNoXTQ\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"mg8Nu7Q5bKwFsnbmTm8hYA\", \"target\": \"ocP4qC/3EO7sFT+R6aIZTQ\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"ocP4qC/3EO7sFT+R6aIZTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ODH4G/1dGsJI0ltnCWxSTQ\", \"target\": \"mLUf20JHZo0y4cZdGEJL9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Aqj0URYRADum8//AEpFSTQ\", \"target\": \"pUettJS0B/38xCxmsnnjgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Aqj0URYRADum8//AEpFSTQ\", \"target\": \"lvHT9cqSms7vkDUQasI/pw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"iqOPT8+OtBjqMEsIZx2STQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S9DJVAo6zDaYb5A5jomrTQ\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S9DJVAo6zDaYb5A5jomrTQ\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S9DJVAo6zDaYb5A5jomrTQ\", \"target\": \"ylU7OoOB+lTyYkp2CvNrrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"coP2kJECHHeByJYNxousTQ\", \"target\": \"dIOeiHNYRJZ2wusE/rvlTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"target\": \"coP2kJECHHeByJYNxousTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"coP2kJECHHeByJYNxousTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CFWuU/FXzLqvDkRrko+9TQ\", \"target\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"UZtMHjAFyNCmnx136tTiTQ\", \"target\": \"bkTpfRcqaOJ298DCRgK68g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"27dEDmdur1Zy6ijanei8tQ\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"265feNjxTzIMZ8+BKwy4zg\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"jIVsa9D/kpFcPilmWa4Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"target\": \"cCmG6cRvUcKWgi1UAH9g0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/bA9vVOFPjpACVu2Rb8t0w\", \"target\": \"SAnjE/h7IlLpDbjn5yTrTQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"target\": \"Wto8vJIj6WsdCigVs77sTQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"TxqzbO7ePlGSEd2f2wxP/Q\", \"target\": \"Wto8vJIj6WsdCigVs77sTQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"3cXQAbgNdDz/sNaHNM74TQ\", \"target\": \"70aYqyv9oeYGbgxhrjo+lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3cXQAbgNdDz/sNaHNM74TQ\", \"target\": \"75GLam0GiNbHonLi9pd/4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3cXQAbgNdDz/sNaHNM74TQ\", \"target\": \"M3mzslSGFKL89Hr6jj7Y9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/H0ynYgQrKSlcy6FNPCqUg\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8eST8m92csATI1mdEtKGYg\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D/A8t0cmv3N4b8hDFamTiA\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PT8VvCe2+xblFYSQtULWkw\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bwWPWOOz5uHVBrqvXEpW8w\", \"target\": \"lkzI2Rx1MC72pWODaKz+TQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vdskl6n1tgJivLOYQUDTg\", \"target\": \"PwyhAzA0omnIl03SygN+bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0vdskl6n1tgJivLOYQUDTg\", \"target\": \"M8PtUDh0BZnkoIFUB3PAzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6jNVAJhI7DMcPITe0gOFzw\", \"target\": \"YUMbaFzgJYeU3f4B//ckTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"xOM0gzz1LKYOC78FcTpKTg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"aS/j8kZ+FFHiJeK+4iBrTg\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aS/j8kZ+FFHiJeK+4iBrTg\", \"target\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0yjqf58zkAQzd+DJ0YVrTg\", \"target\": \"wneYD+VDwhkmw532fW7qXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yjqf58zkAQzd+DJ0YVrTg\", \"target\": \"RIFKqY1gLZsQf+i0P0a8sQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yjqf58zkAQzd+DJ0YVrTg\", \"target\": \"TFGivlNpyvLKfXPJLvfz2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"deCbWH/yBvku8SIrHZFsTg\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QGgfp0R2eZB+GeRcldbr3A\", \"target\": \"deCbWH/yBvku8SIrHZFsTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2WZ+QLWazLW8nSczXoOlzA\", \"target\": \"c8YTUXnfbNhnroJsMeNvTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MtpjJ6XcmH6qPnAjbjY75A\", \"target\": \"c8YTUXnfbNhnroJsMeNvTg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"S99EddmDGE9UZMtGmMlmtA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"z/TAoZvzjf2wvlusVBnV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8PbUOjV/HGRgJS2xNNuMTg\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+HdIZL/LiXDO0QMPb2dGIg\", \"target\": \"4xdm24WVWkGKofY1jbq5Tg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4xdm24WVWkGKofY1jbq5Tg\", \"target\": \"kuBx2V5/s9xhPbFh+oNQYA\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"4xdm24WVWkGKofY1jbq5Tg\", \"target\": \"xabMDvWi51n0Cul936172g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4xdm24WVWkGKofY1jbq5Tg\", \"target\": \"s7tM0RevRJ3A+NCTWbwY+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IXdPVWFghod/SBOsAt1aYg\", \"target\": \"cTkKFRE9ldy7qptah1XVTg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/hg11VBlQNdhRdNquj44mQ\", \"target\": \"cTkKFRE9ldy7qptah1XVTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JAC8a1Q+hochqr5jsbLVTg\", \"target\": \"JqM77VUcNwh2YpJxMTdfXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A14BetnIopZaaGAnjtv9mg\", \"target\": \"JAC8a1Q+hochqr5jsbLVTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/aM4gHYQGmLOHeMeBo9xWg\", \"target\": \"aQooP03pBVj41aWCxfDcTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SW495dBUNeThwmcdR2mnsA\", \"target\": \"aQooP03pBVj41aWCxfDcTg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0KoYr1/sBKYT1rfW8DhgUQ\", \"target\": \"5XK5uESvVd9GptLA6xQbTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5XK5uESvVd9GptLA6xQbTw\", \"target\": \"81/t15zn23kc/9M+VRloYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5XK5uESvVd9GptLA6xQbTw\", \"target\": \"uDOUHvwuMFbU5lxW8kemlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"S1/wc5PKbfp7F7b/fdnEiQ\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9SJVLkajTeR4POfLrh2KvQ\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"13NDORsV0NBpE78voJX8zg\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M28X/3X9XhtMKEhs+6oP2g\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"n1X4/KHhJoXEHcu2C8kfTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RcN8xiuUhv2kkieL87f/ig\", \"target\": \"amjJXGmeCcKNQx7MWIwyTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"amjJXGmeCcKNQx7MWIwyTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"target\": \"amjJXGmeCcKNQx7MWIwyTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"s1UQaN0Z9EukrsqUTC9QTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"msbwNknrv3HRKuTbTbz3tQ\", \"target\": \"rsPQmgY+do4/UOdN5mFlTw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"fMymeUFUsDkpl4syocYEKw\", \"target\": \"ie6msI2TYud/Jyyog2mBTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aIIgb7T9OT5k+4MjasF9WA\", \"target\": \"ie6msI2TYud/Jyyog2mBTw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"c9jP3tBKcgKqgs7kLyiHTw\", \"target\": \"scXBn+tW1O3c26UR/y+MpA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"KBvffIWk1pKZrIIrmmUtVw\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O66Wkht0x+Gx+BpLls2hTw\", \"target\": \"T34SlORyNdAitBu1jVAVaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7464ADYEqh2JXvYPcQ9YmA\", \"target\": \"O66Wkht0x+Gx+BpLls2hTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O66Wkht0x+Gx+BpLls2hTw\", \"target\": \"ri48j885BLzHXAWT8WJduA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"e1URD8x/rbvMsJPCYU+iTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e1URD8x/rbvMsJPCYU+iTw\", \"target\": \"neUebpMrrYX3e5BjAvyzdw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e1URD8x/rbvMsJPCYU+iTw\", \"target\": \"loqw1+ffTyBWBziom2HExg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"9GK18/slEWXsvIbLQoRFpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/b0x2nU/CBynvjL3VeytTw\", \"target\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"XwwhNgQzRMen644eZD7KUQ\", \"target\": \"gs3RLxMx0umpkYbzZnTATw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2af10RCETu3QPCGmsHF+4A\", \"target\": \"gs3RLxMx0umpkYbzZnTATw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"gs3RLxMx0umpkYbzZnTATw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Magx3/mXuyBOVJWMpiCug\", \"target\": \"rHM9RQATp1jHQEMKoPrBTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XQnT/93qqR6fC3YyjNB40A\", \"target\": \"rHM9RQATp1jHQEMKoPrBTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"target\": \"dIOeiHNYRJZ2wusE/rvlTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"dIOeiHNYRJZ2wusE/rvlTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ORocJgkETt4cgx7zJX1m2g\", \"target\": \"mmjXNMU5LKHfipb9N8jlTw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"IBSjXE/BZwDBw+/y9M/xTw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GolMlD0lgvRnJJ+TP7Iy2A\", \"target\": \"IBSjXE/BZwDBw+/y9M/xTw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aU4n2x4OPkJodk0KxvLYig\", \"target\": \"haibKGg3Ak8S09mApb0CUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"haibKGg3Ak8S09mApb0CUA\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"haibKGg3Ak8S09mApb0CUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mTMmy/NAdwV89W4WJPIDUA\", \"target\": \"t3a3yKY/sF6TY98bOOJgAw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5y9nXTABra67OXilpw0/rQ\", \"target\": \"mTMmy/NAdwV89W4WJPIDUA\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"aFm47kcWDzPz7Wqd9p8m3Q\", \"target\": \"mTMmy/NAdwV89W4WJPIDUA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"SToRdrEwGm/BztKtepZaVw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"rToxk4r0uYkTlZK66ha06A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KRbWUou+wGv9McaxQY5CUA\", \"target\": \"h6LTY3LaaE6dWUsrCOYj/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PYg/GeRNUSgHhIJQlmZhg\", \"target\": \"WNgnbHrT1w6mws7dn7ZEUA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"3VKE9O3qoeFicDCMezlWxA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"/e/C4D3oo7qUojV0ezVHUA\", \"target\": \"QEht9uW34xjqCjer4vFM6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+7mhXK/ObCSwV/qE+rxsUA\", \"target\": \"X+ETh+ba1MHT0Np6yw/i4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+7mhXK/ObCSwV/qE+rxsUA\", \"target\": \"1swWkYMcwILy7Fx6Zpvz4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NZGxHLsNhMltwN0o1OpzUA\", \"target\": \"cjBusNr5IUANno8M2pAeXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"NZGxHLsNhMltwN0o1OpzUA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Mmtn4en3D2UNWbeME8UmA\", \"target\": \"NZGxHLsNhMltwN0o1OpzUA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rg71KvMVmp7RPzqsdMHX+A\", \"target\": \"tTO1LQu/M4nsk0dADel4UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l8yihHYF3jYLqYPs4PnAUA\", \"target\": \"s7tM0RevRJ3A+NCTWbwY+w\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"PWazbWYXRKDBh37GwcFlvA\", \"target\": \"gkorgH/UGPyBdCL13IruUA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Fns6OhOXJvz0pJZ+6vorA\", \"target\": \"K0pUol7h3ozvqSJCzt/0UA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ThrLo2r7sbGKGToF5D/UA\", \"target\": \"6qLyFjJCSb5H4btWpQA2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0HqZ+gKQEfBndFGw6c8NUQ\", \"target\": \"QpOXviT1zeIlL17B/cUDdA\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"4mos+N852EkXkPJhdwEaUQ\", \"target\": \"izqORYblhz10NUpxrf5IqQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"Ciq4M1yRMrhQLd85nBeOUw\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SVncppnuBWX66nGOzF5GZQ\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LR0o1Gp5Q/56VArLa5GfaQ\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GE7TD8juiqQ9vJOTdh/WjQ\", \"target\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"U2FTpl/umiF3aEY5yyFBUQ\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ra/QjUDbZ1C23TLGAV9BUQ\", \"target\": \"uWIj0NtbQXifNLvogWFEtw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pQzwAom3bwB92iB1vA83zQ\", \"target\": \"ra/QjUDbZ1C23TLGAV9BUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"earNIEZ8UXTMmJ3RjUfJ9Q\", \"target\": \"ra/QjUDbZ1C23TLGAV9BUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mgKH8XgnUmt990hciUKkvQ\", \"target\": \"xrfWfyWvrn2oZzLIjT1bUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jnYl9d4UZUupzck1m5Xl6Q\", \"target\": \"xrfWfyWvrn2oZzLIjT1bUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0KoYr1/sBKYT1rfW8DhgUQ\", \"target\": \"81/t15zn23kc/9M+VRloYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0KoYr1/sBKYT1rfW8DhgUQ\", \"target\": \"uDOUHvwuMFbU5lxW8kemlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UOeum7MZGHUNQopudJNtUQ\", \"target\": \"s/iJc9+3ONWQha7FBfKMbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UOeum7MZGHUNQopudJNtUQ\", \"target\": \"nuOysH+Mh2h6a7WWgG44wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"UOeum7MZGHUNQopudJNtUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"cDrqV5O9SkmmDl0mmuF2UQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5qxQ32uiDgE9ejioUCp3+w\", \"target\": \"cDrqV5O9SkmmDl0mmuF2UQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WnSaJh7YZRbTu+sts30iw\", \"target\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"cbBd9N1KLhKdXGpN8o10mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"lds6GA7YRogoMFggLBQWqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gbr8vIeA/iN+DDLrM2WsUQ\", \"target\": \"XAkVRZGQ94PVTV2tBtEKww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DfFk7TlxB0SKkRl+KSWwUQ\", \"target\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XwwhNgQzRMen644eZD7KUQ\", \"target\": \"Y71JXwPp8BNr1I0/V5OLqQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"2af10RCETu3QPCGmsHF+4A\", \"target\": \"XwwhNgQzRMen644eZD7KUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"XwwhNgQzRMen644eZD7KUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"OK7AnboiWZ7PRgIMjmpHbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"H5iyKe8krA9s/HxZ4QqUsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2OOBe7bONoWbO75n1P7PUQ\", \"target\": \"hKruHz9YqELlEfdSiJ2BxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LjIJIsWr2kj76XygrEd5jw\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"target\": \"mwwTgvkZoGiAGW1oNL+LkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"target\": \"Yzj89dd8zQuXn/2N5QvYUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hvLxb+HIIMnAXb5rrsTYUQ\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RU7ImjsrRJsKlzFRmKjN3w\", \"target\": \"hvLxb+HIIMnAXb5rrsTYUQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZsXj1rezqrBl2BtRb/pv3w\", \"target\": \"xr0BKa4pvuxbmEAUMl/lUQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTOR0zQk/QrNO8A3N7P8UQ\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FTOR0zQk/QrNO8A3N7P8UQ\", \"target\": \"bXt54Mwr7PfZh3d4YYJ/8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cJX4tUrBIaK7+EkSfsAUg\", \"target\": \"MHef1Rs4455vMbiW11h8nQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cJX4tUrBIaK7+EkSfsAUg\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sy2muxkb3YKQEB3A+UWj2A\", \"target\": \"uAvywguLcy7TEJ62HqUCUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"HSXYunXnU735XSqPVXaV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dv4zoru8CYXEoSA9TYIdUg\", \"target\": \"IaImK3Wfmh8zprJ17Fuz1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NRtep0ikkpPpFE4deg0kUg\", \"target\": \"PCycEl2GTWjoexk2Y2k+xQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BFKorU/ZsAaR2zzN1iAkUg\", \"target\": \"XvFXpKAybOJaTrHjTz/raA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BFKorU/ZsAaR2zzN1iAkUg\", \"target\": \"UikPyTd+/Ke0c929axUssQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BFKorU/ZsAaR2zzN1iAkUg\", \"target\": \"TbsMX0lpn0ca3Jbu0oDj6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"target\": \"hJkECJ2HLr0UQKVZy7OAdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Nb+fg2iaqscLUuaFQ1n8sQ\", \"target\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"target\": \"WcjDyJCvaIKJKcpprPVPzQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EARZoqhcKM63G99flR3A0A\", \"target\": \"RChrb4rJ7Ifl6jZk2ttSUg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"HnEC6Xs9NMQdLmJhPfdnUg\", \"target\": \"Rr9emPI1nLHqljrbD4DvYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HnEC6Xs9NMQdLmJhPfdnUg\", \"target\": \"nks5WSx4QKKAPQCWyIn32A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HnEC6Xs9NMQdLmJhPfdnUg\", \"target\": \"lstYZJhfvS9jBG5xm+8U9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"A3oYY2V68Bkc4zN29dZqUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A3oYY2V68Bkc4zN29dZqUg\", \"target\": \"IEvjI9DghsvK8rqHLAZbXg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"A3oYY2V68Bkc4zN29dZqUg\", \"target\": \"NbdJmnny6VadnVE/Q5dqzg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A3oYY2V68Bkc4zN29dZqUg\", \"target\": \"Qy0hhxrb9Nmf8+xAUfVp/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JLJ/TFle8PFG1cHz1E1uUg\", \"target\": \"mnfai98sLmWktUK5TjaVcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4oguTPOWhhe1/AWJ+xWz3Q\", \"target\": \"JLJ/TFle8PFG1cHz1E1uUg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"7ldQ2Bb1e9My15lZ+EByUg\", \"target\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ldQ2Bb1e9My15lZ+EByUg\", \"target\": \"rtQmcpROqcblEzxYvOdFiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/mnxJbBXFRoJm1t8b+jupA\", \"target\": \"7ldQ2Bb1e9My15lZ+EByUg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XjnqMtdhe/1AFJoQ5rqZog\", \"target\": \"sWKWSenk2C9eaWrxecV1Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0/q+Y7rDgFo0pIuKyYUPlQ\", \"target\": \"djPc9CUQxRvQdtbRzAyjUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"djPc9CUQxRvQdtbRzAyjUg\", \"target\": \"uob06uLmmmvE1HYJtEpitQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/H0ynYgQrKSlcy6FNPCqUg\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/H0ynYgQrKSlcy6FNPCqUg\", \"target\": \"PT8VvCe2+xblFYSQtULWkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EjXIpdCPF+ANqs8VdEvHow\", \"target\": \"sAbMJ4JNtrkiNxfJM/22Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rKPsaIVig93SRx4sDucCrw\", \"target\": \"sAbMJ4JNtrkiNxfJM/22Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nOU0JofEhmOu14V1gJCDlw\", \"target\": \"suSw4S5oHiaXj/kWA7m4Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QqHIoi1m6uc9wf5EvV+Hvg\", \"target\": \"suSw4S5oHiaXj/kWA7m4Ug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F6YNnTWNiTfmQxsIu88kzw\", \"target\": \"suSw4S5oHiaXj/kWA7m4Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"5azXQZMF5UTinlXaZIC7Ug\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"5azXQZMF5UTinlXaZIC7Ug\", \"target\": \"UNcq6WxV761Qp8/suVLX9A\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"8hQSZ2PIYIyZV8i1r/zwyw\", \"target\": \"mTB/opsLISz/IYCbZWnQUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hh6NSnvkUKiF9tEcyxTk+Q\", \"target\": \"mTB/opsLISz/IYCbZWnQUg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"WmyNCi3UI7xVfgyEgQTfUg\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"bjgiBt1reGHjsHTW+QP1Ug\", \"target\": \"ruqNFuUB6tHVOz0EcqpPWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SV4sfwaeMk9N7sb4Di38Q\", \"target\": \"bjgiBt1reGHjsHTW+QP1Ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"target\": \"hm6dg7dYvD/icQaeL62rCg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"target\": \"n4Wjg3fw8S/ocGI9gGSqfg\", \"metadata\": {\"weight\": 46, \"hover\": 46}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3CeBf9rBRUJJEl8QTxljpg\", \"target\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5vOpbU7kc21gWGoUtU+Zyg\", \"target\": \"ck6ssgoFVr2rk/XKn1AnUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ECPLScyImUDmwsrLCs5Uw\", \"target\": \"f+E8VIalbsW65FQq5Z+peQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ECPLScyImUDmwsrLCs5Uw\", \"target\": \"JHN1RRKwapnUWKCl3tIioQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UnMVJbIAOTybaBsAyfxQUw\", \"target\": \"aIIgb7T9OT5k+4MjasF9WA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"LlZMdonbcTzMHX8tffT5ig\", \"target\": \"UnMVJbIAOTybaBsAyfxQUw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"UnMVJbIAOTybaBsAyfxQUw\", \"target\": \"ki2D2kbSKwtmj52dz5bw+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WRVIPJmmW1C9askKNNRiUw\", \"target\": \"ZOXH4sYXO8arQZZMzYldhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WRVIPJmmW1C9askKNNRiUw\", \"target\": \"We/y8kKlzK1iY53AKV7n0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TyGrvk8SzqnwelG70YR5g\", \"target\": \"402+Q4nAghzmmhzcXv9sUw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"402+Q4nAghzmmhzcXv9sUw\", \"target\": \"fNS5Dg9E+rY2v60BUkcE9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"NkzWZRIpTwu3DUJFtrOqoQ\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"NbdJmnny6VadnVE/Q5dqzg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9vM/M/R88223PZSDUnV8Uw\", \"target\": \"Qy0hhxrb9Nmf8+xAUfVp/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ciq4M1yRMrhQLd85nBeOUw\", \"target\": \"LR0o1Gp5Q/56VArLa5GfaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ciq4M1yRMrhQLd85nBeOUw\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/sG+lWv0qnoQuVdyd5KUUw\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/sG+lWv0qnoQuVdyd5KUUw\", \"target\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"vD9s1XC8nMshE2yQpfmXUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eYfvAr+UfKq1aCZN2x4y6w\", \"target\": \"vD9s1XC8nMshE2yQpfmXUw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FP3VoLmMd2eZRBobuqshxQ\", \"target\": \"n/wtIbSj4hJctHmq4SrGUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7B3pLJTfNbhA56BMabUB5Q\", \"target\": \"n/wtIbSj4hJctHmq4SrGUw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"61eleyxtAaRL9cz885XIUw\", \"target\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"F9CMSEB+Yw3UKbZKivXiUw\", \"target\": \"ZzCo4CVfdpjU5mTaFQCZog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NCsCA3Mx7MjieYPd2Ajzqw\", \"target\": \"bv3PChfP/0t22LDSCoYRVA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bv3PChfP/0t22LDSCoYRVA\", \"target\": \"if2uIOOYU984PgU0edHV/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NQ2Kua1CDQH1/zRWd1YaVA\", \"target\": \"o+m2QQS9epHCXQOZQQFibQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"MvO9GEb2B9OFQ1vFyxccVA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"KyOVJoQ1KBIHYx7862Clww\", \"target\": \"VzXB6IJaLXEXJ8d8MMJbVA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AFbeOfS8Fhf7S6zrL2GYVA\", \"target\": \"dLxkDItK6ds0BvVWlMzfxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC76g5K8wAxvtnuruj3moQ\", \"target\": \"ODOfjCoQGHXAkZ+DJzahVA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ODOfjCoQGHXAkZ+DJzahVA\", \"target\": \"W5vKZMcezwUnhC22O8hM9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5cV0GYVtl1fh/DI7O5TBhw\", \"target\": \"z+l8ckU+S5XnZDQNlVahVA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"Gf88tDhAetc/OxboxVK8VA\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6RqXWDqyVqOwgmmmqWtA/Q\", \"target\": \"Gf88tDhAetc/OxboxVK8VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I7hEb7oVDnJItkadyKrCVA\", \"target\": \"T03vnlhpoiPKW+i4msNpfQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/FbYCEQvYjAF7sxBwUvWVA\", \"target\": \"1RXEjZUbzQlv/sF+7lcjmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/FbYCEQvYjAF7sxBwUvWVA\", \"target\": \"z74I6YSnuYW7jPenY9cb4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IibzINOrT7+RADphvGLbVA\", \"target\": \"QZH8vfYtCBAc59swD26agw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"IibzINOrT7+RADphvGLbVA\", \"target\": \"L/8tLTjf3qUm/TOyurJOug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"57lEGqv3yMd/4KTgvYbdVA\", \"target\": \"Vt0YjdF6gca6IHVC9Hs5jw\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"UQUtbMtXhRdVUpHFPw/mXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"SVozJ8XW8FPd0iHVZjCBZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vO6fTiJWeBW8Ovt00gmfQ\", \"target\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"dlr2R44ETn3xtO4mnELFiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7BPRKy4C5yefrrHo632x7g\", \"target\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Cqan0D3Fg33T/2CdKx/gVA\", \"target\": \"XxgcW3KOOwIwxZx0l+ao7w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pb73mVNEl7N+Chk55BH2VA\", \"target\": \"uldXPY99tgYVFbIPI3L5tQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"pb73mVNEl7N+Chk55BH2VA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mfNb4PePcIOAfwupmedlVQ\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"target\": \"YrrsQS8pOEwx8jIkOi12VQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2t1yVN7Z9uNwoEmgU8tS7Q\", \"target\": \"YrrsQS8pOEwx8jIkOi12VQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FKCFaiakBcRnTlkVYzyIVQ\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"MevGjFG48jL1EP+uRx5xZg\", \"target\": \"bjM1RTxMkbo9D2ZgF6+JVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QljCsEz0a///Jq2IB2+cxg\", \"target\": \"bjM1RTxMkbo9D2ZgF6+JVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FvJM048TPlichlBDXcGLVQ\", \"target\": \"ZdnDVxJ8lr+5jJxYfk8HYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FvJM048TPlichlBDXcGLVQ\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FvJM048TPlichlBDXcGLVQ\", \"target\": \"RNWd8UAwtRy33uFufI5/yg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"B5o2moO+zZgiWlvKn6eUVQ\", \"target\": \"ag5YbRufSxX0dYh0+QVCtA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"lgCoz88OaqYPJJTBOXurVQ\", \"target\": \"nL/ewA9/7hfFwMYmieKsXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fRdioxsCKtEz2G0T13qL7Q\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9el4Yb1FIodeYe4QeztY8A\", \"target\": \"lgCoz88OaqYPJJTBOXurVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JuVP3exlf4shYDoAoKVSqw\", \"target\": \"efrUM+KiMZNcsDhX4gXcVQ\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"efrUM+KiMZNcsDhX4gXcVQ\", \"target\": \"nFb5wObag+REOsnnoRX95A\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"target\": \"dSSZ+HP6teRDlmQgSqDoVQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bXGpMEzkXLgG31dxALVXyQ\", \"target\": \"dSSZ+HP6teRDlmQgSqDoVQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2a+0fWSXMHaZ2Hov9wcXcw\", \"target\": \"D32fNkXbGb8JntDyIq0DVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D32fNkXbGb8JntDyIq0DVg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"D32fNkXbGb8JntDyIq0DVg\", \"target\": \"E5A0lMr/AClmZHz1S2qRtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ae9DRMtLdxRiRvwoQZcWVg\", \"target\": \"Ifsn31I/BxOTLopfp+ELnA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"Ae9DRMtLdxRiRvwoQZcWVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KaWuVUZ3E9K5pqffOyoaVg\", \"target\": \"e1Y/y58FpDPgmAh5G8G4lQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"mgg/lhrwL5Rtr3eKy9uiZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"xOvTZEopT/cbeclaxyRyfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"Ev9lGJvuC87K+6RDWUCSlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"NIRt1zkakp48vUkF6P18rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"93HOrLa/6emnc4Mf45A8Vg\", \"target\": \"X3iS8Dq3cq8It+tMVZGR2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"93HOrLa/6emnc4Mf45A8Vg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FuuSZV27Neo4y6ZEJ2d6qg\", \"target\": \"TJyQjmH+Od59eoQ7hHxGVg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"Of3cqqWX3hgee7b+lotWVg\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AdIBqPKbWZ1ixMQ1vwkHig\", \"target\": \"imqM2tAn9iI3UoMOfiJ9Vg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AheEjR6jraasDVl7HQ0q6Q\", \"target\": \"imqM2tAn9iI3UoMOfiJ9Vg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PAOaHKlVSzf3ntsoHnOGVg\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"PAOaHKlVSzf3ntsoHnOGVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"PAOaHKlVSzf3ntsoHnOGVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6s1uAbZCzoVJ6MCikPyIVg\", \"target\": \"LJGylLlX+/njYiLtK5PItg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"eQM+KwEzGGQwXa5pfTsnZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"vSJWqBZbFjSkYqQRa1OlcA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"oklVnGTYPCdUOJPs4w8Lhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NqzCCjAYhYA57dD9FeKWVg\", \"target\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"olMAQl+wwkOfD/g3eOeP0A\", \"target\": \"v6OGQ3IGrh7t1+9Pc5ClVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Howi1yXCwy8xQvfqMDCwVg\", \"target\": \"KXsJCgCkQt7RulySZ6+H+Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NHOlG6qRJsYm8dvs+h/UVg\", \"target\": \"pQvmcHKlsQVD46e4shkngg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"pgQHSJE9LdFJ4JX4uLFkbg\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l0YHJYM4046cMOuZp7BR2g\", \"target\": \"xJHtdpGIDLHQjNe8T6/tVg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C0NnqLBhV+x4qrVn6I0TVw\", \"target\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C0NnqLBhV+x4qrVn6I0TVw\", \"target\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/naWOtKyFnAFT5TWtQeieQ\", \"target\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"9/jm2PrbMRIBoEk4C/ojVw\", \"target\": \"KAOYRnIa8jpoVsl6LEwC0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KBvffIWk1pKZrIIrmmUtVw\", \"target\": \"ri48j885BLzHXAWT8WJduA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ENFraASWg5RdTlQ8G8E6Vw\", \"target\": \"G5ipCSZyCiz77d8Gi5A/ng\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"LAr9yFll6jcyvIbcPNFfVw\", \"target\": \"eCws2fVFKsN6qLY70X9GVw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"48shU8rWkVDv9ux1mYNJVw\", \"target\": \"fzbpoYXB7t3QDILutC3sgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"48shU8rWkVDv9ux1mYNJVw\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g/R1uTvqZfKj5drIlOC1cA\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANKXuYblah5Sw/0h5ImguA\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QGgfp0R2eZB+GeRcldbr3A\", \"target\": \"gYTNxn8CAsLGcly8ASpLVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gYTNxn8CAsLGcly8ASpLVw\", \"target\": \"jU2QIPHqLFIT2TilhstV4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JC9CR/h5Zd8Lo5hza/4/og\", \"target\": \"SToRdrEwGm/BztKtepZaVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"target\": \"xSijYTPxbvF64cPzbe9oVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h+88TEDu69e76yofbFUC7w\", \"target\": \"xSijYTPxbvF64cPzbe9oVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9NyRQB1LYCsbPHrE6bFjlg\", \"target\": \"ju2FdjnvEwJERaFrBSF1Vw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"08bGjN1u0ANSZUfU31gawA\", \"target\": \"TsyJJhx24NuArVGKSiK9Vw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"1eS0SAabJx3xGSCwWSbPVw\", \"target\": \"p3tybEF2UpLMP4gDgTlShw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1eS0SAabJx3xGSCwWSbPVw\", \"target\": \"w5zZguOil64NNAAULQPU1w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+zz49PYLjgQ+HgQ+JdRW/Q\", \"target\": \"WPY/12VLyv/ZGCMOGvjPVw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WPY/12VLyv/ZGCMOGvjPVw\", \"target\": \"g8omXv57dirNyxDKqHKY/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34hValFnV2+dT4B4gubXVw\", \"target\": \"Av+NJ6AdBIQWI6bttPc38g\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"IsbmmrPvHfOSoTAvdVW3mw\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QliDnvMJ5gshMhitECBf2Q\", \"target\": \"ztcyThZuB1bSoMVv35vfVw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"JFsTmh4xEffCA34Bwl9sqA\", \"target\": \"ulMN+MhAnO/xSs9XqSD1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"79ZVec1G5s0cAdAPbGh7vw\", \"target\": \"ulMN+MhAnO/xSs9XqSD1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8ay8Jub/jSdSgmTtDJKJxA\", \"target\": \"ulMN+MhAnO/xSs9XqSD1Vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QliDnvMJ5gshMhitECBf2Q\", \"target\": \"rOaXdLN11aUlsObk+Cn8Vw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"cq9Ea27BfLntD/Il3YYHWA\", \"target\": \"vOOKfU4yOH6KgAfbs1qADA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WmDoE4doNyin11HM8WgSxw\", \"target\": \"cq9Ea27BfLntD/Il3YYHWA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"sZQt0HcBdAnBVufRutAdWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qKdc7yaOfDNQ3Ioddlqw4g\", \"target\": \"sZQt0HcBdAnBVufRutAdWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Yxer1BQHw8ayI4coIJWc7A\", \"target\": \"sZQt0HcBdAnBVufRutAdWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"46aKlHUWbk6T7f6FIOuAgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"bDci8BIt+vso5WXBUfZPhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1zegi/QAelz/NhbUIXIkWA\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"72sWJrEiMlL0pIoWjHY5WA\", \"target\": \"wZSNMWPhftzSTbrv/fr26w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"llovrNhzEbhUrsORmDYEXw\", \"target\": \"qkDwhgegxr+4Q7DZidQ+WA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"9n4t1Zn+X0s5hKb1T+I6rQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"ORocJgkETt4cgx7zJX1m2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"eodI+fnS3UzxZQs/glMJ3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2l287p85LameY/XlSjFLWA\", \"target\": \"aPDfJ/RktssG6+PgDXeC4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9otxW3iqkb6mUsVibfZLWA\", \"target\": \"I3HKdcL6uq1dV9U6rAbJuw\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"g2//Y847Q3iYW+VM33+Ksw\", \"target\": \"wwgZ4aqOeVTXMNCdUON5WA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"wwgZ4aqOeVTXMNCdUON5WA\", \"target\": \"xGYjzaN7LnHvZGeHcLTD0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ggedp8qPy5kyWh6extUQ4w\", \"target\": \"aIIgb7T9OT5k+4MjasF9WA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"aIIgb7T9OT5k+4MjasF9WA\", \"target\": \"ki2D2kbSKwtmj52dz5bw+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"target\": \"W6goBNVWB0Ihs8xMQ0iGWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BXpeYYaO1qQF8B0NEv4r3w\", \"target\": \"W6goBNVWB0Ihs8xMQ0iGWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"W6goBNVWB0Ihs8xMQ0iGWA\", \"target\": \"m6ZpojGcm6og1aNvWaJL/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"target\": \"jSN7JY5CiEq76H/IKAPBWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"target\": \"rTMHQmIf07jtnjcUShfGWA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"COZSAihw0piprQZNqhPTWA\", \"target\": \"wRRfjVSXW26fS6X5yakhXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5VUgL1dwfNm5AVOz+sx4ZQ\", \"target\": \"COZSAihw0piprQZNqhPTWA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"COZSAihw0piprQZNqhPTWA\", \"target\": \"rDPPMTD4vnxKGOpF+2Zlaw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"COZSAihw0piprQZNqhPTWA\", \"target\": \"MLDh6bSGi6PSwySBAYEg6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3fUOLgr8CbZwWyLGmWvaWA\", \"target\": \"PrFs5bxt6PWZ7A7m8WT73A\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"MX1iQXm9JIumNefXUd9PXA\", \"target\": \"gUFSWzIUmsXeT+D4FdTbWA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Kah82w+S/u4725mVZgjAnw\", \"target\": \"VjjH8fRdx0M/KrNVGsogWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"VjjH8fRdx0M/KrNVGsogWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Qw8vIzjf/i1LCT9VUE8WQ\", \"target\": \"WFWWw2jQ8tZw5iRQSFNP8g\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"68Q7ajA1itdZfaO6FmPPZg\", \"target\": \"rK+9r/bJqlMdwX6xNutDWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rK+9r/bJqlMdwX6xNutDWQ\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pnzwd6zA7P0nwxXLzK5elg\", \"target\": \"y/EwmqIjSs3C9CuihUtVWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tK2U2fHkt+0EQze0I6bypg\", \"target\": \"y/EwmqIjSs3C9CuihUtVWQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eof82uJ+FIvvh5PWSJZF3w\", \"target\": \"y/EwmqIjSs3C9CuihUtVWQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sTbdtccB3oN5Rz44Z2paWQ\", \"target\": \"wKQEKDM6bFf7YQhZ0rV32A\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"5md/MVOxk6Lw2Tjacf6D0w\", \"target\": \"CY1ASUvL41NMGfDtdMFmWQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"RTckRKEGiClaU/kOghmIWQ\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"OybZPZewW/5uo77pf5EOag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"L2R99MXyAwQ7moUkSDjUbg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"gbLXXnl675hHRZYXyW0pzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"b8fpnzCB7pOsbIrJNam9zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2qeJ2xkq8iCVJMJx6+6KWQ\", \"target\": \"cymvFwyYZ7rZh6oQjfmq5A\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"6NRZyNIXOo0yh70A0I2iWQ\", \"target\": \"swE/d75dr8jLE+X9IPWubQ\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"ZK6YeSt70T5UPes8Tj68ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"eJfOofg/VkU3qdrZNfHY1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"target\": \"nNdeLertJElPQpss2WS+4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTana0mhDAQ7pDlNgeTo5g\", \"target\": \"Fq7qvVEGpK+4BKNxxNn7WQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BP7DgF9QPNEPPG09OT3xkg\", \"target\": \"kkXV8yqVeCt4dSV3PqIJWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7pcApyi0C63xSascCt1wrw\", \"target\": \"kkXV8yqVeCt4dSV3PqIJWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kkXV8yqVeCt4dSV3PqIJWg\", \"target\": \"qcL9ytXQGVZEzfmjivkj1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d+jDWSs2T6c8VQ8BAurfuw\", \"target\": \"h8KNYZHf0bxUHrr8W4MKWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h8KNYZHf0bxUHrr8W4MKWg\", \"target\": \"voyyn7epEtNpu6dfPTzP0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SRrPV4MCz83nj7AW/W7jsg\", \"target\": \"ehhpQk8GXvQZRIxOZggVWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ehhpQk8GXvQZRIxOZggVWg\", \"target\": \"z5jHSXyyrX6eDs+IbTIDxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0mCvCIbvhxPg63+1mNGf1g\", \"target\": \"ehhpQk8GXvQZRIxOZggVWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eUot1iW5hlu7RiRC2m4gWg\", \"target\": \"j6By1U2pa9tCpe2vghUI4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4t1AHK2HFYcR5D9nIC0Y9A\", \"target\": \"eUot1iW5hlu7RiRC2m4gWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YRplCx8z9GNMnXrPdwUkWg\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"klquQJ0Jl9OUmVEJRbqZcQ\", \"target\": \"oz8+VHSy77Ift85Thf8zWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oz8+VHSy77Ift85Thf8zWg\", \"target\": \"yrXDjH5Y3GviTTblofUhkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oz8+VHSy77Ift85Thf8zWg\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UH5IsiL9uFI65JlQVZqCpg\", \"target\": \"oz8+VHSy77Ift85Thf8zWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"oz8+VHSy77Ift85Thf8zWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"1vnevzowu+uO6Fw7bnhVkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"YL7u6Ftz6it+yHZ1zOCPlA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0MLR6jlBtVCGZVRTpK9XWg\", \"target\": \"d+kA2No99UCwkK/diexNvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/aM4gHYQGmLOHeMeBo9xWg\", \"target\": \"SW495dBUNeThwmcdR2mnsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"OYH5ske6RuFozNHIa7hzWg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"/2rrq0GcdJM54Cu4x7d4Wg\", \"target\": \"RSkzRcKCWXkgyP3wyubL2w\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"TH6yeUquRV0AJfYGgRgOrA\", \"target\": \"wuWhg4Yw6D8Ry0qr0sGCWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YsX1xoG1Sju1MtguNdicyQ\", \"target\": \"wuWhg4Yw6D8Ry0qr0sGCWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7b2RfDpW6ux8JFAhGs6unQ\", \"target\": \"VHmR3tDa7EGSZ8FpyTy4Wg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/244Bhg1oGurt3IyzwKYxQ\", \"target\": \"VHmR3tDa7EGSZ8FpyTy4Wg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AnqqRMSFJIdjqNTRgBhGiw\", \"target\": \"YWjU6xATC2Q0iWOLiX/MWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"44m6YoyPWWMgqGmxbpPgww\", \"target\": \"YWjU6xATC2Q0iWOLiX/MWg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2oENxDAeO3msBRvThWGNaQ\", \"target\": \"nPeh2fAxx1RfouYcbSPfWg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"G61pOLo45+GyyS5e8k3vWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8wXFOFxvQzDP2XGsXPTJug\", \"target\": \"G61pOLo45+GyyS5e8k3vWg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"DfJsJTOjR+NX+PmleFU+gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"r+bYu5Ulcywy8rBOadEYuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"Ri+0Jy7gEDnrphImzdan6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4G0IR8MZNUMbPoD8p68XWw\", \"target\": \"u2at6zf9OYlpg8Ts5KiK/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LMiOnh18K5J2ysJ7jEkoWw\", \"target\": \"t7Lm24o8Qqbykt2A4VlQnA\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"0l/H5+6WdS+zglOIO0swWw\", \"target\": \"IMUJNk7CzjopvcMmzqpY9w\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"+SV4sfwaeMk9N7sb4Di38Q\", \"target\": \"ruqNFuUB6tHVOz0EcqpPWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9jduueKJ+ghpIqAdXSLWw\", \"target\": \"s933IHR2SOYkrslDC3JgXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hrftt1kQzCVPx8AxEdZneg\", \"target\": \"X9jduueKJ+ghpIqAdXSLWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X9jduueKJ+ghpIqAdXSLWw\", \"target\": \"j8j5NMqGbzwWyCZEIxS8sg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3buh1bQHBjYvBLTs3k1pcg\", \"target\": \"navgg+2v2IpcTItMEGeWWw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9BqTzf+HI3o6WFXzcgP6Ww\", \"target\": \"cdtm284VM0XW/UkAuEnudA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9BqTzf+HI3o6WFXzcgP6Ww\", \"target\": \"Z9dCRzGkhMPsUVW2ZxiKmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"cjBusNr5IUANno8M2pAeXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Mmtn4en3D2UNWbeME8UmA\", \"target\": \"cjBusNr5IUANno8M2pAeXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EZ1Uxbd2GRWzoNGSb6zYrQ\", \"target\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iFxq8blHvCT13CeFg1Uq9w\", \"target\": \"r822x+ZsDaqU9LZ1qUcvXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AXXDOz0vS2tmKhyIhXZEXA\", \"target\": \"jPwI+OB8erWmfUxJgF6Nrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"MX1iQXm9JIumNefXUd9PXA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"RdHJ6h70jpiHt3m/vAPL2g\", \"target\": \"wxNjDbtynlXPoy/Q5D2AXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"vxqJKZeQ2Vvx7xXFybjU3A\", \"target\": \"wxNjDbtynlXPoy/Q5D2AXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"target\": \"qnfy1S5fbWxIZW6Zb7k6YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H51lkjTGo0qqwQ7sEroFdQ\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2HdF9Vrsld08yjF+lXBrdQ\", \"target\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qIoEZ9sS5H1dN+Jo7fCcXA\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oyFfCj3XEK2o5kEyMRZXug\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"bXt54Mwr7PfZh3d4YYJ/8Q\", \"target\": \"r23aQzJKO9y3d2dOK0ijXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"target\": \"mDhEd8i5IRTiz5zzp+nHXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"66eisG0zlPciGk3M3zXzqg\", \"target\": \"mDhEd8i5IRTiz5zzp+nHXA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mDhEd8i5IRTiz5zzp+nHXA\", \"target\": \"vy0FMq4VqzAmN+15yanvrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V+s32xIiYLwU4mBWjW8iXQ\", \"target\": \"YzTYwzGBsaucgy6itdISaA\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"target\": \"fTIctR0vW2sc4q6ZyMg6XQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fTIctR0vW2sc4q6ZyMg6XQ\", \"target\": \"rwxpB8UX/weoLJqfaRmJ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WVpCA2eA54bnl3oSospTXQ\", \"target\": \"pTUiejm1wpNhKBFOzILidQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TtIAgvnQmh/5T/BJWJrIpg\", \"target\": \"WVpCA2eA54bnl3oSospTXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"WVpCA2eA54bnl3oSospTXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"claAW9BD3Hw/5DoSlbSKXQ\", \"target\": \"xrWu5aeUX9Np83JY2t36fQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"claAW9BD3Hw/5DoSlbSKXQ\", \"target\": \"j2Yua3a567JQqNUafYalpg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OyTztUYnRhTYYxoLBI9FbQ\", \"target\": \"PcXLA8V21+Wb46Z5bgKSXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"PcXLA8V21+Wb46Z5bgKSXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e/a+enA4pnyYG3utbQBY3Q\", \"target\": \"ogQ/15xsZTPagM0jd0GpXQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"3vO6fTiJWeBW8Ovt00gmfQ\", \"target\": \"UQUtbMtXhRdVUpHFPw/mXQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7BPRKy4C5yefrrHo632x7g\", \"target\": \"UQUtbMtXhRdVUpHFPw/mXQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"neUebpMrrYX3e5BjAvyzdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"loqw1+ffTyBWBziom2HExg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"RGjlmlPAkXa/tI12Y6I10g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LoiEF56LLlDPf+Us5wX/XQ\", \"target\": \"PyEwC8P2XWgBNOn//O9W6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aKkEMSzcA3tK7Ey9aHwJXg\", \"target\": \"qrsjsWUS7pNe8p0FWJp9kA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"aKkEMSzcA3tK7Ey9aHwJXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AlCXpabHb9Fswv7L4U0Bwg\", \"target\": \"KCJwaDRWgE9q3q7OmKEJXg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"5VUgL1dwfNm5AVOz+sx4ZQ\", \"target\": \"wRRfjVSXW26fS6X5yakhXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MLDh6bSGi6PSwySBAYEg6A\", \"target\": \"wRRfjVSXW26fS6X5yakhXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"85ApQUxq0xx83S44A+NLXg\", \"target\": \"EjF8fainP19/QDcGbaCfpg\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"IEvjI9DghsvK8rqHLAZbXg\", \"target\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IEvjI9DghsvK8rqHLAZbXg\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"IEvjI9DghsvK8rqHLAZbXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"beJ4oL6Wy5sXtqlO2LH4gg\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"A14BetnIopZaaGAnjtv9mg\", \"target\": \"JqM77VUcNwh2YpJxMTdfXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"lW8nc97cG8164gWackiEtw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"JqM77VUcNwh2YpJxMTdfXg\", \"target\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"vL+/RI7kdpbY/Np/ysigXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"vL+/RI7kdpbY/Np/ysigXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"nL/ewA9/7hfFwMYmieKsXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9el4Yb1FIodeYe4QeztY8A\", \"target\": \"nL/ewA9/7hfFwMYmieKsXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7h9Fg1B195k0e5jbUGH+cg\", \"target\": \"N5rUu9Z9APXGiNRDfx7hXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N5rUu9Z9APXGiNRDfx7hXg\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"wH4ggU+AeirvEleuA5QfsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"gzeycB4zCQKXkJ6WXWTl7w\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"+WN1SyOPTILYm74gipLlXg\", \"target\": \"6BlHPEWxjD7W/EXGlQA8/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RIFKqY1gLZsQf+i0P0a8sQ\", \"target\": \"wneYD+VDwhkmw532fW7qXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TFGivlNpyvLKfXPJLvfz2w\", \"target\": \"wneYD+VDwhkmw532fW7qXg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bGDOuVUdJKIu5Ixbo/hl9g\", \"target\": \"mt56Y7tQ3sCIsVJj4zkXXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7u2XSrqa0R2siPqtptBvhg\", \"target\": \"AFFAXTu2gNkQUc+It6w8Xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"AFFAXTu2gNkQUc+It6w8Xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"hu8ICB4fKw3AVpjcGUhZXw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"foEOhXqE/MBXNZlfAAZmmQ\", \"target\": \"hu8ICB4fKw3AVpjcGUhZXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hrftt1kQzCVPx8AxEdZneg\", \"target\": \"s933IHR2SOYkrslDC3JgXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"O6j0sHDBfrnArqvkE5CKXw\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O6j0sHDBfrnArqvkE5CKXw\", \"target\": \"r1iREzOib40Fq3xYyqDR0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2q/2mxK7z5s4ow/GfXubXw\", \"target\": \"SVncppnuBWX66nGOzF5GZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bp/cH5b+nBTbc8NY0tOcow\", \"target\": \"pslubpS6aAxQnPsj4LiuXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pslubpS6aAxQnPsj4LiuXw\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8DMefT1OSM5d4f8qFzt9kA\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QL8CggzdkKjyhEKfupbCXw\", \"target\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"QL8CggzdkKjyhEKfupbCXw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"hW366XCp/i7HQnhv+RXHXw\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9DtTLKdp0pHZCbYalxQFYA\", \"target\": \"DOsl6zK+y/hfIPJ3VtMngw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KFHWcKdMUM2lpGAGG5QHYA\", \"target\": \"oGVIZCXdUXvIMETXa+zMag\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"L5j3a+KEjVvruGkUNWZ0/A\", \"target\": \"fiycSpGQtRIfH6qDzzcOYA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"2HdF9Vrsld08yjF+lXBrdQ\", \"target\": \"qnfy1S5fbWxIZW6Zb7k6YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0i+8vwHItC+FNSCN6RN8YA\", \"target\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"0i+8vwHItC+FNSCN6RN8YA\", \"target\": \"JF/aaK2hFM7tvJ1WIB9JsA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"0i+8vwHItC+FNSCN6RN8YA\", \"target\": \"rbPtcSfWqHkkTq1H9XUV3Q\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"KqHNtZd2xUrZodIDS0CcYA\", \"target\": \"nSOPa8O+2GmeTc1ttJWhsQ\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"4fsPI0x1OUVboOOVA84FzQ\", \"target\": \"iCmnZi9CFvdYvyiq1vugYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"xYBnEJB+6rnvZzZiDcWrYA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"BN+YmIxT+3E9xyYfA94pdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9lPR2cQoicAzSOP9+WO8YA\", \"target\": \"LL3EugqztyFZS7UuGML+yA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"K53b7HORgyhLUuQ9WN0kbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89h2vLD4vEBZ5Cp2urzkYA\", \"target\": \"tX0B7WfMBbtslZFb0IpizQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TPUTckho+StrbYBpi7L0YA\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NzlMJMnlHuCbxGhinyGmfA\", \"target\": \"TPUTckho+StrbYBpi7L0YA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"TPUTckho+StrbYBpi7L0YA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"up9psA1MqaBe3U64WLyMdQ\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"xJiz3I1kHzo5E+2oylh5gA\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7+546eOPGtXQD4e1DDKtkA\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"w/1S2jjYrh+t4IF1b9hDkw\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NjVhdiC4UmNJkZgJOcpn6w\", \"target\": \"z+8oF1aKjRu86R3aUjcFYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZdnDVxJ8lr+5jJxYfk8HYQ\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"ZdnDVxJ8lr+5jJxYfk8HYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QYuYhJq6PcBT0c+DRYWAhA\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KAOYRnIa8jpoVsl6LEwC0A\", \"target\": \"hddOV5f0YEFb3ePvE1FUYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PL5jtLk+zPAXhB/EpkN0ig\", \"target\": \"Tkjte2I8ttkrymdWYWyFYQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"sHv2V4ZuvehzCwHPCnOQYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rBRMKV18YrOSdA+WPlz6sQ\", \"target\": \"sHv2V4ZuvehzCwHPCnOQYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A8RHRlYqsCVKm8quwQqhYQ\", \"target\": \"HCQKKS5z1h7eYqav2fhzYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A8RHRlYqsCVKm8quwQqhYQ\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A8RHRlYqsCVKm8quwQqhYQ\", \"target\": \"usCj8EbPFiwMXDxfRmyWvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"tfw90wbD4QM/PpDbMLj6cA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"LRvRi7afvuVDGY7sRVUrvQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+5Bq+EbFrtKUOjGDiim7zw\", \"target\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1TdVU0dsTMlPESXgZHGtYQ\", \"target\": \"eVwUCQYDufTRiMXd3gS21A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbaFWKwjLhE68HJWltWqyA\", \"target\": \"KF/ggkreIF0LsX56a0nTYQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KF/ggkreIF0LsX56a0nTYQ\", \"target\": \"Vt717tNeUr26Ht7uz3W6zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h8PJ8ykifxVNLeHWFe/lYQ\", \"target\": \"rv1QjpEbuSQW+45lpZSGeA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"L64aCDPhMOIOwxJW4cYO7g\", \"target\": \"h8PJ8ykifxVNLeHWFe/lYQ\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"Rr9emPI1nLHqljrbD4DvYQ\", \"target\": \"nks5WSx4QKKAPQCWyIn32A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rr9emPI1nLHqljrbD4DvYQ\", \"target\": \"lstYZJhfvS9jBG5xm+8U9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"pejzevFVc+aG7TCaqhshYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"pejzevFVc+aG7TCaqhshYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/hg11VBlQNdhRdNquj44mQ\", \"target\": \"IXdPVWFghod/SBOsAt1aYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"81/t15zn23kc/9M+VRloYg\", \"target\": \"uDOUHvwuMFbU5lxW8kemlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"81/t15zn23kc/9M+VRloYg\", \"target\": \"ZU65SFXBVuu8L57SNcJ25Q\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"/i+pP6jIG4qaUe+SGq5pYg\", \"target\": \"TkBKnFxeFnG+2hBRM5TjbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/i+pP6jIG4qaUe+SGq5pYg\", \"target\": \"xdPBng9vNQkVKMcV3dLUnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/i+pP6jIG4qaUe+SGq5pYg\", \"target\": \"MLDh6bSGi6PSwySBAYEg6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HCQKKS5z1h7eYqav2fhzYg\", \"target\": \"V39HVLs3gAxLStN2ZbhDkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HCQKKS5z1h7eYqav2fhzYg\", \"target\": \"usCj8EbPFiwMXDxfRmyWvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XJcqpIcy69YD5Aees5ecew\", \"target\": \"xI1aLjQUZ7LtO3/xEnJ+Yg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"8eST8m92csATI1mdEtKGYg\", \"target\": \"D/A8t0cmv3N4b8hDFamTiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8eST8m92csATI1mdEtKGYg\", \"target\": \"bwWPWOOz5uHVBrqvXEpW8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bk9spz7t1TylsPHDJYkLxw\", \"target\": \"uSDlN/LPFKzTcwmARYOSYg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"XBVUEkaFxyRusIcv+usuaw\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dyG5yCEuXNa7zINq/JKjYg\", \"target\": \"stm5O3lA7Tm784XxpVddlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/hoM3x9QDTrZMypNwFxFuA\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0t6hQrq58/AjvNmfKQJA3w\", \"target\": \"dyG5yCEuXNa7zINq/JKjYg\", \"metadata\": {\"weight\": 44, \"hover\": 44}}, {\"source\": \"0QIadK8r6HxNza6Ny+h+qA\", \"target\": \"T9flAVJsWQvGQcCuP9ajYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T9flAVJsWQvGQcCuP9ajYg\", \"target\": \"i1YhmqPsCV5G50aFCHtD+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EMY6LHYwmd0QTiRrnsetYg\", \"target\": \"u8wMRBA97dXpAFjbPoTBaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EMY6LHYwmd0QTiRrnsetYg\", \"target\": \"ZTZGPr12qhPT39K3XPATcQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EMY6LHYwmd0QTiRrnsetYg\", \"target\": \"oaZRRjQzjqiXM8H0BFXs/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bXGpMEzkXLgG31dxALVXyQ\", \"target\": \"cS/bpu52WCU9X+jUmZu+Yg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhHo3HeMfTGX/H0KDyMNYw\", \"target\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ARtNFnnaQ6GXiln4T/Qiw\", \"target\": \"olk1QAFpHTZg1V+12hNUYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"target\": \"olk1QAFpHTZg1V+12hNUYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1WjfVSCScOY81ocVLG5loQ\", \"target\": \"Ow3h3bI7n0amMosQn3tVYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ow3h3bI7n0amMosQn3tVYw\", \"target\": \"POgaZ85u3n/rjr0nGAs1sg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GnAbts15yBTBPSTHzQh7Yw\", \"target\": \"xJ4etXa+11viKMelSA2I7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GnAbts15yBTBPSTHzQh7Yw\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1THmiGWj4fAKDegLXyKkYw\", \"target\": \"hur+DI1LU7t3WWr94OogoA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"TECaccIMdVH1O/B8fm3MYw\", \"target\": \"WsADvQUexHH226piNwJkmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8dAZq6dnSSBoaukyGPkp+g\", \"target\": \"vD6OZSkKU8GFj6Hs3gPXYw\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"/vWYb5IsDMKj6AN7glY4rA\", \"target\": \"F5HRLcAVvtui7yRoAlPYYw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NB36u7yBXPdWuZqt6xVvoA\", \"target\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PYoMtmsPFxpKNYEV4SDZYw\", \"target\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8CMoYUu+332sDGqV2kLCZA\", \"target\": \"e/1HN0Ox0h0DrOXmQ7b/Yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"e/1HN0Ox0h0DrOXmQ7b/Yw\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QNaUmTD9XiBvuQRyF+hEog\", \"target\": \"e/1HN0Ox0h0DrOXmQ7b/Yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZvBzxChZplZxvBcbRvQNZA\", \"target\": \"gKWDlf3LZCGgS60wxil8cQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"W9820uGVNNrihcyqAVBEdg\", \"target\": \"ZvBzxChZplZxvBcbRvQNZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZvBzxChZplZxvBcbRvQNZA\", \"target\": \"ofSL6fj3xO5/y83Iczo74g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XLl7+jPIy0KntxXZsFAjZA\", \"target\": \"o2CKozplhIEEwPMwuJwHfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XLl7+jPIy0KntxXZsFAjZA\", \"target\": \"Z9n/kmsyq52cF3jYG9nZwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eQM+KwEzGGQwXa5pfTsnZA\", \"target\": \"oklVnGTYPCdUOJPs4w8Lhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LkM0/MtyKDGvzCG666tvZA\", \"target\": \"T21csR2tiZvqkP3PvXdr0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FDPwNBUTwho2jWg6cpf7bA\", \"target\": \"vD7RLkl2lIfpCxXIygFzZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J2JOgBTG2R43THPf9vKJyg\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"target\": \"tgEPD4FvU264xMKgydt9ZA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SVozJ8XW8FPd0iHVZjCBZA\", \"target\": \"dlr2R44ETn3xtO4mnELFiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SVozJ8XW8FPd0iHVZjCBZA\", \"target\": \"XxgcW3KOOwIwxZx0l+ao7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9x3ved1T7wjAWcFR2XFOZQ\", \"target\": \"BZ7Hiow+j1NpeSNm7razZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5iSNxr/itO4I17fTbTbe0Q\", \"target\": \"BZ7Hiow+j1NpeSNm7razZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8CMoYUu+332sDGqV2kLCZA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8CMoYUu+332sDGqV2kLCZA\", \"target\": \"QNaUmTD9XiBvuQRyF+hEog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"target\": \"XLIYgIjAAid/Qw1RCyL2ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XLIYgIjAAid/Qw1RCyL2ZA\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"XLIYgIjAAid/Qw1RCyL2ZA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M+OEVS8+0HCG1kjM26aRsw\", \"target\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ag5YbRufSxX0dYh0+QVCtA\", \"target\": \"oovK5xsuIoYuG1M/X4IYZQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"1BEj44DRcK5n6B3ptY4zZQ\", \"target\": \"jvBpNSOT9RtSIOth8nCdvg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"45D1y/f+Hloq2UfDPISt0g\", \"target\": \"zexMlqrIwQf2AHpu4iZCZQ\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"5iSNxr/itO4I17fTbTbe0Q\", \"target\": \"9x3ved1T7wjAWcFR2XFOZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pwFegFZIy5bhsBwci3trZQ\", \"target\": \"tH9869I8NvruzTNOD7edxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9u2HDSvX//SeuxXrnZqtyQ\", \"target\": \"pwFegFZIy5bhsBwci3trZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5VUgL1dwfNm5AVOz+sx4ZQ\", \"target\": \"MLDh6bSGi6PSwySBAYEg6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9riAVATY34jHBt90TQZrA\", \"target\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2t1yVN7Z9uNwoEmgU8tS7Q\", \"target\": \"WzOSjHpZKSZojzA4iL99ZQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5apR11MR0AvAuPyXKe+BZQ\", \"target\": \"AheEjR6jraasDVl7HQ0q6Q\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"3kCb/KZ8/abI4WHLBJ7HZQ\", \"target\": \"lTy5ajnv+ybkdhf/wEdD1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3kCb/KZ8/abI4WHLBJ7HZQ\", \"target\": \"ttNA9EtrRO4vzKDbSnXp8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4vGANuz0+6hyot70AcHRZQ\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4vGANuz0+6hyot70AcHRZQ\", \"target\": \"6jNVAJhI7DMcPITe0gOFzw\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"vsoziab71WlVH4X6m9+FZg\", \"target\": \"z/Vc98OXYInOmO1oD+PRZQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"E1+WI9OuYxMGF9bKHnDWdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"QNaUmTD9XiBvuQRyF+hEog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"Pp3qG3oSNALuUCiYsoPszA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4CjMN3w9g2bQx0m7+UELZg\", \"target\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6uEIF2c/sKN3ohddsWgT1w\", \"target\": \"t20xkxierOcBE/o0aSAdZg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G2x4mpYTKaEwCFfOF/MpZg\", \"target\": \"iweGkp1urOOrJF2VoRZNhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G2x4mpYTKaEwCFfOF/MpZg\", \"target\": \"OKTk/onbe2oebWvf+eMKvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G2x4mpYTKaEwCFfOF/MpZg\", \"target\": \"mBGZFsgZHxC73vu9VcF0vw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QpCAHtbvoruznvjbEU8nsQ\", \"target\": \"uTX3fyUcUp+b6NWtu4o0Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Gwg2EmcZbMB7v8/o0Xbfw\", \"target\": \"Z+Df51fCeSuCjkjYnEc8Zg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6A0X+/4dUpd8rUBixdZYZg\", \"target\": \"Sl/6PUC3DqG7BDyiBcK1qw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"Q0MjucCUh+7hOM6ESTwQaA\", \"target\": \"oTiCLEa9X0uHTa1BlilnZg\", \"metadata\": {\"weight\": 43, \"hover\": 43}}, {\"source\": \"MevGjFG48jL1EP+uRx5xZg\", \"target\": \"QljCsEz0a///Jq2IB2+cxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E0dFImBZ43XFNFgdbt+udw\", \"target\": \"VMCQwzdpsrbNN/t27liDZg\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"4CO33mHHgJhhEMark/hFaw\", \"target\": \"7Ye5q+ZygboyV90IkLK0Zg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"68Q7ajA1itdZfaO6FmPPZg\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QoHi3matwhw+B0if9Y6Dig\", \"target\": \"dEZXBUvT5+bmK/KeFiTjZg\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"NJTaln+qmZxCCN/Hx5IDZw\", \"target\": \"Vxb+qrdroK3Yt3RC7EJnJA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NJTaln+qmZxCCN/Hx5IDZw\", \"target\": \"w2jFy/pE8Fy943fFYEonbA\", \"metadata\": {\"weight\": 47, \"hover\": 47}}, {\"source\": \"839Oiyd7BclP2PdSeIZNqg\", \"target\": \"NJTaln+qmZxCCN/Hx5IDZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"OJf7EQPGS6EnYbiBM5pSYw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"STJBi8oPwc2BctwyE6sWjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"V0X2HIuhS0Ps7WOiYcGtmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"9JsLmui6toze4OCS9SqwtA\", \"target\": \"HYymt0lDvgI53eZlSzAjZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HYymt0lDvgI53eZlSzAjZw\", \"target\": \"VzS48APpJ+ye48pIki2dug\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"target\": \"dTkENAnFlFXuxJCq9UEvZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"dTkENAnFlFXuxJCq9UEvZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nunbAapYEUBfVO+HWtr0nQ\", \"target\": \"yHCcWJQDbIob4E9ckP4/Zw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"O/gDisntYgEbfhuQHG3dZw\", \"target\": \"l0Jn5R0PeAMlVCjBWql4Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l0Jn5R0PeAMlVCjBWql4Zw\", \"target\": \"opICajuz4lb9z9H3bjGb2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"heKhrRBgLEzQGdjEiVb4cQ\", \"target\": \"q1K2qTkP+36lkCo+WF+UZw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"KuY19ZpJ9pyPPEUlZSFuiQ\", \"target\": \"VTFcc+n6qFLhfTxVnmyXZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VTFcc+n6qFLhfTxVnmyXZw\", \"target\": \"kdW6Be6DZ17iGHRc72n1sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VTFcc+n6qFLhfTxVnmyXZw\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"plg79dOordUluDMn0QerlQ\", \"target\": \"zN1upeQhUgH8ySChSc2hZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"zN1upeQhUgH8ySChSc2hZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mgg/lhrwL5Rtr3eKy9uiZw\", \"target\": \"xOvTZEopT/cbeclaxyRyfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ev9lGJvuC87K+6RDWUCSlQ\", \"target\": \"mgg/lhrwL5Rtr3eKy9uiZw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SpFHLZG1AQhFGxOLcTCBgQ\", \"target\": \"ZQL4xUI0Lik7CwBB2L6kZw\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"blqYEvP+cEm13ZzWBP2yZw\", \"target\": \"cTFSFZ6L+4e7+kAv2OOd0g\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"8wqfLFNes7JUPFwY54jBZw\", \"target\": \"rbPtcSfWqHkkTq1H9XUV3Q\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"O/gDisntYgEbfhuQHG3dZw\", \"target\": \"opICajuz4lb9z9H3bjGb2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MG00eunxEmm1lYvM3jWA0w\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kEfT969BAAcMsgbk9Cq5g\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"knFzwzP5e4R9p7/JRtP1Zw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IeJ7QCNZxGb/t4BwOpkGcQ\", \"target\": \"Q0MjucCUh+7hOM6ESTwQaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1T2sFz5Oi3Wp2m3UyDTc+A\", \"target\": \"Q0MjucCUh+7hOM6ESTwQaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YzTYwzGBsaucgy6itdISaA\", \"target\": \"uYfni3DsnHLywrApmbU6kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YzTYwzGBsaucgy6itdISaA\", \"target\": \"jWO2RP4ylPUUhglRRs1y3w\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"39tEVdjFayXjM/S2U1YbaA\", \"target\": \"91ATqeatEnZnOl7GYatz7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iPRckEZ+9fRyg2mbWpNZaA\", \"target\": \"xhxYTYvGcyJprp8iGNPxkQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AGofICB3vZZlKcHxtSASvg\", \"target\": \"k55CIte3Gp7p6qcb3qdhaA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"target\": \"wKp/+GpkbgJu8Y1W+8t2aA\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"pFJxA6EP5BLy+6YQ9ZTIaA\", \"target\": \"skeECVWpQl8ufmsJtEK60g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nrmey3lo5Rp0gzeNirbf+w\", \"target\": \"pFJxA6EP5BLy+6YQ9ZTIaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3CAi1BHCJ4F6GOSyN9ndaA\", \"target\": \"vtRcGf0ox/w9MXmiOqN8qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+CMr8Kod/3DtGz10hUou1w\", \"target\": \"3CAi1BHCJ4F6GOSyN9ndaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UikPyTd+/Ke0c929axUssQ\", \"target\": \"XvFXpKAybOJaTrHjTz/raA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TbsMX0lpn0ca3Jbu0oDj6Q\", \"target\": \"XvFXpKAybOJaTrHjTz/raA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8kqbzDvYbTAr7mFfFJfxaA\", \"target\": \"lojx+gIGkFIte9+XWtSjhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cNenZQZhgXXSMyomN525A\", \"target\": \"8kqbzDvYbTAr7mFfFJfxaA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8kqbzDvYbTAr7mFfFJfxaA\", \"target\": \"wXuMAPhfrJpUDgsV2ojS7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0yNF6u5zyDfG/4h5/Uz0aA\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Mmtn4en3D2UNWbeME8UmA\", \"target\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"target\": \"HZQlAg8cz/q0rps2qUxTmQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WZO2jjMqEHtvBBYv4mK8A\", \"target\": \"DUr4X9Dd3Yw1TKmF0wT6aA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7464ADYEqh2JXvYPcQ9YmA\", \"target\": \"T34SlORyNdAitBu1jVAVaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+NijVvh9cRhrJcDfe+sxg\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BXpeYYaO1qQF8B0NEv4r3w\", \"target\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NOgXNpFsliy0bzyuE6EfaQ\", \"target\": \"m6ZpojGcm6og1aNvWaJL/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EpfkuD4XamCx7taDA1QtaQ\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EpfkuD4XamCx7taDA1QtaQ\", \"target\": \"Lg63ntVVe/szA2gZJ1zcww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"EpfkuD4XamCx7taDA1QtaQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NIgmiC1e5egjTL/hoRRzaQ\", \"target\": \"tNJL9Wj9xM3IyYmtsaGaqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NIgmiC1e5egjTL/hoRRzaQ\", \"target\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LR0o1Gp5Q/56VArLa5GfaQ\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ENvW+sJ6QytVUMPBHRsybw\", \"target\": \"MP2QXYF3sENxb7Uc+MG2aQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MP2QXYF3sENxb7Uc+MG2aQ\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HanEWAQVvp92czeWbS1z1g\", \"target\": \"MP2QXYF3sENxb7Uc+MG2aQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZTZGPr12qhPT39K3XPATcQ\", \"target\": \"u8wMRBA97dXpAFjbPoTBaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"oaZRRjQzjqiXM8H0BFXs/g\", \"target\": \"u8wMRBA97dXpAFjbPoTBaQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OybZPZewW/5uo77pf5EOag\", \"target\": \"gbLXXnl675hHRZYXyW0pzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OybZPZewW/5uo77pf5EOag\", \"target\": \"b8fpnzCB7pOsbIrJNam9zg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"4GJpnaHGtLQaFFP0ev8oag\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"MuG/pOvxWpq41fkfo/RhnA\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hauBoMkrAw7jNahaRNgApA\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r1iREzOib40Fq3xYyqDR0A\", \"target\": \"vaGjZfTrhaqBV96NI8ZAag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGqG5c/VWKGwOacxedtJag\", \"target\": \"UvwgWrEVRAhIKi90bruZqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AGqG5c/VWKGwOacxedtJag\", \"target\": \"WbIwPdpoyybcirBTSc677g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"InCEqoKCHEMy7JVnqgiDag\", \"target\": \"w6OquymSybB4rOzCfnsmwA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"i1FG2HVaFaWVKq8Gmr+Fag\", \"target\": \"jr/tmb8gfujXSG5D58/n2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7RXVddCVGk1aSOf5BMkg6g\", \"target\": \"FaeXygmksygb2560fsqvag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XkYOl3ks1X2aSgiy+kcncg\", \"target\": \"t//zurDsECjhkSF+dDy3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"t//zurDsECjhkSF+dDy3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfL6ulaZMR+EipbGh9u3ag\", \"target\": \"L49IPcN2EYZ4HFO7oiofbg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CfL6ulaZMR+EipbGh9u3ag\", \"target\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CfL6ulaZMR+EipbGh9u3ag\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W08SC5+MMRtUmoI8eb8p8Q\", \"target\": \"qMV0wqJZhGOHoZqSaUvaag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MJMUTT4JMMSyMzSkOKjr+A\", \"target\": \"qMV0wqJZhGOHoZqSaUvaag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4VZ10HmA8GdBbgDi2qppdw\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O1RVC+p7aPV8bOsQ6e7fmQ\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"scx4zJSDGqh6BG0zTMf3ag\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0dPQX4HZuIcEoHZnu61i2Q\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SU/6PQhlsHPBRc4pxcQR6w\", \"target\": \"scx4zJSDGqh6BG0zTMf3ag\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SdLACOA5NHzMq25kxSWf1g\", \"target\": \"gsc5I5v27i46ZSFXLzgsaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gsc5I5v27i46ZSFXLzgsaw\", \"target\": \"pQboYj1uZMjFOkzVaqCR/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XBVUEkaFxyRusIcv+usuaw\", \"target\": \"stm5O3lA7Tm784XxpVddlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/hoM3x9QDTrZMypNwFxFuA\", \"target\": \"XBVUEkaFxyRusIcv+usuaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1jKoWPtNZuyTySc8hwFBig\", \"target\": \"LLqUTf2C7DiwEPqO9IAzaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"target\": \"wtljH1bOIKRg3l1tzqq9dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NyPKUTLm1jwUANNoIQoIqA\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IOl829hIWWsSYYNSeFTw/w\", \"target\": \"hyPvCBbOFv+5NE6yWVE/aw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kp/uA317xD3ySXD3jBdRaw\", \"target\": \"N9riAVATY34jHBt90TQZrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8FaU6NkPlqE9UM1z6SSa7w\", \"target\": \"Kp/uA317xD3ySXD3jBdRaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6fa0BGC1aByXuIyb1BZZaw\", \"target\": \"TaIDJ7W1q1QH0q5C5igLsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6fa0BGC1aByXuIyb1BZZaw\", \"target\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6fa0BGC1aByXuIyb1BZZaw\", \"target\": \"H0zZceW5WCpd+LBiEJSR/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"DLTeNonoRsfy6pTZgfM80g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+lVxYLjIFO+Ycwih/VOi2Q\", \"target\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"iiHdIj3dYCnLmrkXpUxV3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"S0cvWu7kth8Hv99QFfiW4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"D9pzXh+m3X+Q11g+VAoQ6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1PEOSb2TBTMGMiYjdZK2aw\", \"target\": \"xbWKQYE6mafD8ye2m0H89Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Jk8W0OQRDbN2UwPVWg3nw\", \"target\": \"nl3iba56oz4+Ct7sc/zDaw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"nl3iba56oz4+Ct7sc/zDaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nl3iba56oz4+Ct7sc/zDaw\", \"target\": \"w159VscyStCfuNPVMuBj8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j2myGcumhmoz/9p4EAE2bg\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EyFl/rmMefeFDR3ZPbq9eQ\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"target\": \"ylU7OoOB+lTyYkp2CvNrrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AzjFuM06Mlh2IO2j5mHRww\", \"target\": \"sqqi1xhWXx4zcDMSSSnHaw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CwpEQuIi8zSScd15Vffgaw\", \"target\": \"qh37fflxH4crnFBSNG1ffA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"K53b7HORgyhLUuQ9WN0kbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"w2jFy/pE8Fy943fFYEonbA\", \"target\": \"zW9OFngqkdFLKaWtIXKwbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WMgcdy+BnPYK8Xma4/5A6g\", \"target\": \"w2jFy/pE8Fy943fFYEonbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DjoWz5wRHMv7J5CcM1FN8g\", \"target\": \"w2jFy/pE8Fy943fFYEonbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EKGxuN6zNqEuBdsNTTQ2bA\", \"target\": \"H+wkAyPI5bSb8Bb+y88Lqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BqRKgn0/xYzfcP4hJf0j6A\", \"target\": \"EKGxuN6zNqEuBdsNTTQ2bA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"ZT9+HaQ7EKCU9tgMRIiOJg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BbkarsI6ax7N0cDQt6BIbA\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"SVHlmn1r2bsNbwqdYmNdiA\", \"target\": \"opm/9DV54pobtdoC3kNUbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7LoXRQyN/WUR4uMbgJgsiQ\", \"target\": \"opm/9DV54pobtdoC3kNUbA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J3IwN77QI+uhaJkmHUl9rA\", \"target\": \"opm/9DV54pobtdoC3kNUbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Inzja40kbY1hPZTZY4WlQ\", \"target\": \"DFjBfWb05mwJPNpOXP+ubA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"7waZWOlEZD3wAUOfyTK/bA\", \"target\": \"SzOCs7c2CI/xNi9n68tDgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7waZWOlEZD3wAUOfyTK/bA\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7waZWOlEZD3wAUOfyTK/bA\", \"target\": \"HxJ47i5/R/AOuO045E5Uow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U/zvXT/kZlfNPqv27Xa3yg\", \"target\": \"xqgM3rfoMtsn1TX/WLjvbA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BNzwQD1dzf4lnoWRJxD1bA\", \"target\": \"HA63TWBU2S0+FaXntjCnwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BNzwQD1dzf4lnoWRJxD1bA\", \"target\": \"jlP5eV/l50w203+qmY934Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8825VNagmfuRs5bexVc1bQ\", \"target\": \"q7GHrWPuuYSRoO8P6Qvfgg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"C7fozaTI9722tioX0G/1pQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"2d2hzbOfsjmEbK+aYDo/bQ\", \"target\": \"9u2HDSvX//SeuxXrnZqtyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"OyTztUYnRhTYYxoLBI9FbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M8PtUDh0BZnkoIFUB3PAzQ\", \"target\": \"PwyhAzA0omnIl03SygN+bQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+qwToh+fbgIAa8uOXduCbQ\", \"target\": \"R0VympemlR1IDHdJpudzlA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+qwToh+fbgIAa8uOXduCbQ\", \"target\": \"rZGX7tiTLIup6b1UOtdDoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"target\": \"rtQmcpROqcblEzxYvOdFiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/mnxJbBXFRoJm1t8b+jupA\", \"target\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"target\": \"hKdbfGbrvmmwC8+BbLia3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"Xlz0x8DwRxDmhPVIPBGTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZIy/WsAB3wJpL965LjmTbQ\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GjAof1RFrIHVKY/0zm3bxg\", \"target\": \"ZIy/WsAB3wJpL965LjmTbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jZp0wulp0qyqJdux+qWZbQ\", \"target\": \"ul28Dil0Q9FmcB3y/n13gQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"jZp0wulp0qyqJdux+qWZbQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jZp0wulp0qyqJdux+qWZbQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AfC+yExwuC/ENoHJ7zWxbQ\", \"target\": \"a1dPxbwXNfiONYdhIiQNhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1lNjFkPQft6RLWOT4nThsQ\", \"target\": \"AfC+yExwuC/ENoHJ7zWxbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AfC+yExwuC/ENoHJ7zWxbQ\", \"target\": \"lajlfjCT3uep6UXeChc2tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"U+s8M4MjVyG5NQ+x2WFzDA\", \"target\": \"vWcvRByQP51uOlZDbmbUbQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"v2ros2t94DbEEnUTjOnxHw\", \"target\": \"vWcvRByQP51uOlZDbmbUbQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TkBKnFxeFnG+2hBRM5TjbQ\", \"target\": \"xdPBng9vNQkVKMcV3dLUnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MLDh6bSGi6PSwySBAYEg6A\", \"target\": \"TkBKnFxeFnG+2hBRM5TjbQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AAdsS+Z6oVUTY7oLucX8bQ\", \"target\": \"ILLw32m9uRu0mMk194ka+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"RU7ImjsrRJsKlzFRmKjN3w\", \"target\": \"ldrAqDxNlz3Q/ph+om39bQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"OkpZWWmaKw6a1Opzusv4pg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"CsBrCPcDPAJEOxlYUpn/bQ\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L49IPcN2EYZ4HFO7oiofbg\", \"target\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L49IPcN2EYZ4HFO7oiofbg\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q9DbiBLOUlsRxS7bC1lH4w\", \"target\": \"Z1owg5XRBMZ+UZarVUEvbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HIvlvNgs59hiOwj2O06peA\", \"target\": \"j2myGcumhmoz/9p4EAE2bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EyFl/rmMefeFDR3ZPbq9eQ\", \"target\": \"j2myGcumhmoz/9p4EAE2bg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AzjFuM06Mlh2IO2j5mHRww\", \"target\": \"j2myGcumhmoz/9p4EAE2bg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"295KUQrNgS524KdPjhY2bg\", \"target\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"295KUQrNgS524KdPjhY2bg\", \"target\": \"nOXqrXnI0km8cLuIHTi4sA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"295KUQrNgS524KdPjhY2bg\", \"target\": \"JQF9x7q7foGGWrdOMznT3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H5iyKe8krA9s/HxZ4QqUsg\", \"target\": \"OK7AnboiWZ7PRgIMjmpHbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OK7AnboiWZ7PRgIMjmpHbg\", \"target\": \"hKruHz9YqELlEfdSiJ2BxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"target\": \"pgQHSJE9LdFJ4JX4uLFkbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1iE3IfSpcAwr1GJpuN1wbg\", \"target\": \"wph8PLZvlqygec2g0ZIIhg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1iE3IfSpcAwr1GJpuN1wbg\", \"target\": \"a4+4zao4O23gIPqZq/U2uQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O/m49NG+OSq7jZLZYq9E6g\", \"target\": \"dXQRUJXsvJSlmLomDmF3bg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"6rVzMgD/kufbnz2W3Qp6bg\", \"target\": \"b5xBGTs/P8P/y3nzl3AF5w\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"qObfBPdskZ/bdJxoI02JtA\", \"target\": \"vGKrdKXZtH3UV90EhYaebg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"/d5n79emA1gmv3Otf5+nfQ\", \"target\": \"d7hMwlTj5Ir1NfCOJZinbg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"d7hMwlTj5Ir1NfCOJZinbg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GigVNO8Fs+XEzbfNezzphA\", \"target\": \"d7hMwlTj5Ir1NfCOJZinbg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"qsZtcjv/Pr7Ps1rIbC+obg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+SvqYAQ7ewPmjmJjL0407A\", \"target\": \"wf9PwOKlrt0/GTUhJmPSbg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"ENvW+sJ6QytVUMPBHRsybw\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ENvW+sJ6QytVUMPBHRsybw\", \"target\": \"HanEWAQVvp92czeWbS1z1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KXmPvXyy4ZqMu2NJW680bw\", \"target\": \"kwhLDg0U+a3YNXYiod7Vxg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"coyiMRwZqLI5ZdJOoZeykw\", \"target\": \"u+59gZNV53zMJQVuIatFbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"txTXlRobNKgppIbcfQ7eng\", \"target\": \"u+59gZNV53zMJQVuIatFbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1K11RU9HVahHEfRalAKE+w\", \"target\": \"u+59gZNV53zMJQVuIatFbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D8DysmbmW6oUH3yRrTMK7g\", \"target\": \"RMQXn+wpC1BAUZ8mxJZebw\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"HMLHgWFAdRQ52AVLutxJsQ\", \"target\": \"HWZAYVBnOATRXMF9hCxmbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HWZAYVBnOATRXMF9hCxmbw\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A7DMC5xh2BOv+DzA5zFtbw\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A7DMC5xh2BOv+DzA5zFtbw\", \"target\": \"tNPQOgx1QK26mgnI8Z8woA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nuOysH+Mh2h6a7WWgG44wQ\", \"target\": \"s/iJc9+3ONWQha7FBfKMbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"s/iJc9+3ONWQha7FBfKMbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WMgcdy+BnPYK8Xma4/5A6g\", \"target\": \"zW9OFngqkdFLKaWtIXKwbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DjoWz5wRHMv7J5CcM1FN8g\", \"target\": \"zW9OFngqkdFLKaWtIXKwbw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"As5V4Gv3sXDtJd09xlVJcA\", \"target\": \"ibKgv6nUXTOjrleyRQKzbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"as1AvPNQ1U3vjyhWZXXbfw\", \"target\": \"ibKgv6nUXTOjrleyRQKzbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hNssRjdsVPWPIXeaQ55ogw\", \"target\": \"ibKgv6nUXTOjrleyRQKzbw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+eS3brz3jZWT+U9Z0Na78A\", \"target\": \"jDNhsvbjunwQKLmvhy38bw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"As5V4Gv3sXDtJd09xlVJcA\", \"target\": \"as1AvPNQ1U3vjyhWZXXbfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"As5V4Gv3sXDtJd09xlVJcA\", \"target\": \"hNssRjdsVPWPIXeaQ55ogw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"88NA5Yp9ZlnX1Wm69tZScA\", \"target\": \"JJueDA4IKbhbPiTTsHAMng\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"88NA5Yp9ZlnX1Wm69tZScA\", \"target\": \"J3IwN77QI+uhaJkmHUl9rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"88NA5Yp9ZlnX1Wm69tZScA\", \"target\": \"JdHgLTmCpdKriVMq73fU7Q\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"BiVTReLObVv0Xy0GZgK6vg\", \"target\": \"nT9sAxVshwusku821xJacA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"0RJgJMYTybpAEfPhQMBfcA\", \"target\": \"6sR9fgv8OAB5rOrZEqkQqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0RJgJMYTybpAEfPhQMBfcA\", \"target\": \"vxral90saOW+72B9xdDaxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VwYIikUAhpUNQ87/LkyMjQ\", \"target\": \"Y+G3nXp82AZ2n2QjEgtncA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Y+G3nXp82AZ2n2QjEgtncA\", \"target\": \"pw1Urc5iVfS4y0uLi0eh1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y+G3nXp82AZ2n2QjEgtncA\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVDkPmeCBusht6HcouaOcA\", \"target\": \"Kii3w+OpNXvyJU7mN5vIeA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FVDkPmeCBusht6HcouaOcA\", \"target\": \"OuGpotqT00tF+qVPIIKGsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANKXuYblah5Sw/0h5ImguA\", \"target\": \"g/R1uTvqZfKj5drIlOC1cA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g/R1uTvqZfKj5drIlOC1cA\", \"target\": \"jU2QIPHqLFIT2TilhstV4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Bk5yEVdT2xlTxi/P+2TucA\", \"target\": \"aobPH6KJJmtGIvnX9Mes2Q\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"LRvRi7afvuVDGY7sRVUrvQ\", \"target\": \"tfw90wbD4QM/PpDbMLj6cA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KpuI9ZyZiW/bVAiiQ+AScQ\", \"target\": \"uavpFtRH+63SmDObMUHmlA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"ZTZGPr12qhPT39K3XPATcQ\", \"target\": \"oaZRRjQzjqiXM8H0BFXs/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mweUiILAkdAuuG85MxZPrg\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M+OEVS8+0HCG1kjM26aRsw\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UOJIpTijHzZsoiQk7xwzxQ\", \"target\": \"vLCqCMMOYK7bZQa0iDw1cQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IIyzz7785kpQU9iuynoZfQ\", \"target\": \"rc9cGHeo4/6jfGrrxTE3cQ\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"eJr98/w3TNjFYYEosmJmlw\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"R2NZRIws+qXh4yWI4/Iayg\", \"target\": \"jhsBQMeLZl7h/WCH+CBTcQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"klquQJ0Jl9OUmVEJRbqZcQ\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UH5IsiL9uFI65JlQVZqCpg\", \"target\": \"klquQJ0Jl9OUmVEJRbqZcQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UInmirHyfIxrNstUKFfycQ\", \"target\": \"f1/jPqUJ3XpKbRc+ulYwww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UInmirHyfIxrNstUKFfycQ\", \"target\": \"lEBrmAcP30d64NYUuN1gyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S0ly3S1BjPwd+7c5UZob/Q\", \"target\": \"UInmirHyfIxrNstUKFfycQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"YyQl1eJdobquxuw0oBQZeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"IMy6N7C+hCRMkf7TI+/alg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"C3i2f3Tc4fbceLtEVoj8cQ\", \"target\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"0QxdZHIr10eUjJDIe0wOcg\", \"target\": \"pdr20bR379SCSQrEwtRfcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0QxdZHIr10eUjJDIe0wOcg\", \"target\": \"BmpnjQD2BpL61dVZceomzA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0QxdZHIr10eUjJDIe0wOcg\", \"target\": \"gn2FcY9/SrQeM6Fz2Rlu1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KvjMCetZz2V1Zmw8U58vnA\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qlJAbL1oAT+FwtNvVKFspA\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M68E+IUZic0BSnt35ytjsQ\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PXiKkcZA6z5z6mJS/wWizw\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gB2Nx5Ypjd0LXJEVbjiV8Q\", \"target\": \"vb3iPzp4Mxw4ldK8eS8fcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"XkYOl3ks1X2aSgiy+kcncg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"wQSV256APV//sMgwNlozcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CZUI2rMtgbqzvrBv4i+mnQ\", \"target\": \"wQSV256APV//sMgwNlozcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"wQSV256APV//sMgwNlozcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"q+Kqu3d3s3abK4QbQdM2cg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AF7PlX/ZzcbqbqppKNmq+g\", \"target\": \"q+Kqu3d3s3abK4QbQdM2cg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BmpnjQD2BpL61dVZceomzA\", \"target\": \"pdr20bR379SCSQrEwtRfcg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gn2FcY9/SrQeM6Fz2Rlu1Q\", \"target\": \"pdr20bR379SCSQrEwtRfcg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EZCqsbBxog066gDQ9no/nQ\", \"target\": \"fvLIVlHEmcDCxxbt9TS0cg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"7h9Fg1B195k0e5jbUGH+cg\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2a+0fWSXMHaZ2Hov9wcXcw\", \"target\": \"E5A0lMr/AClmZHz1S2qRtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"target\": \"rDXjhpwwH1xRUqGN59Ikcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IKaWUv1v0QppVoq3jDu4xw\", \"target\": \"rDXjhpwwH1xRUqGN59Ikcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bDdU/0byIvyGkNcVnGcpcw\", \"target\": \"dX/TaBHa6EarDLBexxa0rg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bDI9Og953C9gM6mQqrsd2A\", \"target\": \"bDdU/0byIvyGkNcVnGcpcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RXvDBU82q16Pw9nStf8zcw\", \"target\": \"jOEsAhonxltEPvV5C/3u0A\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"2fLiXD3Oi+ti5kp4tkA5cw\", \"target\": \"ooA+ANlPZHsTTGT2ER+g9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"H8DT+1a16Vl5KIs2uBGBcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"4iidBzFOnffMhDtuDP6vcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4iidBzFOnffMhDtuDP6vcw\", \"target\": \"xmCrALNj7UEjOj1fRMfp6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"GFLSiVWZGF82QrEToTu6cw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"72DKQaPaO96hRQn8R8y7cw\", \"target\": \"EOUXKxeOsabsew6mhTtFnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"72DKQaPaO96hRQn8R8y7cw\", \"target\": \"DXapr/UUm27Eyi8aPwWmtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"72DKQaPaO96hRQn8R8y7cw\", \"target\": \"7jyOu3xNAXh9K/BlvEEH+g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IvZE7F6iOLbqCW9HzCN7ow\", \"target\": \"oU7VQtJtQKoDumxH+arzcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Zitss1YyKE3+SZddwmmpQ\", \"target\": \"oU7VQtJtQKoDumxH+arzcw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"H07w+dzMUBY1Tb8aYnul6g\", \"target\": \"oU7VQtJtQKoDumxH+arzcw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"heu1DWdPZrJDexWytU/+cw\", \"target\": \"hmL/3oVWDDWUMvAK5nRkyw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"HkyJqonOnWVZWmP5+cUodA\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"nOP4S0nytASLUL4bvWE0dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"nOP4S0nytASLUL4bvWE0dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"target\": \"nOP4S0nytASLUL4bvWE0dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nOP4S0nytASLUL4bvWE0dA\", \"target\": \"p3hHahidj29YCDuFAGKz9g\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"WcjDyJCvaIKJKcpprPVPzQ\", \"target\": \"hJkECJ2HLr0UQKVZy7OAdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"VtkRrPYhEQerNJ9qrGuGdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"VtkRrPYhEQerNJ9qrGuGdA\", \"target\": \"XM0o8pv01Pfg5sFKZWng7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VtkRrPYhEQerNJ9qrGuGdA\", \"target\": \"idWTK0b8n3wVMKQEAfsV7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"target\": \"vnyniFSktkOEVu5IMtWNdA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QZ213ed+FC+L24Iot9ZepA\", \"target\": \"zEUlGrpc2A8953RQVcuadA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LSmb834QdrGseWhJgOqB3A\", \"target\": \"zEUlGrpc2A8953RQVcuadA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9RMeAtKVYJRuO+o0RzSsdA\", \"target\": \"cbMQ/mrbiirmV3vrCBzVew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9RMeAtKVYJRuO+o0RzSsdA\", \"target\": \"Hun8mOh7jntBJ/XZPgESuA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9RMeAtKVYJRuO+o0RzSsdA\", \"target\": \"ZfGEvBA0I2qr5e3lQr9r3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"43LU6BgGpBXwOzgEUBR5gA\", \"target\": \"kp36vTNmEWarycaRrpDadA\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"Z9dCRzGkhMPsUVW2ZxiKmA\", \"target\": \"cdtm284VM0XW/UkAuEnudA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R/bp+9HeU+cWRe6WcBIyuQ\", \"target\": \"Skc+Mdjm58tEJezDmDP8dA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhnulpEPg5r8judUu1mQ0w\", \"target\": \"Skc+Mdjm58tEJezDmDP8dA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Skc+Mdjm58tEJezDmDP8dA\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H51lkjTGo0qqwQ7sEroFdQ\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3+LDwxMue3XlbersVpJYdQ\", \"target\": \"mPxvKKa8/IHMUITnO0yOiw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"FbZPBgWRbURp0aLL0Ad4dQ\", \"target\": \"KnQ1veuKdeMziZDzLYjmxA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FbZPBgWRbURp0aLL0Ad4dQ\", \"target\": \"oqa1czMKG9P74MWoG5iYyw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7+546eOPGtXQD4e1DDKtkA\", \"target\": \"up9psA1MqaBe3U64WLyMdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pQPJ271k9bUoMV49g6IUhw\", \"target\": \"wUJVdpgD0n69bX8KbhSmdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"wUJVdpgD0n69bX8KbhSmdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mEZ6ATXL3dtFAQpxVo1GnQ\", \"target\": \"wUJVdpgD0n69bX8KbhSmdQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HQ5PLb8USOfOCBh65VitdQ\", \"target\": \"gX5Pg2JVF4BoVkEjHysF7Q\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"v+ezx4sOZJKr7IIWcKfGdQ\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"TtIAgvnQmh/5T/BJWJrIpg\", \"target\": \"pTUiejm1wpNhKBFOzILidQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"pTUiejm1wpNhKBFOzILidQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"xj4TkhnOXAJQcnNkii8Hdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"target\": \"xj4TkhnOXAJQcnNkii8Hdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Nxf6Dl2TY1lZ+tAbB1jI0w\", \"target\": \"xj4TkhnOXAJQcnNkii8Hdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MsJMsnfAPOMulh3NVLhMgQ\", \"target\": \"xdb7EalTUhFl41uzMWYMdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OkkGhjLgMjJNiAwrkAWG0Q\", \"target\": \"xdb7EalTUhFl41uzMWYMdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M28X/3X9XhtMKEhs+6oP2g\", \"target\": \"koIW9iwU5uZe/6B7Rj8bdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Df0dOb7XVmqj7vlzc20y4A\", \"target\": \"koIW9iwU5uZe/6B7Rj8bdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D0PcKw6Dd0cPukvB5boldg\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"W9820uGVNNrihcyqAVBEdg\", \"target\": \"ofSL6fj3xO5/y83Iczo74g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7K8cFM5yp8Sw9JTNMhxteQ\", \"target\": \"n6dIyXbT6o6OBFNHTaJkdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iMlV9a1op1gNksg4eI2LqA\", \"target\": \"n6dIyXbT6o6OBFNHTaJkdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EARZoqhcKM63G99flR3A0A\", \"target\": \"n6dIyXbT6o6OBFNHTaJkdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"efFeB1sBxrXang8mpgSWdg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"efFeB1sBxrXang8mpgSWdg\", \"target\": \"hM8yiIQ7+esJXnbg0aGGfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"hM8yiIQ7+esJXnbg0aGGfA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1ZSXt9jbtVvWUxZ8Cm+kdg\", \"target\": \"pP36UZKw6kXrWeW9WIf6hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"rv9CCzm9yv3/yk7JavW0dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"wtljH1bOIKRg3l1tzqq9dg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E1+WI9OuYxMGF9bKHnDWdg\", \"target\": \"Pp3qG3oSNALuUCiYsoPszA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kD0Flo+4T5a+cZgS2c3wdg\", \"target\": \"wvKwvzhvGsDMWXfZrSC8yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b0c1d26mJFr1jSCe2avt1A\", \"target\": \"kD0Flo+4T5a+cZgS2c3wdg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9Qxb7XcFglFwNdMpk/iung\", \"target\": \"qIj/x2KLaVJKHUV1/qf0dg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"2oENxDAeO3msBRvThWGNaQ\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WfCuGqTioXh9WvVwOoX3dg\", \"target\": \"pP36UZKw6kXrWeW9WIf6hg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AC/zkftBMezqxbBtqK7W1Q\", \"target\": \"WfCuGqTioXh9WvVwOoX3dg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"target\": \"m+eJkUkV2waU1kg+shQUdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tRJwNHh9csMWQV2GvAFjdw\", \"target\": \"vtWfeIoNdt2OYL/M/Cg5qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xyt8E9Vly0yzp9vAum9d2Q\", \"target\": \"tRJwNHh9csMWQV2GvAFjdw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4VZ10HmA8GdBbgDi2qppdw\", \"target\": \"O1RVC+p7aPV8bOsQ6e7fmQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4VZ10HmA8GdBbgDi2qppdw\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DiTNRzvHxe9KujjLA7t6dw\", \"target\": \"hvsaBnv2e212vOtI9S2HwQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E0dFImBZ43XFNFgdbt+udw\", \"target\": \"EsqC+pAWQuGuXqcn4jiHtA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"loqw1+ffTyBWBziom2HExg\", \"target\": \"neUebpMrrYX3e5BjAvyzdw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"okyPJsnutK0dtiCAaMf5dw\", \"target\": \"raakfeUY5abYonuzW1G1gw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"/wQHIKlt0DWBWTIC94i1yw\", \"target\": \"6qLyFjJCSb5H4btWpQA2eA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6qLyFjJCSb5H4btWpQA2eA\", \"target\": \"VPe/WBhgMRDejNmchQGp8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6qLyFjJCSb5H4btWpQA2eA\", \"target\": \"U04BOACjO7txW+arJZbh/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"499FzlfKPXgh1Wu0DvB6eA\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"499FzlfKPXgh1Wu0DvB6eA\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"499FzlfKPXgh1Wu0DvB6eA\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pog8kgYwJacWPRhW1D2FeA\", \"target\": \"sBHxxv8TDcRka7cQD0Trnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pog8kgYwJacWPRhW1D2FeA\", \"target\": \"vDRBQBe5FIOF6UackNq59g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"00+hT3AJnNlMB1LEokJt+A\", \"target\": \"Pog8kgYwJacWPRhW1D2FeA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SZlsdfqqOK9cfUzLjo+PeA\", \"target\": \"UIT/M2z73PBRJtArUS6Z0A\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"C1sFWu3crVsj+1K+/+YOnQ\", \"target\": \"p4G/w3mNcdDVKXnZE6KmeA\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"9lplDmateBrR+nSpSFW2eA\", \"target\": \"ds30CGNRVqJEmviGG5Mqnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9lplDmateBrR+nSpSFW2eA\", \"target\": \"zhwkPccrVBCZlu4Vm/0dvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kii3w+OpNXvyJU7mN5vIeA\", \"target\": \"OuGpotqT00tF+qVPIIKGsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E44NS8+3z6vWzACYVC9pvw\", \"target\": \"ZZJDKMc/Vgqe1yTcnDfOeA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"96ej3oz+rX9j51QcdY4qYQ\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lkgw2dolfwaJQyooYYppfw\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I2xubWo3ds1VoHwxbTE8mA\", \"target\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"QBIN35QPRhWmSIUTJVMHeQ\", \"target\": \"WIaFpd9DG91pxpUvdtrAuA\", \"metadata\": {\"weight\": 47, \"hover\": 47}}, {\"source\": \"gKSpp6rNIVNrN6mTLjkJeQ\", \"target\": \"z+9dH9mOBGtV12klfo+Inw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gKSpp6rNIVNrN6mTLjkJeQ\", \"target\": \"w3l9D6GAOJ9N0Lh9dUhQsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gKSpp6rNIVNrN6mTLjkJeQ\", \"target\": \"wJdydwMBpGIslyVgQAeX/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Fk9ODZxwazvx3GbYrh77tA\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eKr9JVEDRy/wrfqS0kXGug\", \"target\": \"jT41S00SsjFOo6Y4qaYaeQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7K8cFM5yp8Sw9JTNMhxteQ\", \"target\": \"iMlV9a1op1gNksg4eI2LqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7K8cFM5yp8Sw9JTNMhxteQ\", \"target\": \"EARZoqhcKM63G99flR3A0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kupGrdK+N6ZXbgVOCJGI6A\", \"target\": \"wxurhkLtKTUYBM/ptT12eQ\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"CLSpACpTt/VOa/AJlK2HeQ\", \"target\": \"RdxNld8Jy3rGVLi1TUSehg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CLSpACpTt/VOa/AJlK2HeQ\", \"target\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JHN1RRKwapnUWKCl3tIioQ\", \"target\": \"f+E8VIalbsW65FQq5Z+peQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ymZAIf0E6zclGzrp8HZOkA\", \"target\": \"z9SQ8Yfw19I4E86iEKyweQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P/7py6K8bExzhGEq33Cz+w\", \"target\": \"z9SQ8Yfw19I4E86iEKyweQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AzjFuM06Mlh2IO2j5mHRww\", \"target\": \"EyFl/rmMefeFDR3ZPbq9eQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4KZxx1hXO+Ed7jMGA0XGeQ\", \"target\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"GrIMPukpxNchu/p5HFfdsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2/lkZHTivYSEytZl2ubteQ\", \"target\": \"AF7PlX/ZzcbqbqppKNmq+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NRnlOwVe+amgRrIlq5b9eQ\", \"target\": \"lu/KWGLuVxFjTOsFrAK1lQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"IMy6N7C+hCRMkf7TI+/alg\", \"target\": \"YyQl1eJdobquxuw0oBQZeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7P2CnvCzpPTOvj19qNgoeg\", \"target\": \"wm0P02CMDxZMbW0FmLdvkA\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"EmDKU/Z/uCBSXOGi++/1jw\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cq4YPHqoBPScATaVsSLepA\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"k8C+/RAYosn3Aj3IE4M0eg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ECrXW4TwKkiq0yhDSQsg1A\", \"target\": \"osRoK7EJhp/uYrUewqNieg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iZG0kK83mAwI7l40kRt+/w\", \"target\": \"osRoK7EJhp/uYrUewqNieg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"yJIJ7wkgqGm/P0x11wpmeg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"yJIJ7wkgqGm/P0x11wpmeg\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1cFc0SNcjc0CTgGlR8iCeg\", \"target\": \"ZtDbhNjj6nHmZgeG3NXffA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"85AtVP7rVmeJpWphnOyLeg\", \"target\": \"R1mcTef8YzRX3Syfonbctw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"85AtVP7rVmeJpWphnOyLeg\", \"target\": \"jjUjCBpwp2t9aL7mqYzByA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"85AtVP7rVmeJpWphnOyLeg\", \"target\": \"VDofsUx8MXnX74THtK8+1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MN7xyy9w1gl/dMjSgcew9A\", \"target\": \"wnGOX2Ohd0MS41aad4+jeg\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"6lApIV2MCrZkWFZZJf/rlw\", \"target\": \"AiBoaQxP8X4ZGTH7DL/geg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AiBoaQxP8X4ZGTH7DL/geg\", \"target\": \"ifErMyAVjoUcEphHINV83g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"foEOhXqE/MBXNZlfAAZmmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NXaF4wgnso10h1wD9sQQew\", \"target\": \"NqodyajY7zmF5d3Dvz7o+g\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"vb55pYg/AOTWKfMFbVM7ew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sa3pdyOhhVraK3JVehnezw\", \"target\": \"vb55pYg/AOTWKfMFbVM7ew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rx7rNseK4tgtTGeyt8759w\", \"target\": \"tMYQJ9GjNmp4dSHdunw7ew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FYbzAow8vzQx9kBhUKjEBg\", \"target\": \"st4pZAhzBQKvT58+t+JCew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BOc1xHBOTdSOq7ejXwNe9w\", \"target\": \"st4pZAhzBQKvT58+t+JCew\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"191Ea/Jawze72ts2Yv9mew\", \"target\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"0+rvvOXJDQjr7VAdZsx7ew\", \"target\": \"EPqSyzWGXSd1L8fp3h/Uow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0+rvvOXJDQjr7VAdZsx7ew\", \"target\": \"9kcQWmhhEp5EveGkbaTs5w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zyhG4nujadKknUVwouJew\", \"target\": \"6PmG+WOw26Drh15tZVs1fA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zyhG4nujadKknUVwouJew\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1dO0VYT01GcVIwHyIyaOew\", \"target\": \"vWvb8EkPpgQ/qY160Axdig\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"CrXNrrAB8QyAfPxNLYKG5A\", \"target\": \"XJcqpIcy69YD5Aees5ecew\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"ca50n8gu7GeZJp8RRhk0fQ\", \"target\": \"oxHMD6A4LMydU8u3KxvNew\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"csgs7Ozxjop4sTVUvthD3A\", \"target\": \"oxHMD6A4LMydU8u3KxvNew\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"53NfwwUwa8dZBEjNAOYzgQ\", \"target\": \"itkq/JLDZHb1t8KZDUjOew\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"TmqXuZAq3jcxGFGloddE2A\", \"target\": \"itkq/JLDZHb1t8KZDUjOew\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"JS6lrSB32ihzfJ1UR7xw4w\", \"target\": \"itkq/JLDZHb1t8KZDUjOew\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"Hun8mOh7jntBJ/XZPgESuA\", \"target\": \"cbMQ/mrbiirmV3vrCBzVew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZfGEvBA0I2qr5e3lQr9r3A\", \"target\": \"cbMQ/mrbiirmV3vrCBzVew\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BMl2T4INigVgCJo/c67Yew\", \"target\": \"NtNWeCyveb2+3kcn+atfmw\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"OHRmMm9MoQrhWchvhvLgew\", \"target\": \"kzUAXz7bYWQC2//Px2au9w\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"Q67ZHpSIqakfoFzSXXiTpw\", \"target\": \"eg9iTlZdkaMzSWySu9YNfA\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"6PmG+WOw26Drh15tZVs1fA\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AOZ6RzZdEBiJwiF5Ba7v2Q\", \"target\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0UT4NffRLCfe0ltowmFefA\", \"target\": \"FqlSDenR1ixjbu54Vutxlg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0UT4NffRLCfe0ltowmFefA\", \"target\": \"UX3YXL0WCL6Q9XNHkwlVwg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0UT4NffRLCfe0ltowmFefA\", \"target\": \"qCdC3QwLjV6GYNuI6++H3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pa0w5caR90aooguYcb2JfA\", \"target\": \"pZ0Nmh73qFc71JEMfbUOrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Pa0w5caR90aooguYcb2JfA\", \"target\": \"nZemi4L/TnUeky0vAf+euw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Pa0w5caR90aooguYcb2JfA\", \"target\": \"QH5V8o2q1ky152gZ2ALSxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4JS9z+LuF7i6jaW2OUysfA\", \"target\": \"5gbSqQi7aHAiU/tNOC4hqQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LOSl8aE9nEoPZ/lS3NzlfA\", \"target\": \"MrbW31/GLJu0yonpmKadiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LOSl8aE9nEoPZ/lS3NzlfA\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2tErsV7PrIgWpryU+hSNmA\", \"target\": \"dQJc1MumJDhkpndnjaPvfA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dQJc1MumJDhkpndnjaPvfA\", \"target\": \"kUSjYI/KovDOP2WNmP3Ppg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3vO6fTiJWeBW8Ovt00gmfQ\", \"target\": \"7BPRKy4C5yefrrHo632x7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"T03vnlhpoiPKW+i4msNpfQ\", \"target\": \"YIoy52TlWKoMfszHJpo6xg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/d5n79emA1gmv3Otf5+nfQ\", \"target\": \"40znihu3LPMCNVYXPwxqfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/d5n79emA1gmv3Otf5+nfQ\", \"target\": \"GigVNO8Fs+XEzbfNezzphA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9+UpStn+i+Z+AhdJplnWfQ\", \"target\": \"TDK1xqHDYg2OvbepjbOXyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Wa79NCMryG4kb8KQd9T8ww\", \"target\": \"zSnw+wtmM+4SOAAYxPTifQ\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"j2Yua3a567JQqNUafYalpg\", \"target\": \"xrWu5aeUX9Np83JY2t36fQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hpWsF97VyPcb0sPpYMwZfg\", \"target\": \"oyFfCj3XEK2o5kEyMRZXug\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/+tEWbza2NMQ+0GqgeYlfg\", \"target\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/+tEWbza2NMQ+0GqgeYlfg\", \"target\": \"YSeBLUEND64U5fx2jVt88w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mm96JWwrURGUG7NvDFmFlw\", \"target\": \"XmgJm7ulMhmz4WN52CFLfg\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"yZj53swFyts7fWbyvsPafg\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"GigVNO8Fs+XEzbfNezzphA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"40znihu3LPMCNVYXPwxqfg\", \"target\": \"5xwY0szZnsiqQTwCAlnatQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"G5Uzi+Wb4tL6BY/O1Xt6fg\", \"target\": \"o98+gH/a/qF/Ai20CAdfwQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"BqVAoi3vwE1iMVUXAiWGfg\", \"target\": \"RzobwgLknSJL7QUthZojvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0mApAkzVCbCD0Bj419HRwQ\", \"target\": \"BqVAoi3vwE1iMVUXAiWGfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"r2Exk8lJPGlgrhGDuXbItA\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7DJ1W9saIcI9kuHgRJb9ww\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QnZalRKtW4dpzpj2+KDzyw\", \"target\": \"vpHUCpSg+ZkJ7DgCJ4ePfg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"CdBQ4Oo4C+AcTcnfb21i7Q\", \"target\": \"N43YIvZdED2amMBcfCuvfg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/6AIdDDUcu7WAdktrPjYfg\", \"target\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"TE99G0bOzaXtmR4Giu5BpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"sg8bvnXSB8YcDFZaIVK+vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"qKdc7yaOfDNQ3Ioddlqw4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"Yxer1BQHw8ayI4coIJWc7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DUG1RSltevasAkSeJQrffg\", \"target\": \"X+JG0+UOYlsa2OzMINsA9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Z9n/kmsyq52cF3jYG9nZwQ\", \"target\": \"o2CKozplhIEEwPMwuJwHfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5RDTYztzVBjOOGuLnfYJfw\", \"target\": \"VYKTf58Y/3PKyKyODXVDnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5RDTYztzVBjOOGuLnfYJfw\", \"target\": \"7Puebud1EKEQH/Hg9h7hqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"jmHEm9bw2NfaqUmujDITAw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9TKJBcJAUWfrnzzw+DnBwA\", \"target\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"zHfkNAUOGIbuOJss094Syg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"kx3qpS4wFrfj4AUSvD273g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"target\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"9V9YsR5v4buQUr0rs0XJ5Q\", \"target\": \"Mv/Oa4soOpXSvQQaWX1bfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ev9lGJvuC87K+6RDWUCSlQ\", \"target\": \"xOvTZEopT/cbeclaxyRyfw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DzAacUBELnXef51TNOgh/g\", \"target\": \"Z40sY+dpymk2VZt++4Odfw\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"S5qMzFe0Ze5xFvVuhWerfw\", \"target\": \"eI+GLSSPGpM0YzAynKwBiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8E4XB9kLowELIYjeWrbT9g\", \"target\": \"S5qMzFe0Ze5xFvVuhWerfw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S5qMzFe0Ze5xFvVuhWerfw\", \"target\": \"TeLYnQ4sMDKjTiO/ulKS/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"09toO23JoZDM1eQNPC65fw\", \"target\": \"ORrKkkolP4HTZZkv84pXlg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"as1AvPNQ1U3vjyhWZXXbfw\", \"target\": \"hNssRjdsVPWPIXeaQ55ogw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ABNMMdHuqvyWm6YJkjwegA\", \"target\": \"LvyOqWz4vSyOBqiyi115/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"oRE0AvTcLVRIeRdSc98jgA\", \"target\": \"y+bS1hJzb7DfBIsDLnbkjw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"Snf67yCbEURPNP44X86EnA\", \"target\": \"mf/sQ2DSs0ULStqjM3UzgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SzOCs7c2CI/xNi9n68tDgA\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HxJ47i5/R/AOuO045E5Uow\", \"target\": \"SzOCs7c2CI/xNi9n68tDgA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"w/1S2jjYrh+t4IF1b9hDkw\", \"target\": \"xJiz3I1kHzo5E+2oylh5gA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NjVhdiC4UmNJkZgJOcpn6w\", \"target\": \"xJiz3I1kHzo5E+2oylh5gA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6RqXWDqyVqOwgmmmqWtA/Q\", \"target\": \"ZWpyM5rMePFwPpv5CF6JgA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KWWMpirq65RWiugWtSapgA\", \"target\": \"lL2Pcacb0dpYNhoRRP2kxA\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"6/iAnL6duYjqsI6xQ8y1gA\", \"target\": \"difYUkvCfs1qtJHSw4xdlQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"6/iAnL6duYjqsI6xQ8y1gA\", \"target\": \"xU481WCGtb6/SRex5nLP/w\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"PT8VvCe2+xblFYSQtULWkw\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IUCSc8JrpOX9siFlq4kTmw\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I7yLN7s/WeYO56T867I33w\", \"target\": \"SFY3Ky0iR7dV6QrHD34ggQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MsJMsnfAPOMulh3NVLhMgQ\", \"target\": \"OkkGhjLgMjJNiAwrkAWG0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2FUWUn57d9WkTiJeBNJWgQ\", \"target\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2FUWUn57d9WkTiJeBNJWgQ\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3GtPhtMHl5X4mu4HSukWhQ\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Dd7eefikHh3XghSL4DEArw\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O4Kq1VZwa577rE7s8Hg7yw\", \"target\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hZDdVGpM32AGBnhx8b1lgQ\", \"target\": \"x6k18KHyhLwDGjL9tJ1o8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"ul28Dil0Q9FmcB3y/n13gQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ul28Dil0Q9FmcB3y/n13gQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9xlQC1cVGGA060Zj7md5gQ\", \"target\": \"i1pSrAwriMYqECKfr6rHqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9xlQC1cVGGA060Zj7md5gQ\", \"target\": \"Nhtm09YjxapjrWGAhjE88w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KB7edPf4DYwXNqs6bTZ+gQ\", \"target\": \"wZ45Zz2j32LbhWQfJBEbug\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"CDlP7HSYXLmFaiyN5IqYgQ\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CDlP7HSYXLmFaiyN5IqYgQ\", \"target\": \"LTaDkNz2mZP7yiaR9otroQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XRXBu87tOvpos1ClJ6ajgQ\", \"target\": \"qiADwYywQwryVlnMOEJtiQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iQM2EjFgUk/83dUXxYq3lA\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cCAe70sXGQWYb/OuJM5A0Q\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"j0LG2TBfq7KBMfdREM9O/Q\", \"target\": \"sRWsct1emvL0oeoGMbmogQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kZJvIqFrqBfAlh05aHf6gQ\", \"target\": \"wWOB65sUCgBZmtKzkj+zkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kZJvIqFrqBfAlh05aHf6gQ\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3pBelMFKaSd2kR58ooYagg\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3pBelMFKaSd2kR58ooYagg\", \"target\": \"PsuUNN4RIxQKVESQlo8kqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/mv1CYmTOO/we7OK54bu1A\", \"target\": \"3pBelMFKaSd2kR58ooYagg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OEXsyZle1VYYL8uWesEogg\", \"target\": \"xRIZCO6SRfXLOE0+vaXu8Q\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"yUoUSvScDsB2mWYtcrHuhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"ezkzW2wuFCumEZ/ag1Q4jA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"27Jts6i+ZslYObeJLVoygg\", \"target\": \"APTLNvOckRQErfs6WtWkjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DfJsJTOjR+NX+PmleFU+gg\", \"target\": \"Ri+0Jy7gEDnrphImzdan6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DfJsJTOjR+NX+PmleFU+gg\", \"target\": \"u2at6zf9OYlpg8Ts5KiK/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"eEG8U3fO2muTeIM7JCQChQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"jx/g1L2CPlipWbkZRdDfoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"Rjs/zx9VNy2E4O4zgmDipA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Tlrs/pYCh/l3xCFOlNOgg\", \"target\": \"ez0QStHl7M10wuzVy4Le/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"46aKlHUWbk6T7f6FIOuAgg\", \"target\": \"bDci8BIt+vso5WXBUfZPhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KlNDoIf7EQkwaCaUTuTr6g\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+vQfJbdbrfUr7z53avxu8A\", \"target\": \"odyKSpT9GgrtoCbYSPq6gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lvHT9cqSms7vkDUQasI/pw\", \"target\": \"pUettJS0B/38xCxmsnnjgg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/vCuxHcLbkZ1JpcEBDRrng\", \"target\": \"sG/dTTSTiFiKB3E24Q71gg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"sG/dTTSTiFiKB3E24Q71gg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"sG/dTTSTiFiKB3E24Q71gg\", \"target\": \"xcCz7UtKMNaCiBrVKD9kyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"MAk0Mt0s1sgQXxtIyhtorg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4dMxSfZ1tUlPl97TOccMgw\", \"target\": \"PX0uMM9zOfkfjyAq6RMg9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m4x3ssVqGyiYYK9y9OQqgw\", \"target\": \"pkVC7mSNtEwUuxi1LLrwhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MNVcFZjSVu0z0JmNCIKavg\", \"target\": \"m4x3ssVqGyiYYK9y9OQqgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ecY7ptJ6w2uSJ548yiw2g\", \"target\": \"m4x3ssVqGyiYYK9y9OQqgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JZ/SP3mwjV46p9S5v9Mwgw\", \"target\": \"tag4XqPZ1ovS8C2YXBc2iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"n4RzrfSaNuZhs0nJCUy93A\", \"target\": \"rbYbLjhTXolr8pqM9pVJgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MFadgRNeoJXgS6129bqinA\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PsuUNN4RIxQKVESQlo8kqw\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/mv1CYmTOO/we7OK54bu1A\", \"target\": \"tRTiUT2q7boLzf2OSBBKgw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tRTiUT2q7boLzf2OSBBKgw\", \"target\": \"uoq9y01xGOC/8QgrrSih6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SPnVEAItdFjPGaU3ufZSgw\", \"target\": \"oaRnYnhvO/FYGlQNqix0jQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SPnVEAItdFjPGaU3ufZSgw\", \"target\": \"xYqY6+nbtRNwS10J4bsI5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SPnVEAItdFjPGaU3ufZSgw\", \"target\": \"ghJksWt+/t2VYaCzm/Qs+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hNssRjdsVPWPIXeaQ55ogw\", \"target\": \"stZS7egMHVmBbshb4MJJxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hNssRjdsVPWPIXeaQ55ogw\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"+v4QPdKqrYzi44heM0Bfnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"Q4c13sv+X+/8COGPb4kfug\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"+SUT8HUDFF9VwUvjKqCggw\", \"target\": \"8GSDTYbw+zWL3W0uIt2tyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"cB4k/wvjlkEyABHiHtqigw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6W3ZK4Q6x6D3AFIqq66p5A\", \"target\": \"cB4k/wvjlkEyABHiHtqigw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Q/OMdobhpcAL8bNzgFA9A\", \"target\": \"gkzABWaToN7RXcv0rf/Ogw\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"fzbpoYXB7t3QDILutC3sgw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fzbpoYXB7t3QDILutC3sgw\", \"target\": \"jV2svVJMSyO+sjV8yHa59w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"813MKAEw6poYGq6K5JHtgw\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"813MKAEw6poYGq6K5JHtgw\", \"target\": \"o8icG02ljIVugMJm5yWV5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/a9HU16WypmlvPBzMlAP1A\", \"target\": \"BwE/g8Wgt3CdH7ApP+YShA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XHApgMrcyJKBXYHBHMgahA\", \"target\": \"dUP7AahGpOkDnORHDuEzrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XHApgMrcyJKBXYHBHMgahA\", \"target\": \"eRxPWjT//2+yUjJyJK+N7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"LlaVgzJQejxtWoYhKnBQhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LlaVgzJQejxtWoYhKnBQhA\", \"target\": \"MauRd73SPuaI/SsIA8Wh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GQFoIQ9wL/eZEy/wZDZehA\", \"target\": \"pvS7Yyc5fiUtVQLhhblzrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GQFoIQ9wL/eZEy/wZDZehA\", \"target\": \"luYw49ThXPmJHnnREMyJ3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4Z23zzva4euaLRBGl9VehA\", \"target\": \"pzrkk3XBurZ98mVCu1qMlA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"XIRrwR+1QmICAcgD/JfPrQ\", \"target\": \"icW9xFiUc3lytmLbrRx/hA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"qO5g9FMOF+kipT/dNQiJhA\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"9IKaNG5e1u1oNOlfHnEKDg\", \"target\": \"amTcXluqwFvvCKvAyPmXhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1c9qdGnhBhonltEFNBk+Vw\", \"target\": \"amTcXluqwFvvCKvAyPmXhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EADV6v6vusn6OhIrZeLLtA\", \"target\": \"J3mNS9kxe26Yi816SQSYhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3mNS9kxe26Yi816SQSYhA\", \"target\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"target\": \"yQjWDPTgU22NCJ+ors/lhA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3VKE9O3qoeFicDCMezlWxA\", \"target\": \"GigVNO8Fs+XEzbfNezzphA\", \"metadata\": {\"weight\": 15, \"hover\": 15}}, {\"source\": \"MNVcFZjSVu0z0JmNCIKavg\", \"target\": \"pkVC7mSNtEwUuxi1LLrwhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ecY7ptJ6w2uSJ548yiw2g\", \"target\": \"pkVC7mSNtEwUuxi1LLrwhA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1lNjFkPQft6RLWOT4nThsQ\", \"target\": \"a1dPxbwXNfiONYdhIiQNhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a1dPxbwXNfiONYdhIiQNhQ\", \"target\": \"lajlfjCT3uep6UXeChc2tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"s/k+WFHQ5W9aHWgEMM8XhQ\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"AgQzuVP3IkMn/Ov+dswguQ\", \"target\": \"HxdyC6c/hI78wBGO81UahQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"rEsQIeJFhjmEloI3VS1bhQ\", \"target\": \"tPGsf2lNyo/YwJKk//Xn6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"We/y8kKlzK1iY53AKV7n0w\", \"target\": \"ZOXH4sYXO8arQZZMzYldhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"34S4/qPUMbfIiVg4qPcv9Q\", \"target\": \"v6rEtj7X5ZMJKzcuXNJhhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m2zFkWR4ShPkpk94te9r/g\", \"target\": \"v6rEtj7X5ZMJKzcuXNJhhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/RiRhji19HANI2EN5WdnhQ\", \"target\": \"/VSjNgh6mEKfWVR2yolAmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/RiRhji19HANI2EN5WdnhQ\", \"target\": \"AAoMjjx0U7e1swPFxDgm1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ykn3g3QC0rQT10FGrwVuhQ\", \"target\": \"o5hJtnYCQOtp9KjOY9KKww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ek+y8Dv6MgaaKLo1u1FL4A\", \"target\": \"Ykn3g3QC0rQT10FGrwVuhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"target\": \"Ql8yEBGa1dW1kesET0c40g\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"Mxcr8MDLOsrUcNOZZAmDhQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"vujxY+ZC8FCpdhHZeh2YhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H2tvrSRDcqdQ6JvqtrIzsA\", \"target\": \"lDMw8TfqrCgHHpa7WOOYhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3OV376PlBaoLTaGgahvzzw\", \"target\": \"lDMw8TfqrCgHHpa7WOOYhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+cNenZQZhgXXSMyomN525A\", \"target\": \"lojx+gIGkFIte9+XWtSjhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lojx+gIGkFIte9+XWtSjhQ\", \"target\": \"wXuMAPhfrJpUDgsV2ojS7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pn48zoj9DvyN79bhDOnBlg\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9GK18/slEWXsvIbLQoRFpQ\", \"target\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cJ/Kh60Lwl2Y5mZRFzjJhQ\", \"target\": \"cfyIaZvA2RoXHpxUpLCevg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6Yh6K3qHkI0KgShV8S7RnA\", \"target\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"UJEqm8fIHoj/jzcSuPu0vA\", \"target\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"WFWWw2jQ8tZw5iRQSFNP8g\", \"target\": \"Xmq2gZjfpOmqc205fCPhhQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"a4+4zao4O23gIPqZq/U2uQ\", \"target\": \"wph8PLZvlqygec2g0ZIIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OedMXRR6GuunUdLE7Eirrw\", \"target\": \"xu7RHPhCjrChYtE9udUIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"92gCbscZjdcp5CNIO3Cd8Q\", \"target\": \"xu7RHPhCjrChYtE9udUIhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OKTk/onbe2oebWvf+eMKvQ\", \"target\": \"iweGkp1urOOrJF2VoRZNhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iweGkp1urOOrJF2VoRZNhg\", \"target\": \"mBGZFsgZHxC73vu9VcF0vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"7u2XSrqa0R2siPqtptBvhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Y2XOerDgiAo1WK6+LC/sQ\", \"target\": \"DOJ3OEl+wag5/2KgunNwhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9SJVLkajTeR4POfLrh2KvQ\", \"target\": \"DOJ3OEl+wag5/2KgunNwhg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RdxNld8Jy3rGVLi1TUSehg\", \"target\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CqoXzfpGmzyXa3+Qf/nb4A\", \"target\": \"P8GKZk+TH9Fs7Xg2twighg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"target\": \"P8GKZk+TH9Fs7Xg2twighg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gbTBrGKYi9EDhNNNZpNjig\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QNaUmTD9XiBvuQRyF+hEog\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"uczLdKTFHKiIVXA00xpOqA\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"rdcU0794FRm7pA510uJR1A\", \"target\": \"vMgwA5HwD33hVvy4pK/Ahg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"Kbhv+XSqvDoMD13AFgLghg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kbhv+XSqvDoMD13AFgLghg\", \"target\": \"gg8gSKkaDuBXakmAggtwoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"pQPJ271k9bUoMV49g6IUhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mEZ6ATXL3dtFAQpxVo1GnQ\", \"target\": \"pQPJ271k9bUoMV49g6IUhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HxJ47i5/R/AOuO045E5Uow\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"c/FYJcXeWjIHYyY6uVwytw\", \"target\": \"yIi9qzDFMl9qt0xAuWtGhw\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"M/+0wuChC+y87lbk0nzOkw\", \"target\": \"o2bKAZR6aYNtSggKGSVPhw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"RrwVqK/gCHzzTMUpXDhB6Q\", \"target\": \"o2bKAZR6aYNtSggKGSVPhw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"TjSWBmQ46SH6wSdnCe5g8w\", \"target\": \"o2bKAZR6aYNtSggKGSVPhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P/cyRrtKGbRESXIaIUDjuA\", \"target\": \"p3tybEF2UpLMP4gDgTlShw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"p3tybEF2UpLMP4gDgTlShw\", \"target\": \"w5zZguOil64NNAAULQPU1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GT+3GNQqNXtZnm7G2RrQkg\", \"target\": \"TodOSaFZiYOH8gsHOfldhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TodOSaFZiYOH8gsHOfldhw\", \"target\": \"UsfNfeGSTAvJn67KIlF1mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"target\": \"TodOSaFZiYOH8gsHOfldhw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"cCPJgnmqfGiAytewr9+Ahw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1xvTFcy1sizvpJ70mbM5mw\", \"target\": \"8rzeo+EaMha06b3mPHaFhw\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"0sfaCWjVStturOAXfaGRhw\", \"target\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfaCWjVStturOAXfaGRhw\", \"target\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OTBYEyX2QOB4W51Qglmqhw\", \"target\": \"Wu9y2fqKtlmpQc2y8UYBjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5cV0GYVtl1fh/DI7O5TBhw\", \"target\": \"CbimiVMxuT7pDVfyGcT4wA\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"ezkzW2wuFCumEZ/ag1Q4jA\", \"target\": \"yUoUSvScDsB2mWYtcrHuhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APTLNvOckRQErfs6WtWkjA\", \"target\": \"yUoUSvScDsB2mWYtcrHuhw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q1bmXHnbChJuHI/NXkr5hw\", \"target\": \"s55XD/vCmr3qzY+v2f8CmA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q1bmXHnbChJuHI/NXkr5hw\", \"target\": \"zANMFHvfDmlolnGwAg6Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q1bmXHnbChJuHI/NXkr5hw\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8E4XB9kLowELIYjeWrbT9g\", \"target\": \"eI+GLSSPGpM0YzAynKwBiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TeLYnQ4sMDKjTiO/ulKS/w\", \"target\": \"eI+GLSSPGpM0YzAynKwBiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UvwgWrEVRAhIKi90bruZqA\", \"target\": \"wjjHMDS+oPWRjv725xcDiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"target\": \"wjjHMDS+oPWRjv725xcDiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WSYFeSzGx7LhdNhRlOcfzg\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"vk1g0t3PzUZjffECtPwdiA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"RY9tUqtEDoNHUOJc5OdH0g\", \"target\": \"fcFSRQ5f5s0sLFOMwmYsiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"fcFSRQ5f5s0sLFOMwmYsiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/mnxJbBXFRoJm1t8b+jupA\", \"target\": \"rtQmcpROqcblEzxYvOdFiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7LoXRQyN/WUR4uMbgJgsiQ\", \"target\": \"SVHlmn1r2bsNbwqdYmNdiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3IwN77QI+uhaJkmHUl9rA\", \"target\": \"SVHlmn1r2bsNbwqdYmNdiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"D/A8t0cmv3N4b8hDFamTiA\", \"target\": \"bwWPWOOz5uHVBrqvXEpW8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WlJWpfvSrkQ4/HN21rW4w\", \"target\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"target\": \"fRdioxsCKtEz2G0T13qL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+XX4ipo2EDh1Vw861N3B7g\", \"target\": \"US5Qo6JtPJRWWdK1sh2UiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CgaMJFHu5XcA/PL4JD5Fog\", \"target\": \"MrbW31/GLJu0yonpmKadiA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"MrbW31/GLJu0yonpmKadiA\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S99EddmDGE9UZMtGmMlmtA\", \"target\": \"lmBINJAFKbwThqfREy6/iA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lmBINJAFKbwThqfREy6/iA\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XxgcW3KOOwIwxZx0l+ao7w\", \"target\": \"dlr2R44ETn3xtO4mnELFiA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"ngOZ4hkbAkeH9Y4DYwuonA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"7o2xRBk8+bEnyRLzDpH7iA\", \"target\": \"YcbMC6X7w3/ZbkRqHX2Z0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dJLrv9jk7ldi+jAgapgViQ\", \"target\": \"l2Q/oIYm74GDWIiJ0C031Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ELU9OZuGG7mvNMcFBlEmiQ\", \"target\": \"GfC4/nvDCu7sIotSuigJig\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ELU9OZuGG7mvNMcFBlEmiQ\", \"target\": \"x+lG/kXRYYoK8naWzHS1wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ELU9OZuGG7mvNMcFBlEmiQ\", \"target\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7LoXRQyN/WUR4uMbgJgsiQ\", \"target\": \"J3IwN77QI+uhaJkmHUl9rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nQbo89EjFqendC5KI+7G5A\", \"target\": \"t4T3wmGipQx4c4H54HxOiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hu6/TvmZK8UiWeZ2sq0rnQ\", \"target\": \"MeX6DDISi5cEsrtmH2FZiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N9GHwM2Vq3oyzQrCqt5ciQ\", \"target\": \"P3m65AjR0i02EPNbMQtNqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BzxNAuFyU0u79vAaduSj2g\", \"target\": \"N9GHwM2Vq3oyzQrCqt5ciQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"KuY19ZpJ9pyPPEUlZSFuiQ\", \"target\": \"kdW6Be6DZ17iGHRc72n1sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KuY19ZpJ9pyPPEUlZSFuiQ\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5//GAO7hi2HIxr4ipP2KiQ\", \"target\": \"Fdf8JL4Yug+BKZDs2me/6Q\", \"metadata\": {\"weight\": 47, \"hover\": 47}}, {\"source\": \"HRfIlCMyjqCLOAdE7RCTiQ\", \"target\": \"JnvphYTbY0KnOUfWIwmU5Q\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"target\": \"OTbEze7cZgrnpeMfdrKLrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9mblVkBMEnDTwMTEpwh5sA\", \"target\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wDxYj7DcItX8ETmJuSwww\", \"target\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"target\": \"V8ksPyfaupEEfgw8dUrT3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GKx7Kx08P5oJYYDzmxGTiQ\", \"target\": \"felsQ1UdIZxKSSJZnxxh8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"M28X/3X9XhtMKEhs+6oP2g\", \"target\": \"S1/wc5PKbfp7F7b/fdnEiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"S1/wc5PKbfp7F7b/fdnEiQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"s3qP/XBlR8cGjJ1s3pX2iQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"AdIBqPKbWZ1ixMQ1vwkHig\", \"target\": \"AheEjR6jraasDVl7HQ0q6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GfC4/nvDCu7sIotSuigJig\", \"target\": \"x+lG/kXRYYoK8naWzHS1wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GfC4/nvDCu7sIotSuigJig\", \"target\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"IrD+kWAzYPM1bqM4hRxKpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"oUJBjKPhjCGJybVjNgQS5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6WHsN/AKDjztOrLCVQxig\", \"target\": \"ZYIgMFU3qCf6nt4PPviA+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"zjO5j9qIwyI+tAwMdBI9ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gbTBrGKYi9EDhNNNZpNjig\", \"target\": \"rdcU0794FRm7pA510uJR1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZK6YeSt70T5UPes8Tj68ig\", \"target\": \"eJfOofg/VkU3qdrZNfHY1g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aU4n2x4OPkJodk0KxvLYig\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"aU4n2x4OPkJodk0KxvLYig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R9reG8IlWahr3kb1OVLP5A\", \"target\": \"aU4n2x4OPkJodk0KxvLYig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aU4n2x4OPkJodk0KxvLYig\", \"target\": \"ya2o5/Rbz4LKL7fJB/aH8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L2474WrP9VHTSD5GjTHeig\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 42, \"hover\": 42}}, {\"source\": \"atJoIn0HO1lHzEghWBykxQ\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J1g4OQI92LIr7/d8aT91+A\", \"target\": \"lJcfjh1B0QC8wlaorKjnig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+ZNPAfLfJ4E3rqIsOm3zA\", \"target\": \"LbpAv4RD73ZyJlP8Viv4ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EDp/Q2VCkQFOz0Iplgj9ig\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"RcN8xiuUhv2kkieL87f/ig\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RcN8xiuUhv2kkieL87f/ig\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2WuhL5d5X3mqFFxzpE4Siw\", \"target\": \"I2xubWo3ds1VoHwxbTE8mA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"1TyGrvk8SzqnwelG70YR5g\", \"target\": \"NWZIDb0hOgiqfdVF/d8Viw\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"0l4RTgkLvmQmKCNvIiUziw\", \"target\": \"UWN2fvz659JGxKe9R1s92w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"b3tzFgpkl9x19kBFzaQ7iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V42JQgL0mjSlYRIaBgRe1w\", \"target\": \"b3tzFgpkl9x19kBFzaQ7iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"44m6YoyPWWMgqGmxbpPgww\", \"target\": \"AnqqRMSFJIdjqNTRgBhGiw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aZ94xZmWiU/6fGBxFlmAiw\", \"target\": \"rB3LvGy39n1F6H8VS0+2yw\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"b5vs1fwa84/qK2dkqpWviw\", \"target\": \"qZrorchi2uCuBRCn13Jfjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANJirwOmc8zfhtEnI0IYxg\", \"target\": \"b5vs1fwa84/qK2dkqpWviw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b5vs1fwa84/qK2dkqpWviw\", \"target\": \"lI/eft/RzEEhzaigNox70g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l530hSXtzJ0CZmjTdke3iw\", \"target\": \"y4UnH6+f6jsDk+33vZLosw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l530hSXtzJ0CZmjTdke3iw\", \"target\": \"sg8bvnXSB8YcDFZaIVK+vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iImUqiPNPbAQT9k7P7UswA\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X+JG0+UOYlsa2OzMINsA9g\", \"target\": \"l530hSXtzJ0CZmjTdke3iw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ARtNFnnaQ6GXiln4T/Qiw\", \"target\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HASgCJE/Y8hAt4Al2gtgnA\", \"target\": \"dhusCwGFABIyWc0D0Gbxiw\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"7WnSaJh7YZRbTu+sts30iw\", \"target\": \"cbBd9N1KLhKdXGpN8o10mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"34JltuWiUJGNu5yr30D4iw\", \"target\": \"sMVEDjYAoPnviUTBQoXGwA\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"hGQwGeez8E92ZELQ24STqw\", \"target\": \"xmdiNDAZrXb96DU6G+YMjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"uXgRv+EhLbgeoK6stpaXww\", \"target\": \"xmdiNDAZrXb96DU6G+YMjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AYUi4YjxI3sjyh69XmUZjA\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AYUi4YjxI3sjyh69XmUZjA\", \"target\": \"EdXT816QZBfXGmfl0EIs3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"APTLNvOckRQErfs6WtWkjA\", \"target\": \"ezkzW2wuFCumEZ/ag1Q4jA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PCycEl2GTWjoexk2Y2k+xQ\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"target\": \"uKun7xuFYzhGRl+S+nJjjA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"LTaDkNz2mZP7yiaR9otroQ\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cCAe70sXGQWYb/OuJM5A0Q\", \"target\": \"lr6ZvC4jKRd6K7+kcQKNjA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B1+BS78xBzICq4XtMwmzlg\", \"target\": \"J8SjBvJCmPKOGw5leXvCjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J8SjBvJCmPKOGw5leXvCjA\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"b1M/wYdBaDni3Ofh4l3HjA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"Yz2zqM3ottFo16zf8VP/jA\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"su6tafi80XozMhq/bUQQjQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"su6tafi80XozMhq/bUQQjQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8Ow4dabxHnWh03IJriBQjQ\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"oaRnYnhvO/FYGlQNqix0jQ\", \"target\": \"xYqY6+nbtRNwS10J4bsI5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ghJksWt+/t2VYaCzm/Qs+w\", \"target\": \"oaRnYnhvO/FYGlQNqix0jQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VwYIikUAhpUNQ87/LkyMjQ\", \"target\": \"pw1Urc5iVfS4y0uLi0eh1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VwYIikUAhpUNQ87/LkyMjQ\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"YiYxSGimBFYfI1PSZXEXpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/LWWbQVfFEGRdmgHBX+hjQ\", \"target\": \"8wXFOFxvQzDP2XGsXPTJug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"zBYtW6j0BVVb87hgefOzjQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"EI1Bb3iYtYtE0JmXrzbhjQ\", \"target\": \"aobPH6KJJmtGIvnX9Mes2Q\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"STJBi8oPwc2BctwyE6sWjg\", \"target\": \"V0X2HIuhS0Ps7WOiYcGtmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"target\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J6oUjOAH1BBqpI0I1+A5jg\", \"target\": \"aBJgsjUUxSbjLvqC8G6w4w\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"ANJirwOmc8zfhtEnI0IYxg\", \"target\": \"qZrorchi2uCuBRCn13Jfjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lI/eft/RzEEhzaigNox70g\", \"target\": \"qZrorchi2uCuBRCn13Jfjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EngmqUh4gyea4TS7OO9yjg\", \"target\": \"H4E5AoIqhz9wh2Kf55g9ug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EngmqUh4gyea4TS7OO9yjg\", \"target\": \"T3l0u3ldOx9jtSUKFA+k7w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"L5j3a+KEjVvruGkUNWZ0/A\", \"target\": \"kjHwdaup66csMOCG3ROKjg\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"cH7hwoKgMaOJsY5D3kVnmw\", \"target\": \"jSRfMZy/4td8W+2rHbKKjg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2kwqkjb20NhFUxxC1Tm51Q\", \"target\": \"jSRfMZy/4td8W+2rHbKKjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pM8Ak4i3j5S+FA0NY5Xmw\", \"target\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"target\": \"ThEEbPC4bj3+L1bdTz0Muw\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"2S4DHIPXmBRy4ga7Mw3Fjg\", \"target\": \"GyNDEvMoYuhGvUGJuPBrww\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"Iat6FJq/KuV7fq2K9pp+pQ\", \"target\": \"tSRwNpETY7Lfodms/g7djg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ehabqbw4OQYvR5CymUIO2A\", \"target\": \"tSRwNpETY7Lfodms/g7djg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5zGaSrpx8N1/soA9uEI+wQ\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KY7SDv55+3dlAQFrfzmPzA\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"W259ly2a2z+n+NPO0gK6zA\", \"target\": \"dj5gNj2/vVS39LTElZcvjw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"A6KU/qYQ98spmWi6/tD3vw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+vqV5drJz8mV3S8VFpkwjw\", \"target\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LjIJIsWr2kj76XygrEd5jw\", \"target\": \"mwwTgvkZoGiAGW1oNL+LkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LjIJIsWr2kj76XygrEd5jw\", \"target\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7KcKrZ7VTELYyhbcB1CLjw\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"7KcKrZ7VTELYyhbcB1CLjw\", \"target\": \"pzrkk3XBurZ98mVCu1qMlA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"KSy197RLM9KmZkkCLRjLjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NyPKUTLm1jwUANNoIQoIqA\", \"target\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IOl829hIWWsSYYNSeFTw/w\", \"target\": \"aT7jTvJmQNGLTi4X6y7vjw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EmDKU/Z/uCBSXOGi++/1jw\", \"target\": \"cq4YPHqoBPScATaVsSLepA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"EmDKU/Z/uCBSXOGi++/1jw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lds6GA7YRogoMFggLBQWqw\", \"target\": \"tT56pcNitJCJsWGjol9AkA\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"Po1F1afptpiGxInRk3sK+Q\", \"target\": \"tT56pcNitJCJsWGjol9AkA\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"XqkxpgKTYkq8YB+YxQNJkA\", \"target\": \"XsBDmmlxAWof97JjGRrn4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLqvxwV6cLRbZzV/S6ce/g\", \"target\": \"XqkxpgKTYkq8YB+YxQNJkA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Tj1QpznbGlgcl36CONWxmw\", \"target\": \"ymZAIf0E6zclGzrp8HZOkA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"P/7py6K8bExzhGEq33Cz+w\", \"target\": \"ymZAIf0E6zclGzrp8HZOkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"8DMefT1OSM5d4f8qFzt9kA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6ft3Z993zOtMnqoGYxFImw\", \"target\": \"qrsjsWUS7pNe8p0FWJp9kA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UeNVG+95L2zCCPYwGhYQ/g\", \"target\": \"mwwTgvkZoGiAGW1oNL+LkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U/fhW6N6mo7uVhkMHY58oQ\", \"target\": \"hdbnBT9t2fyEJTsarj2ckA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"hdbnBT9t2fyEJTsarj2ckA\", \"target\": \"iK9ayHc/AXaY84l64fm17A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5mpJr5Sfqf4U8mpiqhJ7kw\", \"target\": \"s1Cp/MWD2ItYJBSRuQDQkA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"s1Cp/MWD2ItYJBSRuQDQkA\", \"target\": \"v0tsis6xbkZzzbvFeAXBpQ\", \"metadata\": {\"weight\": 39, \"hover\": 39}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"yrXDjH5Y3GviTTblofUhkQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eUllzuIfKGJ2N2NV6xyHmA\", \"target\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"mvm8uzRObfOilYPlJTJ9kQ\", \"target\": \"tX0B7WfMBbtslZFb0IpizQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0cSWpJdc3Akr/N3MCnC8kQ\", \"target\": \"XEXq4+EHfYmpdLTINBij/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aobPH6KJJmtGIvnX9Mes2Q\", \"target\": \"nJ1II7w+Iraj91Z0NlS9kQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+jed9hT4PCjAgcZW7k3BkQ\", \"target\": \"rUmPGQXYQ01oDAOVKdAA1Q\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"+jed9hT4PCjAgcZW7k3BkQ\", \"target\": \"yh404VRB85qtz9EJBxRg5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1dkRbCWZ/SjfQ1T81WrCLQ\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"target\": \"qTBjKwL3Q0ouakCUEcv7lA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"AOZ6RzZdEBiJwiF5Ba7v2Q\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2LHI1R6SjODg/VQK0mSy4g\", \"target\": \"K8C5ZUWabbBM5OUN4Dopkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbNmAv8ufmo03YB7SphOmA\", \"target\": \"vmO6Y+KYqGplY91Uh4otkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"odc3xGllAo0CLlmOvS30+A\", \"target\": \"vmO6Y+KYqGplY91Uh4otkg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1vnevzowu+uO6Fw7bnhVkg\", \"target\": \"YL7u6Ftz6it+yHZ1zOCPlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1vnevzowu+uO6Fw7bnhVkg\", \"target\": \"d+kA2No99UCwkK/diexNvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MD286c3p+1wLoCXHWXNekg\", \"target\": \"YXIjTDE6sJvw8Ctchvbo1w\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"KQfkDTCpE+13mWT03/1e9A\", \"target\": \"fVODvtXqbIUOpKDyQOeZkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B/w7bWKqIekFMsM0huAwnw\", \"target\": \"JWq9Z94VJ3KnTaJTzG6rkg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1mrWjfQ/EuoZlFn7YpeHug\", \"target\": \"aY38F1Hi68kXNObkjJy0kg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"GT+3GNQqNXtZnm7G2RrQkg\", \"target\": \"UsfNfeGSTAvJn67KIlF1mQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GT+3GNQqNXtZnm7G2RrQkg\", \"target\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pcApyi0C63xSascCt1wrw\", \"target\": \"BP7DgF9QPNEPPG09OT3xkg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BP7DgF9QPNEPPG09OT3xkg\", \"target\": \"qcL9ytXQGVZEzfmjivkj1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0itFxQ86XIpBvYaqkb0rmg\", \"target\": \"gCCFDdahxk6vhMbz8r0Dkw\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"mJoSuOtK1NC4MEDpqX/U4Q\", \"target\": \"q1hIpuJfhsRHeVqWKvcwkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V39HVLs3gAxLStN2ZbhDkw\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V39HVLs3gAxLStN2ZbhDkw\", \"target\": \"usCj8EbPFiwMXDxfRmyWvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NjVhdiC4UmNJkZgJOcpn6w\", \"target\": \"w/1S2jjYrh+t4IF1b9hDkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"vRASEJmApd9kVKJdViBVkw\", \"target\": \"ze9Ajo7bQIrDR2Q61Vkf4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Vql7Mlk/vvWRyGpTsvc5w\", \"target\": \"vRASEJmApd9kVKJdViBVkw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"coyiMRwZqLI5ZdJOoZeykw\", \"target\": \"txTXlRobNKgppIbcfQ7eng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1K11RU9HVahHEfRalAKE+w\", \"target\": \"coyiMRwZqLI5ZdJOoZeykw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"wBpP5H4NcclejiuYfAsH3g\", \"target\": \"wWOB65sUCgBZmtKzkj+zkw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2XgKwEYu+xnjpKxCZsXPkw\", \"target\": \"wq4jS3BQFR4Q7rCcHmTkqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2XgKwEYu+xnjpKxCZsXPkw\", \"target\": \"JGCy4XtfSbtbG7+nlw4CtA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2XgKwEYu+xnjpKxCZsXPkw\", \"target\": \"ohyQWYf1WFaWLvKobSUl7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+hcPbiZB+EqklCe9mW0OlA\", \"target\": \"UInULZd3JLguWndjhxn7rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+ko4YzNx60P+2xghNILs2g\", \"target\": \"RFhRmMGBBEPoXxsodv9AlA\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"0OJgoCy/iRkK0pdhLZlDlA\", \"target\": \"H+It2SD4KPOr34Qht7sHsw\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"CZUI2rMtgbqzvrBv4i+mnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"7ZFgUu+P8FAztoZ9QRHP1g\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"1e8Ls517tKCbpK1LBq5blA\", \"target\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/hoM3x9QDTrZMypNwFxFuA\", \"target\": \"stm5O3lA7Tm784XxpVddlA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R0VympemlR1IDHdJpudzlA\", \"target\": \"rZGX7tiTLIup6b1UOtdDoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Df0dOb7XVmqj7vlzc20y4A\", \"target\": \"pzrkk3XBurZ98mVCu1qMlA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YL7u6Ftz6it+yHZ1zOCPlA\", \"target\": \"d+kA2No99UCwkK/diexNvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iQM2EjFgUk/83dUXxYq3lA\", \"target\": \"j0LG2TBfq7KBMfdREM9O/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0/q+Y7rDgFo0pIuKyYUPlQ\", \"target\": \"uob06uLmmmvE1HYJtEpitQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"target\": \"MVzuargAqRhEhH9ikjoTlQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVzuargAqRhEhH9ikjoTlQ\", \"target\": \"p3DWdLyxBb2M4TQNRHwLog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Inzja40kbY1hPZTZY4WlQ\", \"target\": \"HKsqt90NplyxlSg6LyWgXA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Inzja40kbY1hPZTZY4WlQ\", \"target\": \"L2tB1n1pURXM5J79efXQzQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"C7kYsxu3YlUXLJe+cxAXlQ\", \"target\": \"E/fvpVf6HaKe2VQD8N5Mmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UqUz0DfWRXLEeSZqgAESpg\", \"target\": \"g7BClnljHMe7t/6wyE8flQ\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"P84WP5DJo+ONWAPG0AZm2g\", \"target\": \"a5nwKdFepWlrJsQ5uDgklQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"gRn+/8gycwpXhkV24zExlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PXDoJ1dCnYjkw81cC+M2og\", \"target\": \"plg79dOordUluDMn0QerlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gaELPVErzQA3/wtTOOyoEQ\", \"target\": \"lu/KWGLuVxFjTOsFrAK1lQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TsBp/bUpbkbp5S1HqqD0wQ\", \"target\": \"wLHG6RNrCE68R009G9u3lQ\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"aMtomuAEu+BPWSpp9f67lQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aMtomuAEu+BPWSpp9f67lQ\", \"target\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aMtomuAEu+BPWSpp9f67lQ\", \"target\": \"pPmXlW2jutvNWlr49riJww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1qh/9xi047BN/ZyQnxclpQ\", \"target\": \"BrKEzkZl+oeSpp1lEm/RlQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BrKEzkZl+oeSpp1lEm/RlQ\", \"target\": \"qIWaissn6WMBkpy7C7Z28A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhYeLFCCR/CLQlVcB+30lQ\", \"target\": \"LsulSTGDU78TB0LMXI5p6w\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1THmiGWj4fAKDegLXyKkYw\", \"target\": \"RsEcyneOsOsiTwGvQLs8lg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RsEcyneOsOsiTwGvQLs8lg\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"70aYqyv9oeYGbgxhrjo+lg\", \"target\": \"75GLam0GiNbHonLi9pd/4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"70aYqyv9oeYGbgxhrjo+lg\", \"target\": \"M3mzslSGFKL89Hr6jj7Y9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7/bDMg+CgSBsSBxSvS5Jlg\", \"target\": \"VI26TkOgYTwvvdTzNROoRA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7/bDMg+CgSBsSBxSvS5Jlg\", \"target\": \"ugotZicfaCxO89ywurXDgg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7/bDMg+CgSBsSBxSvS5Jlg\", \"target\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"ORrKkkolP4HTZZkv84pXlg\", \"target\": \"ywsnSvZ81TfCojhlHXfNow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2RiLIE1K1TPlUCCANP1Ylg\", \"target\": \"Y71JXwPp8BNr1I0/V5OLqQ\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"pnzwd6zA7P0nwxXLzK5elg\", \"target\": \"tK2U2fHkt+0EQze0I6bypg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eof82uJ+FIvvh5PWSJZF3w\", \"target\": \"pnzwd6zA7P0nwxXLzK5elg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"WeN5o9MbjQ3DVYD45BwwIA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"OgPOP14AXvUmCvsSYLWvbw\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"H4uou4s2t0Bc4QGhTbWClQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"8miui52p1qtwyDUJwOvprQ\", \"target\": \"FqlSDenR1ixjbu54Vutxlg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"UX3YXL0WCL6Q9XNHkwlVwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FqlSDenR1ixjbu54Vutxlg\", \"target\": \"qCdC3QwLjV6GYNuI6++H3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"target\": \"bruKgrPMaRoxZXRCGPN7lg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ie2ipRiDjN8xf3W2LEwvqQ\", \"target\": \"bruKgrPMaRoxZXRCGPN7lg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B1+BS78xBzICq4XtMwmzlg\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Pn48zoj9DvyN79bhDOnBlg\", \"target\": \"cfyIaZvA2RoXHpxUpLCevg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"target\": \"nIgO2SB8550Bt4Vxy2bC1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XpcTNKSSMnAhHOy06+3Dlg\", \"target\": \"pTMybSugouBc0nZLe/g+2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ULTEbZ9xWlg84CiPGN5+mw\", \"target\": \"skKOLxoTeRihqW43U/fRlg\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"A4GDSAA4mHRobOibWak3lw\", \"target\": \"O/m49NG+OSq7jZLZYq9E6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A4GDSAA4mHRobOibWak3lw\", \"target\": \"J9lncln67Ektsz70Jz1s+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/cpUGyXhspITs2LY9v5Vlw\", \"target\": \"AlCXpabHb9Fswv7L4U0Bwg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"/cpUGyXhspITs2LY9v5Vlw\", \"target\": \"hMo5gNfTHyj3lOFtJAwj3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"V6ERLfamkqdKjMJZjCzbpA\", \"target\": \"Ye9kqudPVvs1pgQ+Rc9mlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N3NaYvG5XKOWroyCvqHesw\", \"target\": \"Ye9kqudPVvs1pgQ+Rc9mlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"PFQQFTwxo7gAyWxkxct3lw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QqHIoi1m6uc9wf5EvV+Hvg\", \"target\": \"nOU0JofEhmOu14V1gJCDlw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"F6YNnTWNiTfmQxsIu88kzw\", \"target\": \"nOU0JofEhmOu14V1gJCDlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mm96JWwrURGUG7NvDFmFlw\", \"target\": \"aY38F1Hi68kXNObkjJy0kg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3AKM2uMCMBowR2F0SPaRlw\", \"target\": \"KnQ1veuKdeMziZDzLYjmxA\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"wzAftnwgVrYbBviqd5/Nlw\", \"target\": \"ykhADMSBj+Y4ryryeKH5uA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1Y8y0BN2GoCseNXlNfRuQ\", \"target\": \"lAzBrk9QGzuamP+I91TWlw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lAzBrk9QGzuamP+I91TWlw\", \"target\": \"y49HkmqZsWWjpBlDEZSH9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E5HA829CEYozUMuleqDXlw\", \"target\": \"ErkzyHpetFkkZkbpDTyo0g\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"WFWWw2jQ8tZw5iRQSFNP8g\", \"target\": \"e3WYn1OreehJ2jK6m8rnlw\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"6lApIV2MCrZkWFZZJf/rlw\", \"target\": \"ifErMyAVjoUcEphHINV83g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"s55XD/vCmr3qzY+v2f8CmA\", \"target\": \"zANMFHvfDmlolnGwAg6Hzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"s55XD/vCmr3qzY+v2f8CmA\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+z27pdsw9ziRL7iqccgQ4A\", \"target\": \"Rd6VoO4/XbQaKWB9PSUNmA\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"TxvBO7S9xqj6+BYalhASmA\", \"target\": \"zEGSOiQBax3FfgouHdO4sg\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"7PIjjpdWBiwyW4ixCoecyA\", \"target\": \"uEQS6OisQD2R3qCxp/0amA\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"I2xubWo3ds1VoHwxbTE8mA\", \"target\": \"Q4z7ZXuTWCeHiSWjY/RLSg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FbNmAv8ufmo03YB7SphOmA\", \"target\": \"odc3xGllAo0CLlmOvS30+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4sJOO8Vxy+D5M1iVe7lYmA\", \"target\": \"mEZ6ATXL3dtFAQpxVo1GnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H7bKs0LhQYdNQKdCXn0esw\", \"target\": \"ZZkUAgtwxPW4ue5corBtmA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bUm8ndxdpk/K+EnRPsxM3g\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"dOUE10943msMhph80cKHmA\", \"target\": \"pzuucJl3E3Cj8Dvv2sjs4A\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"LFxJPJkguSiDBpErKUVQ7w\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"Hz0AHLYlerZt66T6kgGt8g\", \"target\": \"dOUE10943msMhph80cKHmA\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"dOUE10943msMhph80cKHmA\", \"target\": \"g8S6E8i7+yu/FTfvB/Hx+w\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"2tErsV7PrIgWpryU+hSNmA\", \"target\": \"kUSjYI/KovDOP2WNmP3Ppg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"RmT2VUCyBml1MSaKA8p4wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"dk6DwZwUWB0ANONnemeyxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0qB9VvsBljzCFo868ROkmA\", \"target\": \"LFxJPJkguSiDBpErKUVQ7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"r+Can401isBVNhLUfNf6mA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"VzS48APpJ+ye48pIki2dug\", \"target\": \"ciq0t3t4csHVxzE/sPowmQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89IPAn8CnXhoaYUJqaDq2w\", \"target\": \"ciq0t3t4csHVxzE/sPowmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ODLi5SBwNecxZWLF9IQr5w\", \"target\": \"ciq0t3t4csHVxzE/sPowmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0njIZzPiH4ZQ3yQroYg0mQ\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"0njIZzPiH4ZQ3yQroYg0mQ\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"gg8gSKkaDuBXakmAggtwoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"026x+hkDchtogP27DW1BmQ\", \"target\": \"pA2XvK7a3lX0398AJNHdsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"target\": \"wH4ggU+AeirvEleuA5QfsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/lnJYySQ1nGxJ0pjUAVqwg\", \"target\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"target\": \"swp8nA1IIlV5HAlku2M7xg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6BlHPEWxjD7W/EXGlQA8/A\", \"target\": \"kHs2Gj+5NnOYE8qC1kZImQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7WZO2jjMqEHtvBBYv4mK8A\", \"target\": \"HZQlAg8cz/q0rps2qUxTmQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"target\": \"UsfNfeGSTAvJn67KIlF1mQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O1RVC+p7aPV8bOsQ6e7fmQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GogN3PGHqIxQPq1ggN//mQ\", \"target\": \"TCOdjfPB4zlgBAP2zQBP5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UZYf/isTOX6flCmlncT2uw\", \"target\": \"qZLjmxMAXLWRVlLqWDUUmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qZLjmxMAXLWRVlLqWDUUmg\", \"target\": \"rSNn/s244brhIQqf3dJ++g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1RXEjZUbzQlv/sF+7lcjmg\", \"target\": \"z74I6YSnuYW7jPenY9cb4A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0itFxQ86XIpBvYaqkb0rmg\", \"target\": \"sdoG82xh/hHfEnvybgiirw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"Ie2ipRiDjN8xf3W2LEwvqQ\", \"target\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"target\": \"nOXqrXnI0km8cLuIHTi4sA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J0Y7X8OuVoDvRFkvRDo+mg\", \"target\": \"JQF9x7q7foGGWrdOMznT3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WsOH4nJKjn2CB/iEjBAmg\", \"target\": \"6MOzNfjdUIZpKdO5Anh4sQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+WsOH4nJKjn2CB/iEjBAmg\", \"target\": \"xRv17OpeWpPllhbTSqIRvg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/VSjNgh6mEKfWVR2yolAmg\", \"target\": \"AAoMjjx0U7e1swPFxDgm1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TsBp/bUpbkbp5S1HqqD0wQ\", \"target\": \"WsADvQUexHH226piNwJkmg\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"lsLKKaHMUiMrn6Zcpfq5yA\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"target\": \"vLiqq6XAkt5wPpqWnOCCmg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N71NdD65ClhwHhQI+8WYmg\", \"target\": \"v+BYHiPvbunDD4aX0RIKrA\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"AuPs8xIujNSsWmRixEWlmg\", \"target\": \"GESk4W8kGwn+vZG9m8yvwg\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"2MVXq8uLdwsJtUdF9Q1v8Q\", \"target\": \"AuPs8xIujNSsWmRixEWlmg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"YHY1mcZdSq+ai241CebG2g\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"EdXT816QZBfXGmfl0EIs3Q\", \"target\": \"raoyK7i9VADXHBEd5q/Img\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fE6HcnXHKbr/hLbDIc0Yng\", \"target\": \"t1GlVhkS7JUA74ZRrn7omg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"t1GlVhkS7JUA74ZRrn7omg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iJ1xPU/tcdkxseJn58AG1g\", \"target\": \"t1GlVhkS7JUA74ZRrn7omg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+hre7gCyki7DbDJpF54Emw\", \"target\": \"iFSG61RwkUqV0uuBHuopKg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"X5dyuyZq3obza709mjmSrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5AKiYlk9S8R3PhStCTMGmw\", \"target\": \"8iXe8Rxo1mY3KR7nSIb99g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"n+6GBSL9r88/k1XUx+wJmw\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I7yLN7s/WeYO56T867I33w\", \"target\": \"IUCSc8JrpOX9siFlq4kTmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iKUw4Z9w96D6wQtz5rpe0Q\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"gHJfO8svh+gm3L4Lwbss+A\", \"target\": \"orCV8VMs0nLuHGGOymdYmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2kwqkjb20NhFUxxC1Tm51Q\", \"target\": \"cH7hwoKgMaOJsY5D3kVnmw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FgYx9haFz7m/jpwNa8RpoQ\", \"target\": \"hWotMeINwSMsuStZDvr2mw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"Ifsn31I/BxOTLopfp+ELnA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KvjMCetZz2V1Zmw8U58vnA\", \"target\": \"qlJAbL1oAT+FwtNvVKFspA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MuG/pOvxWpq41fkfo/RhnA\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Snf67yCbEURPNP44X86EnA\", \"target\": \"pLV1jlhExMm2ObkllrzYzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IWWaiBa/jxZXyRG8dtN64Q\", \"target\": \"Snf67yCbEURPNP44X86EnA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1HD1hgKxdxjSKUE56jLcxA\", \"target\": \"HHkXkBT/54litQTh/BmLnA\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"wUALAJQSrjDS74qqSXWanA\", \"target\": \"ylU7OoOB+lTyYkp2CvNrrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"wUALAJQSrjDS74qqSXWanA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MFadgRNeoJXgS6129bqinA\", \"target\": \"uoq9y01xGOC/8QgrrSih6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Q4EZp1LH5wD+RGBFB5XKnA\", \"target\": \"nSOPa8O+2GmeTc1ttJWhsQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"GFbM1Slh7/TpvUKSCABlsg\", \"target\": \"PTV3NYO5Go72N57MchX0nA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"pPmXlW2jutvNWlr49riJww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PTV3NYO5Go72N57MchX0nA\", \"target\": \"XiC7FH1g29T+yR+JgexY0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RqAoRt/0ERHfq//jRwMCxg\", \"target\": \"qzKEcvwdglP92ELKCY0LnQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"EZCqsbBxog066gDQ9no/nQ\", \"target\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"VYKTf58Y/3PKyKyODXVDnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DXapr/UUm27Eyi8aPwWmtA\", \"target\": \"EOUXKxeOsabsew6mhTtFnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7jyOu3xNAXh9K/BlvEEH+g\", \"target\": \"EOUXKxeOsabsew6mhTtFnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Sa3pdyOhhVraK3JVehnezw\", \"target\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EBC83dLOPfyZ6CgyHfS33A\", \"target\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"WKrQA0XiJ3QhQ37m9UxbnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"LJByc82blf4I6Ekd8kx7nQ\", \"target\": \"Nxf6Dl2TY1lZ+tAbB1jI0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MHef1Rs4455vMbiW11h8nQ\", \"target\": \"hqp2t7RlXH1cOLweIj9B/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"CZUI2rMtgbqzvrBv4i+mnQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/244Bhg1oGurt3IyzwKYxQ\", \"target\": \"7b2RfDpW6ux8JFAhGs6unQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MLDh6bSGi6PSwySBAYEg6A\", \"target\": \"xdPBng9vNQkVKMcV3dLUnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IPgGExpgq0OmbJYAJoFSwQ\", \"target\": \"riYzk3GZZhFYefWPcH7rnQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NI1i9raj16VxnRqrILX1nQ\", \"target\": \"ZhZVkXk5CkcWX5ZOOMDl8A\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"81f+4meCZgFFZXrAqsoIng\", \"target\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"81f+4meCZgFFZXrAqsoIng\", \"target\": \"tzXhsMltVbaVhDOHG+D51g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"fE6HcnXHKbr/hLbDIc0Yng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fE6HcnXHKbr/hLbDIc0Yng\", \"target\": \"iJ1xPU/tcdkxseJn58AG1g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cT8S0osGv1Yx07xujT9gqw\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O61qmbeWRO9KIoKQ+zT/2g\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"budk6JQt4FfXRTibqggC/A\", \"target\": \"lPFtf1Q/ImK+Yr1CW143ng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8JbF9ap+6Qhiv10Vnu/1uQ\", \"target\": \"SQ42EOxBogb4ZYJ+L6pPng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SQ42EOxBogb4ZYJ+L6pPng\", \"target\": \"fNckhogPhWH5mD6GuOx38Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/vCuxHcLbkZ1JpcEBDRrng\", \"target\": \"eicDvHwLimEpCXnCzX92tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/vCuxHcLbkZ1JpcEBDRrng\", \"target\": \"xcCz7UtKMNaCiBrVKD9kyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BQWNiwP0OY809P39BOuOng\", \"target\": \"rBRMKV18YrOSdA+WPlz6sQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+OvKwxEMof0l0CAhF/aWng\", \"target\": \"9YG8veR7SSp+tcshzpdFyw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"1K11RU9HVahHEfRalAKE+w\", \"target\": \"txTXlRobNKgppIbcfQ7eng\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1z8Qkaup4fk+PHtX1lefqw\", \"target\": \"JwgF3TNIvzasqJg5v/oRnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JwgF3TNIvzasqJg5v/oRnw\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ds30CGNRVqJEmviGG5Mqnw\", \"target\": \"zhwkPccrVBCZlu4Vm/0dvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"n6Jg/gVSETfLFTXNshownw\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 19, \"hover\": 19}}, {\"source\": \"3Jk8W0OQRDbN2UwPVWg3nw\", \"target\": \"PuWM2tbLWJu86IYmsZO2rA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Jk8W0OQRDbN2UwPVWg3nw\", \"target\": \"w159VscyStCfuNPVMuBj8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lzH6Idq2FJnBDgEnU3CMvQ\", \"target\": \"pYz+Bh5cLgD4u37ISthJnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+v4QPdKqrYzi44heM0Bfnw\", \"target\": \"8GSDTYbw+zWL3W0uIt2tyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"tNPQOgx1QK26mgnI8Z8woA\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HanEWAQVvp92czeWbS1z1g\", \"target\": \"vU3OpI4mB3qzER4N/RBhnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"w3l9D6GAOJ9N0Lh9dUhQsg\", \"target\": \"z+9dH9mOBGtV12klfo+Inw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"wJdydwMBpGIslyVgQAeX/A\", \"target\": \"z+9dH9mOBGtV12klfo+Inw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"Kah82w+S/u4725mVZgjAnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8Axznb3nRk/NprDR3QVNxQ\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6suweX+9HNHlp9Z3oC+26g\", \"target\": \"xS3sElVAWTp0wkMv017dnw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sBHxxv8TDcRka7cQD0Trnw\", \"target\": \"vDRBQBe5FIOF6UackNq59g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"00+hT3AJnNlMB1LEokJt+A\", \"target\": \"sBHxxv8TDcRka7cQD0Trnw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHMvV8h1aOg6zyB7wC1Lyw\", \"target\": \"pfw6cFOu3J2geMdfjUn5nw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"NB36u7yBXPdWuZqt6xVvoA\", \"target\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JtLiGrVMyc63d3hcU/qYoA\", \"target\": \"k+P5VcOaZtVHG+bmx8RO3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RW96NHBcsbA7UIpMwIlD2A\", \"target\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"WQX69Rb8P7YI2vlnX1KzoA\", \"target\": \"uc+Wd5vnGQDGlFDnpkze3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MVxpMOd/YHo81uKU8J1D2w\", \"target\": \"Nl5ZJGG1euH+Lbec7t3RoA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1CYNn0c/dSMW7awW+ln8oA\", \"target\": \"dV5s7ImkyNv6OvHQ41TDqQ\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"+VLSwuuXCcLbYcRl6hvWtg\", \"target\": \"JHN1RRKwapnUWKCl3tIioQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JHN1RRKwapnUWKCl3tIioQ\", \"target\": \"jl+NiomZ13QCt0ovVOEn1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"uorSEJpZYH5T0K4M6kopoQ\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"OkpZWWmaKw6a1Opzusv4pg\", \"target\": \"TsndRw82xTWIzr8YhLs7oQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TsndRw82xTWIzr8YhLs7oQ\", \"target\": \"ygZ5WGwTsK/8Id5UnwVytg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TgyNoh7F93CAwdFFP4NWvA\", \"target\": \"TsndRw82xTWIzr8YhLs7oQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"target\": \"p3DWdLyxBb2M4TQNRHwLog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AlCXpabHb9Fswv7L4U0Bwg\", \"target\": \"HgsIdygAhnuFuhgyxTRYoQ\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"1WjfVSCScOY81ocVLG5loQ\", \"target\": \"POgaZ85u3n/rjr0nGAs1sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UH5IsiL9uFI65JlQVZqCpg\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"o8icG02ljIVugMJm5yWV5Q\", \"target\": \"yre3anFHnU5uIwIzFZBxoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BZgWCBNlAJw0MgydF4igoQ\", \"target\": \"LW7RUp4WpBDp3yrEPkJV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iGZuWn8fO2VU2b3SzmHm1Q\", \"target\": \"jz9J9As81u6mk8QhToO4oQ\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"66eisG0zlPciGk3M3zXzqg\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"target\": \"vy0FMq4VqzAmN+15yanvrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"hy3RRSsumWzxUjk/5iTCoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rjs/zx9VNy2E4O4zgmDipA\", \"target\": \"jx/g1L2CPlipWbkZRdDfoQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ez0QStHl7M10wuzVy4Le/w\", \"target\": \"jx/g1L2CPlipWbkZRdDfoQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC76g5K8wAxvtnuruj3moQ\", \"target\": \"W5vKZMcezwUnhC22O8hM9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Xx2MKu3v/ca2MdNY+roAog\", \"target\": \"ufljtH2NardpOebKv0f7qA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Xx2MKu3v/ca2MdNY+roAog\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+SDMPAJnM5smfsvJtvU5Q\", \"target\": \"Rz7xx0+t9Pg49kUuRAUxog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Rz7xx0+t9Pg49kUuRAUxog\", \"target\": \"aU8RxAk5dpz79KvpKp2W7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3CeBf9rBRUJJEl8QTxljpg\", \"target\": \"PXDoJ1dCnYjkw81cC+M2og\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5vOpbU7kc21gWGoUtU+Zyg\", \"target\": \"PXDoJ1dCnYjkw81cC+M2og\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5l+nWShQIHU/EwPzCPsU0Q\", \"target\": \"QNaUmTD9XiBvuQRyF+hEog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"c9uAkbAxw0Nggb2/V2aNog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y/HkWrJ/U/Bxbdr7NgH3sw\", \"target\": \"c9uAkbAxw0Nggb2/V2aNog\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"Ac+QyhaiwoCWtwDiF8m0og\", \"target\": \"lGkpU3/jy713soPYjV1X4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EA8a4UBy2yScgW0M741Now\", \"target\": \"hKQRArjse+VYfHpwz8rFsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EA8a4UBy2yScgW0M741Now\", \"target\": \"yW3srrSTsNB2YpFbKqcI4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Zitss1YyKE3+SZddwmmpQ\", \"target\": \"IvZE7F6iOLbqCW9HzCN7ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H07w+dzMUBY1Tb8aYnul6g\", \"target\": \"IvZE7F6iOLbqCW9HzCN7ow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TLca0dGaohU0qFvxCq6Dow\", \"target\": \"iL/YeEnkI5SD8xbo+fm5tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Lg63ntVVe/szA2gZJ1zcww\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2hqjTmv4MpPdFdsOI/OY1A\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTkc8476vXtqFJNyISCv6Q\", \"target\": \"TLca0dGaohU0qFvxCq6Dow\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bp/cH5b+nBTbc8NY0tOcow\", \"target\": \"wfXgSamcu5P3FnGDzU9nvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bp/cH5b+nBTbc8NY0tOcow\", \"target\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Io8slHVhx1bwsIhDh76qow\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EjXIpdCPF+ANqs8VdEvHow\", \"target\": \"rKPsaIVig93SRx4sDucCrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fc6IFrUFydQMo2hfHcOqLg\", \"target\": \"pL6nc0UXPCXIC0pq2oPHow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kcQWmhhEp5EveGkbaTs5w\", \"target\": \"EPqSyzWGXSd1L8fp3h/Uow\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/CMsaEuGu3ULvTJxZ5L0ow\", \"target\": \"NEchXFq2tu9tS/CqClXlpA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/CMsaEuGu3ULvTJxZ5L0ow\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"hauBoMkrAw7jNahaRNgApA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Jwoyvq6WKnel/GQ7emAxpA\", \"target\": \"Zvd//MafwP9D03olooL/xg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"Jwoyvq6WKnel/GQ7emAxpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"Jwoyvq6WKnel/GQ7emAxpA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"dFfhM/U6nLNgdH6gFCxCpA\", \"target\": \"en3A02Nh2kO7dedg0Atp/A\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"IrD+kWAzYPM1bqM4hRxKpA\", \"target\": \"oUJBjKPhjCGJybVjNgQS5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QZ213ed+FC+L24Iot9ZepA\", \"target\": \"ja/6z8z+hVceS31PBR/prg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"LSmb834QdrGseWhJgOqB3A\", \"target\": \"QZ213ed+FC+L24Iot9ZepA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ol/sPUF0PGOJzBdNSDZypA\", \"target\": \"UqUz0DfWRXLEeSZqgAESpg\", \"metadata\": {\"weight\": 31, \"hover\": 31}}, {\"source\": \"5I/RxqOeoSM2vBkJK5xS0g\", \"target\": \"F4RdrvgcVitZblPtUleopA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DmkQdDNsbUmmMLkddnQT8Q\", \"target\": \"F4RdrvgcVitZblPtUleopA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"N3NaYvG5XKOWroyCvqHesw\", \"target\": \"V6ERLfamkqdKjMJZjCzbpA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"cq4YPHqoBPScATaVsSLepA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rjs/zx9VNy2E4O4zgmDipA\", \"target\": \"ez0QStHl7M10wuzVy4Le/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NEchXFq2tu9tS/CqClXlpA\", \"target\": \"z87YcajMpqL4GGWLPrXKxg\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"2kIv0pAaPg+lCtT2KEMNpQ\", \"target\": \"IEvjI9DghsvK8rqHLAZbXg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2kIv0pAaPg+lCtT2KEMNpQ\", \"target\": \"81+dJ4sVb2xeMz9c6Y6C0w\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"1qh/9xi047BN/ZyQnxclpQ\", \"target\": \"qIWaissn6WMBkpy7C7Z28A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/lPcRHuF2uhTIGgw2+RMpQ\", \"target\": \"xmCrALNj7UEjOj1fRMfp6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"gU019BfAhgOxjJPgknBZpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Iat6FJq/KuV7fq2K9pp+pQ\", \"target\": \"ehabqbw4OQYvR5CymUIO2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7Zitss1YyKE3+SZddwmmpQ\", \"target\": \"H07w+dzMUBY1Tb8aYnul6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib9VmFqcj1KqsdJi47OwA\", \"target\": \"lBfTM/Eoboj+//nPf9zJpQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jW7V0TO2LoawsPs4sppD9g\", \"target\": \"lBfTM/Eoboj+//nPf9zJpQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"S9GxuuDfsxmez0fF6ZXspQ\", \"target\": \"xFsftJBws+g1Jr8swvaNwg\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"O2g6a2KDuS1JDS3sgw8Rpg\", \"target\": \"qmYAqbFNd0dcizzEDHwK8g\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"3CeBf9rBRUJJEl8QTxljpg\", \"target\": \"5vOpbU7kc21gWGoUtU+Zyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cVxbSsxe5G7FPFo48Ed3pg\", \"target\": \"zIMloag8qUWv9b91U8kx/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h+88TEDu69e76yofbFUC7w\", \"target\": \"v+ziDzvyBQV1LUNcBLWIpg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WIaFpd9DG91pxpUvdtrAuA\", \"target\": \"gaZmAfZSztu7UH4Ebeydpg\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"QNWQjbSyenj1iC2Ps3Vmxg\", \"target\": \"TtIAgvnQmh/5T/BJWJrIpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A19d8KuXAfS9rBJ1oUTVpg\", \"target\": \"tL8Oc0Tm9BAb2WU2KCrC8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eof82uJ+FIvvh5PWSJZF3w\", \"target\": \"tK2U2fHkt+0EQze0I6bypg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OkpZWWmaKw6a1Opzusv4pg\", \"target\": \"TgyNoh7F93CAwdFFP4NWvA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3SYvUVF2OJ2vB3PYtfYK1w\", \"target\": \"OkpZWWmaKw6a1Opzusv4pg\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"ZjABoGhX7FZn8b7BhsAApw\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"ZjABoGhX7FZn8b7BhsAApw\", \"target\": \"b5hCRi7CHNEVt5U7QPDY3A\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"kpts1Dex2CaSJVU8vdHE7Q\", \"target\": \"yxl4OOh3O2731r1L3Okxpw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"vK+M4+nZPjX8OiBYzftzpw\", \"target\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"a00EzNZRMAgZFXLOFn2jpw\", \"target\": \"x9R/caK7uyrvHrdoHKuZqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AwPAXKgosGfgMgf3zbXw2A\", \"target\": \"a00EzNZRMAgZFXLOFn2jpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"60YEmoj201+d8wCne+DOpw\", \"target\": \"Y/HkWrJ/U/Bxbdr7NgH3sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZPZgl2SWzho28I+rPXI85w\", \"target\": \"mcdYiG6tbhQYd9JW+Bfqpw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"SmyQ4JHD7+SEeH4ITXT13Q\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UmPwQU3QXSrVekUbTxop9w\", \"target\": \"k/Jdwpp3Umlr6sbzTbLtpw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2H8qGfkq5FJFrwm6c6dCrA\", \"target\": \"g40CLRrS7h0f2KDwtQT/pw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J3IwN77QI+uhaJkmHUl9rA\", \"target\": \"z1X5qAdMM3gOJSTmzr4HqA\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"IOl829hIWWsSYYNSeFTw/w\", \"target\": \"NyPKUTLm1jwUANNoIQoIqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6sR9fgv8OAB5rOrZEqkQqA\", \"target\": \"vxral90saOW+72B9xdDaxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ESC0HxN2+18/OEVFpNgDtw\", \"target\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"target\": \"nRGKdSUZWr/RPx5aNVjOug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aNKtA7iq1FYEJ6bLoj+s2g\", \"target\": \"lfvE2dJVuc+1AoU2qJcYqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1IsjuWLfsWa9UTyKGAheqA\", \"target\": \"bBf/i8CpRj7/MKQGf3PcZw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"owBvkBaADHkAd2yCVArPug\", \"target\": \"tDEpAM/I1tgxpqK7PolgqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"tDEpAM/I1tgxpqK7PolgqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XXYop3GzPhl9y1ZdDhb0/A\", \"target\": \"tDEpAM/I1tgxpqK7PolgqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"79ZVec1G5s0cAdAPbGh7vw\", \"target\": \"JFsTmh4xEffCA34Bwl9sqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8ay8Jub/jSdSgmTtDJKJxA\", \"target\": \"JFsTmh4xEffCA34Bwl9sqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0QIadK8r6HxNza6Ny+h+qA\", \"target\": \"i1YhmqPsCV5G50aFCHtD+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EARZoqhcKM63G99flR3A0A\", \"target\": \"iMlV9a1op1gNksg4eI2LqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PPSZWersRoR/CWl2j5xK2g\", \"target\": \"iMlV9a1op1gNksg4eI2LqA\", \"metadata\": {\"weight\": 45, \"hover\": 45}}, {\"source\": \"AwPAXKgosGfgMgf3zbXw2A\", \"target\": \"x9R/caK7uyrvHrdoHKuZqA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0vcRHc9EWC9/1eD5IRNO7Q\", \"target\": \"UvwgWrEVRAhIKi90bruZqA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UvwgWrEVRAhIKi90bruZqA\", \"target\": \"WbIwPdpoyybcirBTSc677g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"target\": \"ufljtH2NardpOebKv0f7qA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WEDPEOtHnqBwx2mcLMq81Q\", \"target\": \"ne3mJ4vHAOk3E9IlDOcAqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ne3mJ4vHAOk3E9IlDOcAqQ\", \"target\": \"tEeYd2NRrb/Qi528JuN1+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"target\": \"rfBcOTnoGOUeM+2vyb/r1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"qYX/hJ1iKWEAkuu9BK/y3g\", \"target\": \"r2zO0iJHNjyJbNKU9lwvqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"target\": \"tNJL9Wj9xM3IyYmtsaGaqQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"Xi2Gq8LSXq700zET/00Esg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+4R74YkBh+/ckVo+zCW+qQ\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BJbJMVQIq8Prb7R9KmqRVA\", \"target\": \"Gzzno6mZNPrH0I4Dvc8Dqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Gzzno6mZNPrH0I4Dvc8Dqg\", \"target\": \"S5Ym/doKX4FTQNjJEvtd1w\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"BqRKgn0/xYzfcP4hJf0j6A\", \"target\": \"H+wkAyPI5bSb8Bb+y88Lqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HGOabZuyDH+NWvcni8fIww\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"XFXhSAs5neog+0WBJ2kMqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HR7xM2Gj14hzkZZsBPkwqg\", \"target\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HR7xM2Gj14hzkZZsBPkwqg\", \"target\": \"r1jCxdcEbk+++Tqa6evO1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HR7xM2Gj14hzkZZsBPkwqg\", \"target\": \"I3druwziJ9VuG37wcrxL7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xyt8E9Vly0yzp9vAum9d2Q\", \"target\": \"vtWfeIoNdt2OYL/M/Cg5qg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BzxNAuFyU0u79vAaduSj2g\", \"target\": \"P3m65AjR0i02EPNbMQtNqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4HBkQGjDrY3J6TAqmfqoqg\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"XM0o8pv01Pfg5sFKZWng7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7Puebud1EKEQH/Hg9h7hqg\", \"target\": \"idWTK0b8n3wVMKQEAfsV7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JGCy4XtfSbtbG7+nlw4CtA\", \"target\": \"wq4jS3BQFR4Q7rCcHmTkqg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ohyQWYf1WFaWLvKobSUl7g\", \"target\": \"wq4jS3BQFR4Q7rCcHmTkqg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"66eisG0zlPciGk3M3zXzqg\", \"target\": \"vy0FMq4VqzAmN+15yanvrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XAkVRZGQ94PVTV2tBtEKww\", \"target\": \"lds6GA7YRogoMFggLBQWqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/mv1CYmTOO/we7OK54bu1A\", \"target\": \"PsuUNN4RIxQKVESQlo8kqw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"eaQCvP/g9Lp8gpeddHG80Q\", \"target\": \"kr7eqRr/BUSM/bBJyU9Lqw\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"budk6JQt4FfXRTibqggC/A\", \"target\": \"cT8S0osGv1Yx07xujT9gqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+CMr8Kod/3DtGz10hUou1w\", \"target\": \"vtRcGf0ox/w9MXmiOqN8qw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hGQwGeez8E92ZELQ24STqw\", \"target\": \"uXgRv+EhLbgeoK6stpaXww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1z8Qkaup4fk+PHtX1lefqw\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"fxKELfeW2mmDU7Q7omK/1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LgXU7EwRSv3zHa0Jz5mmqw\", \"target\": \"zVKc5Pn9CM7t8WCnSUvK5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Sl/6PUC3DqG7BDyiBcK1qw\", \"target\": \"iDYq70C/dqdj+xr2nJmR9g\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"dJz7k+gQ7Qf0mGFV/ibGqw\", \"target\": \"nWOJ3KQgDcbnanj95rwerQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I/O27hbD2ZdHsBYgQYVQ+Q\", \"target\": \"dJz7k+gQ7Qf0mGFV/ibGqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Nhtm09YjxapjrWGAhjE88w\", \"target\": \"i1pSrAwriMYqECKfr6rHqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IBWl8vpvhBZxcMDX4Uj6rg\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MfCKTk9Vom6dfNioYSOwyg\", \"target\": \"Ylf9RdfRpsKq0jQzOyXMqw\", \"metadata\": {\"weight\": 28, \"hover\": 28}}, {\"source\": \"NCsCA3Mx7MjieYPd2Ajzqw\", \"target\": \"if2uIOOYU984PgU0edHV/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7bnu1kXLvO3ak/QRfIZKsA\", \"target\": \"DQtysVHWuXq+1/X7I2IIrA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8zxchcDckT1281RKsWBF3w\", \"target\": \"DQtysVHWuXq+1/X7I2IIrA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TH6yeUquRV0AJfYGgRgOrA\", \"target\": \"YsX1xoG1Sju1MtguNdicyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8FaU6NkPlqE9UM1z6SSa7w\", \"target\": \"N9riAVATY34jHBt90TQZrA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"P2b8M2H2fyyW7W9aSbMdrA\", \"target\": \"i/z/xGofuxrTidxvAudKtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hy9P4OdYnBfVowDKaFx75Q\", \"target\": \"x3FbWy/+P9rQmLGTqJtFrA\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"bHlug9FuJiSNo/yQC0I/uw\", \"target\": \"mlnfnafl4/KzepBre697rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NIRt1zkakp48vUkF6P18rA\", \"target\": \"X3iS8Dq3cq8It+tMVZGR2A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"NIRt1zkakp48vUkF6P18rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"V42JQgL0mjSlYRIaBgRe1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PuWM2tbLWJu86IYmsZO2rA\", \"target\": \"w159VscyStCfuNPVMuBj8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Uehy6uzLhVLgSMe+7wQ9A\", \"target\": \"/A9R0/Ho6dHtwDu+uzPzrA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"hpIBMXHnjQ7uDbzVv376rA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I/O27hbD2ZdHsBYgQYVQ+Q\", \"target\": \"nWOJ3KQgDcbnanj95rwerQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NDxIQcbkXhjk9VSfn5PNrQ\", \"target\": \"NSXGAgdB/FWrkkUOClxL6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NDxIQcbkXhjk9VSfn5PNrQ\", \"target\": \"f1nU9QKf5radbUNVzHHM/g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EZ1Uxbd2GRWzoNGSb6zYrQ\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EZ1Uxbd2GRWzoNGSb6zYrQ\", \"target\": \"iFxq8blHvCT13CeFg1Uq9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nZemi4L/TnUeky0vAf+euw\", \"target\": \"pZ0Nmh73qFc71JEMfbUOrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QH5V8o2q1ky152gZ2ALSxA\", \"target\": \"pZ0Nmh73qFc71JEMfbUOrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UOJIpTijHzZsoiQk7xwzxQ\", \"target\": \"mweUiILAkdAuuG85MxZPrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MAk0Mt0s1sgQXxtIyhtorg\", \"target\": \"PX0uMM9zOfkfjyAq6RMg9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mblVkBMEnDTwMTEpwh5sA\", \"target\": \"OTbEze7cZgrnpeMfdrKLrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wDxYj7DcItX8ETmJuSwww\", \"target\": \"OTbEze7cZgrnpeMfdrKLrg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8iXe8Rxo1mY3KR7nSIb99g\", \"target\": \"X5dyuyZq3obza709mjmSrg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bDI9Og953C9gM6mQqrsd2A\", \"target\": \"dX/TaBHa6EarDLBexxa0rg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dd7eefikHh3XghSL4DEArw\", \"target\": \"O4Kq1VZwa577rE7s8Hg7yw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Dd7eefikHh3XghSL4DEArw\", \"target\": \"x6k18KHyhLwDGjL9tJ1o8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3u1aNsidFHNxWqY7cr0Mrw\", \"target\": \"gfaga5/1riUiud+prjow1A\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"Mr5ZLOeckoL3eb323kIQrw\", \"target\": \"eRiEisBwuuYVtjRVE01srw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Mr5ZLOeckoL3eb323kIQrw\", \"target\": \"QTDz5cNKcULUP3W4OR7lrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"dUP7AahGpOkDnORHDuEzrw\", \"target\": \"eRxPWjT//2+yUjJyJK+N7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"eRiEisBwuuYVtjRVE01srw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7pcApyi0C63xSascCt1wrw\", \"target\": \"qcL9ytXQGVZEzfmjivkj1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"luYw49ThXPmJHnnREMyJ3A\", \"target\": \"pvS7Yyc5fiUtVQLhhblzrw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"92gCbscZjdcp5CNIO3Cd8Q\", \"target\": \"OedMXRR6GuunUdLE7Eirrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ut/cnsk0Y1yuS0FtNMJBwg\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IpE9fW8G0hjWR87t7DYy6g\", \"target\": \"VU+2q8p0YeGCqRvta0a8rw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Kzv484GoYuRyMQRePjjFrw\", \"target\": \"s50Uk1EXn+VMFjiSTbju+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"VmQJ9aObfF5IkVpEqtWhtQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"pMfrOXJD/g4uwkoIH3y23Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTDz5cNKcULUP3W4OR7lrw\", \"target\": \"tmZPh+CU+d/qziRFshhf6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6BlHPEWxjD7W/EXGlQA8/A\", \"target\": \"wH4ggU+AeirvEleuA5QfsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3OV376PlBaoLTaGgahvzzw\", \"target\": \"H2tvrSRDcqdQ6JvqtrIzsA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7bnu1kXLvO3ak/QRfIZKsA\", \"target\": \"8zxchcDckT1281RKsWBF3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1wDxYj7DcItX8ETmJuSwww\", \"target\": \"9mblVkBMEnDTwMTEpwh5sA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZ9LMeimyr0YWPJ0IsRj3Q\", \"target\": \"gty2NExwPAbA4hpY0yCDsA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"gty2NExwPAbA4hpY0yCDsA\", \"target\": \"qzW5fohBXdhHaVpKw/wW9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JQF9x7q7foGGWrdOMznT3w\", \"target\": \"nOXqrXnI0km8cLuIHTi4sA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hKQRArjse+VYfHpwz8rFsA\", \"target\": \"oqx1FFwhXdoO45ug5RFXwg\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"hKQRArjse+VYfHpwz8rFsA\", \"target\": \"yW3srrSTsNB2YpFbKqcI4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib1w4wF6mn8TeghQCDHsA\", \"target\": \"lGkpU3/jy713soPYjV1X4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AVpxGqZaxxfHPgUcyd6ByQ\", \"target\": \"hp+xOt3OuPNBJk8fxI/+sA\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"ptb7Z/jjcIXb3g4fWvIDsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"TbsMX0lpn0ca3Jbu0oDj6Q\", \"target\": \"UikPyTd+/Ke0c929axUssQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HMLHgWFAdRQ52AVLutxJsQ\", \"target\": \"T6FkEoQFGILCp+hA8XSk0Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M68E+IUZic0BSnt35ytjsQ\", \"target\": \"PXiKkcZA6z5z6mJS/wWizw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M68E+IUZic0BSnt35ytjsQ\", \"target\": \"gB2Nx5Ypjd0LXJEVbjiV8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6MOzNfjdUIZpKdO5Anh4sQ\", \"target\": \"xRv17OpeWpPllhbTSqIRvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"01UXGd9bYhs21penRlNEWA\", \"target\": \"0fIx7s6vQfun5SPejrOXsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0fIx7s6vQfun5SPejrOXsQ\", \"target\": \"tL8Oc0Tm9BAb2WU2KCrC8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"nSOPa8O+2GmeTc1ttJWhsQ\", \"target\": \"yBjDJxBREU7HWT+JDb5e7g\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"/c8KCzUU8taJjhXPkCEYwQ\", \"target\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"target\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZrfpoL2Fg8iDjrUGpAqjsQ\", \"target\": \"gHJfO8svh+gm3L4Lwbss+A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RIFKqY1gLZsQf+i0P0a8sQ\", \"target\": \"TFGivlNpyvLKfXPJLvfz2w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3Y2XOerDgiAo1WK6+LC/sQ\", \"target\": \"9SJVLkajTeR4POfLrh2KvQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1lNjFkPQft6RLWOT4nThsQ\", \"target\": \"lajlfjCT3uep6UXeChc2tQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Xi2Gq8LSXq700zET/00Esg\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"Xi2Gq8LSXq700zET/00Esg\", \"metadata\": {\"weight\": 16, \"hover\": 16}}, {\"source\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"target\": \"TaIDJ7W1q1QH0q5C5igLsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H0zZceW5WCpd+LBiEJSR/w\", \"target\": \"TaIDJ7W1q1QH0q5C5igLsg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JjdNS7oWxI3B316S3ohBtA\", \"target\": \"f/GYujqRnQGcFVM9i0k/sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"TaylE4VzYn6LbkxhJyE6xw\", \"target\": \"f/GYujqRnQGcFVM9i0k/sg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"w3l9D6GAOJ9N0Lh9dUhQsg\", \"target\": \"wJdydwMBpGIslyVgQAeX/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GFbM1Slh7/TpvUKSCABlsg\", \"target\": \"XiC7FH1g29T+yR+JgexY0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lmCvKTCRZckGDMS8v1XR9w\", \"target\": \"tGIgPpSLABsuqToLwtBzsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H5iyKe8krA9s/HxZ4QqUsg\", \"target\": \"hKruHz9YqELlEfdSiJ2BxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"target\": \"oWaLXqrYAk5+6M57vVGnsg\", \"metadata\": {\"weight\": 22, \"hover\": 22}}, {\"source\": \"SRrPV4MCz83nj7AW/W7jsg\", \"target\": \"z5jHSXyyrX6eDs+IbTIDxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BnBQ+tWug8T5kfIlBJf1yQ\", \"target\": \"SRrPV4MCz83nj7AW/W7jsg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"0mCvCIbvhxPg63+1mNGf1g\", \"target\": \"SRrPV4MCz83nj7AW/W7jsg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1+u3lYKavPRkmHAzpIgisw\", \"target\": \"OYQjpxDqwMzwSyX7tb6pzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9to0DbLdWNSbnCui4ixJsw\", \"target\": \"aLmsFb/9Xz3M4vYoXwMK1A\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"GgV82+Xq+zos6WPdMZgduA\", \"target\": \"molkhmMlDjjrZGVrsSlZsw\", \"metadata\": {\"weight\": 34, \"hover\": 34}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"Q62OQKXh0F0IVOGJ/nxxsw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"g2//Y847Q3iYW+VM33+Ksw\", \"target\": \"xGYjzaN7LnHvZGeHcLTD0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"Iv1TVwC5a8DIOQwR/OdixA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"iLCK0JeQAw5z+bYWs/914A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0sfZ1VUujodibfvXSIi/sw\", \"target\": \"6sNhg3eDE+xREDSk2Lsh/g\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"9YW+EyakNJaWXROQrcCs7A\", \"target\": \"s6vux+bQZlYQHu1lY6zesw\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"iImUqiPNPbAQT9k7P7UswA\", \"target\": \"y4UnH6+f6jsDk+33vZLosw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kdW6Be6DZ17iGHRc72n1sw\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JGCy4XtfSbtbG7+nlw4CtA\", \"target\": \"ohyQWYf1WFaWLvKobSUl7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JjdNS7oWxI3B316S3ohBtA\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1hrZMz4AyL/lrf/OcrBWtA\", \"target\": \"eicDvHwLimEpCXnCzX92tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S99EddmDGE9UZMtGmMlmtA\", \"target\": \"q4j9p9AYZkwSfi18CCiuxw\", \"metadata\": {\"weight\": 18, \"hover\": 18}}, {\"source\": \"S99EddmDGE9UZMtGmMlmtA\", \"target\": \"rlfr5T7gVr1mF/7T01QP8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eicDvHwLimEpCXnCzX92tA\", \"target\": \"xcCz7UtKMNaCiBrVKD9kyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hvQCUOVVWEUK6absn+CyQw\", \"target\": \"qObfBPdskZ/bdJxoI02JtA\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"CbimiVMxuT7pDVfyGcT4wA\", \"target\": \"b0ewlzQFu3FeVzdmxcmPtA\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"7jyOu3xNAXh9K/BlvEEH+g\", \"target\": \"DXapr/UUm27Eyi8aPwWmtA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2hqjTmv4MpPdFdsOI/OY1A\", \"target\": \"iL/YeEnkI5SD8xbo+fm5tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QTkc8476vXtqFJNyISCv6Q\", \"target\": \"iL/YeEnkI5SD8xbo+fm5tA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FuObJ7wvtRHTUJ+/118I6A\", \"target\": \"gRbv2VG/VVde+RVrP7C6tA\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"7DJ1W9saIcI9kuHgRJb9ww\", \"target\": \"r2Exk8lJPGlgrhGDuXbItA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EADV6v6vusn6OhIrZeLLtA\", \"target\": \"kQosw2/KpfaGFP4bb1WZ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"WOAGhCZ/9WsKbxJgIjLktA\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Fk9ODZxwazvx3GbYrh77tA\", \"target\": \"eKr9JVEDRy/wrfqS0kXGug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Em0/xm51jDdmoLNgvocVtQ\", \"target\": \"cyZ5Pkk5ztmXzP61SVHf3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ez3647QFG0wP7lSVpXZhtQ\", \"target\": \"lI/eft/RzEEhzaigNox70g\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"/7xUbAUGrwmRAMULC1yWtQ\", \"target\": \"0xmP5QwkmCYPv1fHz5GSuQ\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"VmQJ9aObfF5IkVpEqtWhtQ\", \"target\": \"pMfrOXJD/g4uwkoIH3y23Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VmQJ9aObfF5IkVpEqtWhtQ\", \"target\": \"tmZPh+CU+d/qziRFshhf6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/bA9vVOFPjpACVu2Rb8t0w\", \"target\": \"27dEDmdur1Zy6ijanei8tQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Lr/YyivEgc6AEL9LZFQ58g\", \"target\": \"uldXPY99tgYVFbIPI3L5tQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kUwvpSYL10SBe4X6VrMWtg\", \"target\": \"lnsdRCpfQaAQ/sNzVzgm3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AT3qrNx2AwwIt990BkGz8A\", \"target\": \"kUwvpSYL10SBe4X6VrMWtg\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"WaZcaQu0SHC/mL5lo4gZ+g\", \"target\": \"kUwvpSYL10SBe4X6VrMWtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tMA277Q1r1Ou54ivdg0ctg\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LIeJPRncazKd2mFj47eC+g\", \"target\": \"tMA277Q1r1Ou54ivdg0ctg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"target\": \"jgf1Fvm43ANS9QKsAgIhKw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"L49IPcN2EYZ4HFO7oiofbg\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"Nxf6Dl2TY1lZ+tAbB1jI0w\", \"target\": \"ZoEO7yjPqksMS2uJ/OWvtg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"giVUGbtk3+U2igTdOb/Ktg\", \"target\": \"sBo1DoKZGqK99B32lYnxuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"giVUGbtk3+U2igTdOb/Ktg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+VLSwuuXCcLbYcRl6hvWtg\", \"target\": \"jl+NiomZ13QCt0ovVOEn1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"pQzwAom3bwB92iB1vA83zQ\", \"target\": \"uWIj0NtbQXifNLvogWFEtw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"earNIEZ8UXTMmJ3RjUfJ9Q\", \"target\": \"uWIj0NtbQXifNLvogWFEtw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R1mcTef8YzRX3Syfonbctw\", \"target\": \"jjUjCBpwp2t9aL7mqYzByA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R1mcTef8YzRX3Syfonbctw\", \"target\": \"VDofsUx8MXnX74THtK8+1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Hun8mOh7jntBJ/XZPgESuA\", \"target\": \"ZfGEvBA0I2qr5e3lQr9r3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ANKXuYblah5Sw/0h5ImguA\", \"target\": \"jU2QIPHqLFIT2TilhstV4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"EOtEMeyM3THrTQQBPf6EHQ\", \"target\": \"WIaFpd9DG91pxpUvdtrAuA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WIaFpd9DG91pxpUvdtrAuA\", \"target\": \"cB4k/wvjlkEyABHiHtqigw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GfyAUcsLzhVQEJH+riPw1w\", \"target\": \"WIaFpd9DG91pxpUvdtrAuA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WIaFpd9DG91pxpUvdtrAuA\", \"target\": \"k5j3NuK3cCPLJA+hN4xu7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"bknqOYp4Vp6LPwQl9RTauA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GFetumiakdGmPB9Is78i/Q\", \"target\": \"bknqOYp4Vp6LPwQl9RTauA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87aowLoWEwEaBtKV8tbbuA\", \"target\": \"wZ45Zz2j32LbhWQfJBEbug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6W3ZK4Q6x6D3AFIqq66p5A\", \"target\": \"87aowLoWEwEaBtKV8tbbuA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5ImV0GwcN4e8Sal+/A7vuA\", \"target\": \"ltr+GVO+GZyWAA+Z4qiovg\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"C4iU4YuGrw2y7Sbvl5ANZg\", \"target\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"target\": \"RmJICEOyIUQIJLdMilO4hg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"target\": \"z1vjzvmh76VXoOkOdHGQrQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"target\": \"PXWig76h6lkyHzjEZPWCrw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1eT/3ivP8O9hgbVBkGCn1A\", \"target\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"Hleul4MTT22k47YOIAou6g\", \"target\": \"It7b8wQL/k5NaAhQ+CMOuQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"DhnulpEPg5r8judUu1mQ0w\", \"target\": \"R/bp+9HeU+cWRe6WcBIyuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R/bp+9HeU+cWRe6WcBIyuQ\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0xmP5QwkmCYPv1fHz5GSuQ\", \"target\": \"hk5NHur/fG7YKEZ7C3poLw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"G0HrHwXCAPzndCm/PFCQ7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4ArNEWYk/HL35UuzBEWUuQ\", \"target\": \"GFetumiakdGmPB9Is78i/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I1Y8y0BN2GoCseNXlNfRuQ\", \"target\": \"y49HkmqZsWWjpBlDEZSH9A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"9dW2s/cOhwx8l3hsM4ujyg\", \"target\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VNrzOIiQ6FNSB1I07mHmuQ\", \"target\": \"WNt4O+KU1Es4d3huye/V6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"sBo1DoKZGqK99B32lYnxuQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8JbF9ap+6Qhiv10Vnu/1uQ\", \"target\": \"fNckhogPhWH5mD6GuOx38Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"H4E5AoIqhz9wh2Kf55g9ug\", \"target\": \"T3l0u3ldOx9jtSUKFA+k7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ARQKqak9qdhuK77IC6wK9w\", \"target\": \"IQM9aWomrU3BEDzBJmVLug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"oyFfCj3XEK2o5kEyMRZXug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9Magx3/mXuyBOVJWMpiCug\", \"target\": \"XQnT/93qqR6fC3YyjNB40A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"89IPAn8CnXhoaYUJqaDq2w\", \"target\": \"VzS48APpJ+ye48pIki2dug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ODLi5SBwNecxZWLF9IQr5w\", \"target\": \"VzS48APpJ+ye48pIki2dug\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"aNKtA7iq1FYEJ6bLoj+s2g\", \"target\": \"nRGKdSUZWr/RPx5aNVjOug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"owBvkBaADHkAd2yCVArPug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XXYop3GzPhl9y1ZdDhb0/A\", \"target\": \"owBvkBaADHkAd2yCVArPug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"u9+k6jrH+a5b7/DyIKv50w\", \"target\": \"yQXzd9q77QzB5sQHjLLuug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CJLO+byWnEBKLAAlusiW2Q\", \"target\": \"yQXzd9q77QzB5sQHjLLuug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CYlt9MHJ4J2C75oqnK5X5Q\", \"target\": \"yQXzd9q77QzB5sQHjLLuug\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"KF5Dbm9cM754JWLe3NAXuw\", \"target\": \"zn3v+4i0Sftl8cICrCEv3Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8FTWC1IrA7HALNPMFE0lwQ\", \"target\": \"BjSMBv/+daH7S+x5+4kguw\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"E3oB2e+vPHG2ZRFYOupXuw\", \"target\": \"bXGpMEzkXLgG31dxALVXyQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X6RG1Kq2oEGyIv4GTBqBuw\", \"target\": \"xkCQC4UuNjDrwruLbTgC9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"W/xMOfCQTNSfmwDOYwfP+A\", \"target\": \"X6RG1Kq2oEGyIv4GTBqBuw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2w6gQx/64oNIN6vPSJkq1g\", \"target\": \"kuxiFPqdl/EjVVqv4D6Puw\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"QH5V8o2q1ky152gZ2ALSxA\", \"target\": \"nZemi4L/TnUeky0vAf+euw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"target\": \"tzXhsMltVbaVhDOHG+D51g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"CbkkslpELDMcPtNI+j667w\", \"target\": \"YMjrrcEOhL2zcqWU1DzUuw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"d+jDWSs2T6c8VQ8BAurfuw\", \"target\": \"voyyn7epEtNpu6dfPTzP0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"OVRrkEa1Qc7kjpyFl1Y7xw\", \"target\": \"pbRt9R8ohIfiCOBUlIbmuw\", \"metadata\": {\"weight\": 13, \"hover\": 13}}, {\"source\": \"UZYf/isTOX6flCmlncT2uw\", \"target\": \"rSNn/s244brhIQqf3dJ++g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X+JG0+UOYlsa2OzMINsA9g\", \"target\": \"sg8bvnXSB8YcDFZaIVK+vA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"pPmXlW2jutvNWlr49riJww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"target\": \"h50AAX/nuP5rE/W++FALzg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"e3FcS3oHYa8J5QfMPcqk5A\", \"target\": \"eA7yDzVXHPNkRVWmCx/8vA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OKTk/onbe2oebWvf+eMKvQ\", \"target\": \"mBGZFsgZHxC73vu9VcF0vw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/3tQ7PX7u87uXADeI4RE3A\", \"target\": \"w3gOMqJKLa4A2gm6BXxyvQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"13NDORsV0NBpE78voJX8zg\", \"target\": \"9SJVLkajTeR4POfLrh2KvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"jnYl9d4UZUupzck1m5Xl6Q\", \"target\": \"mgKH8XgnUmt990hciUKkvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"X7rqqVePj30IkrUqT51Y2w\", \"target\": \"lohttfXsDNw5mIztqHPOvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PWbZ/xn60ZHGlQtufbHz6w\", \"target\": \"lohttfXsDNw5mIztqHPOvQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FaAPoRRoxpdN4btTbs7nvQ\", \"target\": \"QEht9uW34xjqCjer4vFM6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0da62zHZzY1jczHHQ9xvvg\", \"target\": \"vWy0S3JkUaZezamXjZGr3A\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"6nVimOMEXjUysUG7JcyP+A\", \"target\": \"hUqcqGPdKtI69S4i5SSFvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F6YNnTWNiTfmQxsIu88kzw\", \"target\": \"QqHIoi1m6uc9wf5EvV+Hvg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5ecY7ptJ6w2uSJ548yiw2g\", \"target\": \"MNVcFZjSVu0z0JmNCIKavg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cCPz7uMZwRbQ3ki4aClO4g\", \"target\": \"jvBpNSOT9RtSIOth8nCdvg\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"GlcKEh14eBpQ2/SFLeSt4Q\", \"target\": \"z4I7L9x+TFuWyccuF1Dzvg\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"target\": \"XXV6z+C21UqJfmBajVoCvw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0mApAkzVCbCD0Bj419HRwQ\", \"target\": \"RzobwgLknSJL7QUthZojvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"79ZVec1G5s0cAdAPbGh7vw\", \"target\": \"8ay8Jub/jSdSgmTtDJKJxA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RNWd8UAwtRy33uFufI5/yg\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"kY61IiZ5s0vlBeduAWKr4Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"A6KU/qYQ98spmWi6/tD3vw\", \"target\": \"XXYop3GzPhl9y1ZdDhb0/A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NW0G+AcQre0eRgnoS0q2+Q\", \"target\": \"blzjPT0h8JvaEyoeHM0HwA\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"9H4dfR82pf4C6zAX/Kw+wA\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RmT2VUCyBml1MSaKA8p4wA\", \"target\": \"dk6DwZwUWB0ANONnemeyxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LFxJPJkguSiDBpErKUVQ7w\", \"target\": \"RmT2VUCyBml1MSaKA8p4wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"GjAof1RFrIHVKY/0zm3bxg\", \"target\": \"lB94TJC4mHXWf2vZWZ29wA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9TKJBcJAUWfrnzzw+DnBwA\", \"target\": \"kx3qpS4wFrfj4AUSvD273g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9TKJBcJAUWfrnzzw+DnBwA\", \"target\": \"9V9YsR5v4buQUr0rs0XJ5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O+V1EgwBZppu7hmH3BPzRA\", \"target\": \"sMVEDjYAoPnviUTBQoXGwA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7ib9VmFqcj1KqsdJi47OwA\", \"target\": \"jW7V0TO2LoawsPs4sppD9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D4IAw+FEySK1aJafWfn3wA\", \"target\": \"TCY550vk9vsifylpEHU9Sw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D4IAw+FEySK1aJafWfn3wA\", \"target\": \"dBYlPbB0AjpFSwNcAhiN1A\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"8FTWC1IrA7HALNPMFE0lwQ\", \"target\": \"iGZuWn8fO2VU2b3SzmHm1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/2BwrR19KATXpaXvJxGPzQ\", \"target\": \"nuOysH+Mh2h6a7WWgG44wQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5zGaSrpx8N1/soA9uEI+wQ\", \"target\": \"W259ly2a2z+n+NPO0gK6zA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+5Bq+EbFrtKUOjGDiim7zw\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"eVwUCQYDufTRiMXd3gS21A\", \"target\": \"jj5LZioA+7tmT0FTRGN0wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9lUdaW8Ta/z+9ifk2Auzw\", \"target\": \"Na1dZK+2rK5VDYolao51wQ\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"JP3yhcbiuU7ifkiJqEgw6A\", \"target\": \"hL75IBvLbfMhsjCx+1t8wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"hL75IBvLbfMhsjCx+1t8wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"target\": \"r1jCxdcEbk+++Tqa6evO1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I3druwziJ9VuG37wcrxL7Q\", \"target\": \"ICaVjTyTI8LNXqd6cVJ+wQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VkT3OOB9wI/n9zlt+Ulz0w\", \"target\": \"x+lG/kXRYYoK8naWzHS1wQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"T7Bbq1+NkLmIA0EL6tys0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"GolMlD0lgvRnJJ+TP7Iy2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0P3j4CTZ2CVND7f+EofIwQ\", \"target\": \"IQOr8oWTplyMdqllGFB/7g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"iJ1xPU/tcdkxseJn58AG1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1LWVTQ0sTh4Dqh1crhDOwQ\", \"target\": \"5qxQ32uiDgE9ejioUCp3+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IKaWUv1v0QppVoq3jDu4xw\", \"target\": \"QRRaPMkfiJHFc5S7j33XwQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"IpE9fW8G0hjWR87t7DYy6g\", \"target\": \"Ut/cnsk0Y1yuS0FtNMJBwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UxZn34sPt6+EihD5AG9Y1g\", \"target\": \"orA6XdY3CKntCIC/xzdPwg\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"UX3YXL0WCL6Q9XNHkwlVwg\", \"target\": \"qCdC3QwLjV6GYNuI6++H3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/lnJYySQ1nGxJ0pjUAVqwg\", \"target\": \"swp8nA1IIlV5HAlku2M7xg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HA63TWBU2S0+FaXntjCnwg\", \"target\": \"jlP5eV/l50w203+qmY934Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HLd4WCwL+lRguGJbPDTi2w\", \"target\": \"iLKRP/GmekuHICjQTLXOwg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"GcCIv1eDsDxcnxww5BRk8A\", \"target\": \"iLKRP/GmekuHICjQTLXOwg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"f1/jPqUJ3XpKbRc+ulYwww\", \"target\": \"lEBrmAcP30d64NYUuN1gyA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"S0ly3S1BjPwd+7c5UZob/Q\", \"target\": \"f1/jPqUJ3XpKbRc+ulYwww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JI8jNOmizj1lO3NTr2Nbww\", \"target\": \"R6b4LdI57QEcTyehRwfo4Q\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"KUKx56eLLLckf6HhvAhzww\", \"target\": \"ogtreaWirNMWiQt6NBNF3g\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Ek+y8Dv6MgaaKLo1u1FL4A\", \"target\": \"o5hJtnYCQOtp9KjOY9KKww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AohI5f/BkoR8P/9gC7RUzw\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O16OCVveV3Dc1jkzE8jn0w\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Y0HoY3m90f8579jMkh2lww\", \"target\": \"mm6xCo8N6tJFTZMAe4VI1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6U2XGydHRg50tnJ3g1rb3Q\", \"target\": \"Y0HoY3m90f8579jMkh2lww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HGOabZuyDH+NWvcni8fIww\", \"target\": \"rYeKyIqBFeSZKrfVe3KU9Q\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"P1k6r0S9EQbkqpJzRaPMww\", \"target\": \"eYfvAr+UfKq1aCZN2x4y6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"target\": \"Lg63ntVVe/szA2gZJ1zcww\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Mw3Fjxl0YQg8qQs2IadGyQ\", \"target\": \"e+iMIH93HMrK3sBL12/1ww\", \"metadata\": {\"weight\": 30, \"hover\": 30}}, {\"source\": \"Y6tU5iNEDLF6oW77OnXC0g\", \"target\": \"dFSrg3Qo5QNZRbeqFLIHxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AohI5f/BkoR8P/9gC7RUzw\", \"target\": \"E8YPyLkuYOqkvzmDsSIKxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"stZS7egMHVmBbshb4MJJxA\", \"target\": \"vfR6i2mpCYgIbWLbkuX03w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Iv1TVwC5a8DIOQwR/OdixA\", \"target\": \"iLCK0JeQAw5z+bYWs/914A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"I3Qv6bMIp/IVjYk8GS9zxA\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"VQXF0znq/wL8TubQs93FxA\", \"target\": \"az7UoLqYUBxUBYpQRZ+k8A\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"KnQ1veuKdeMziZDzLYjmxA\", \"target\": \"oqa1czMKG9P74MWoG5iYyw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7B3pLJTfNbhA56BMabUB5Q\", \"target\": \"FP3VoLmMd2eZRBobuqshxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"8T1982ymi8ae9f3QJo87xQ\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6suweX+9HNHlp9Z3oC+26g\", \"target\": \"8Axznb3nRk/NprDR3QVNxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Hq0dfG8heMrt8RqXXqpDfA\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"J1g4OQI92LIr7/d8aT91+A\", \"target\": \"atJoIn0HO1lHzEghWBykxQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"bkqQRjjzTNbHJ7cOrH+65w\", \"target\": \"tbqMBPMzgCXgvALU4kS6xQ\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"1qJ9URMSFa7XqetYOgjcxQ\", \"target\": \"9nCaeCCDiSnH0pGj9QBJ1A\", \"metadata\": {\"weight\": 21, \"hover\": 21}}, {\"source\": \"0mCvCIbvhxPg63+1mNGf1g\", \"target\": \"z5jHSXyyrX6eDs+IbTIDxg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ANJirwOmc8zfhtEnI0IYxg\", \"target\": \"lI/eft/RzEEhzaigNox70g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4hgZUR2UUQ4ngEjM6puM6g\", \"target\": \"m/AwurfNm2p5UsvVvLsnxg\", \"metadata\": {\"weight\": 41, \"hover\": 41}}, {\"source\": \"C/zXXUs47IAYnHl6zBhMyg\", \"target\": \"QAZy+ZyHzSGTg21oZbtFxg\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"7+NijVvh9cRhrJcDfe+sxg\", \"target\": \"MVxpMOd/YHo81uKU8J1D2w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"Zvd//MafwP9D03olooL/xg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I8/gD89DiH9csk/ZEjSV9A\", \"target\": \"Zvd//MafwP9D03olooL/xg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"m3X7KkUEpv9j4UzhkoMAxw\", \"target\": \"pQzwAom3bwB92iB1vA83zQ\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"2CCWZd0r/q3XhcVZAzQo1A\", \"target\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"51sIXvwdb1xZwp6D19vL1w\", \"target\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"BhyQqjjixR/Qv6xY8/gIxw\", \"target\": \"l5XDIvoOxlEM5vDuvZb/8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"y64aPRdjU1N+2Egc1mEeyg\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"Ocnr/WOgV9Si47elG1cNxw\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"2LHI1R6SjODg/VQK0mSy4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0pzAhESH4mD8Y7joQlAoxw\", \"target\": \"AheEjR6jraasDVl7HQ0q6Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rv98/nwr9nwQ+Y9/itx00Q\", \"target\": \"TaylE4VzYn6LbkxhJyE6xw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LFxJPJkguSiDBpErKUVQ7w\", \"target\": \"dk6DwZwUWB0ANONnemeyxw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Y8BKm9HLQuNZAEIUJgv30A\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LIeJPRncazKd2mFj47eC+g\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QmC0hKSul+B5fhM04xGv/A\", \"target\": \"vvK9Th+9rfrmK4UXVgr9xw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"S0ly3S1BjPwd+7c5UZob/Q\", \"target\": \"lEBrmAcP30d64NYUuN1gyA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YoguZr7Ht5VTBpiOW2uiyA\", \"target\": \"mcallpj5pQ42vQPCDSTb3g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"FbaFWKwjLhE68HJWltWqyA\", \"target\": \"Vt717tNeUr26Ht7uz3W6zA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9fU7qlQhRR5rhI7dOB+uyA\", \"target\": \"fOMm6Ou37Z2W7aJSC+0sUg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9fU7qlQhRR5rhI7dOB+uyA\", \"target\": \"gvILdsGxoPhTFjabAP3M1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"VDofsUx8MXnX74THtK8+1A\", \"target\": \"jjUjCBpwp2t9aL7mqYzByA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"b2mBfHZKw/7Wv719ImjRyA\", \"target\": \"yXEVx+7BMBM9SJGPv2+Z+g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/6ChykDrOBwRLnasMTEgyQ\", \"target\": \"1iphEBC8RewWM71m3w1mzQ\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"3JHFRc0psawMPSLp7G5OyQ\", \"target\": \"U3v3OOBqhXPTXAhsLPhL9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"91ATqeatEnZnOl7GYatz7Q\", \"target\": \"aXnzSNAt+qU+mwyNUylPyQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"yh404VRB85qtz9EJBxRg5g\", \"target\": \"zdLzAZO8WpWxWxG/u35/yQ\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"lve+wd/wKPyn3CsMesLZyQ\", \"target\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"lve+wd/wKPyn3CsMesLZyQ\", \"target\": \"yA42YJjumsokSSLXucqU6A\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"Q+4EDqYZPaAgWbykhywf8Q\", \"target\": \"lve+wd/wKPyn3CsMesLZyQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Smz1QIvP657gJFJUHLty1g\", \"target\": \"q/LU05EL2cNf9O5N1wNCyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"RNWd8UAwtRy33uFufI5/yg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9dW2s/cOhwx8l3hsM4ujyg\", \"target\": \"WNt4O+KU1Es4d3huye/V6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"M65c5Nr2OwUx4RrgWBt69w\", \"target\": \"dGVXj5FGpjyorj3Kj9HDyg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"dGVXj5FGpjyorj3Kj9HDyg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O4Kq1VZwa577rE7s8Hg7yw\", \"target\": \"x6k18KHyhLwDGjL9tJ1o8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"F5YJ1jose1f1KbLOiCJJyw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"F5YJ1jose1f1KbLOiCJJyw\", \"target\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/wQHIKlt0DWBWTIC94i1yw\", \"target\": \"VPe/WBhgMRDejNmchQGp8g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"/wQHIKlt0DWBWTIC94i1yw\", \"target\": \"U04BOACjO7txW+arJZbh/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b0c1d26mJFr1jSCe2avt1A\", \"target\": \"wvKwvzhvGsDMWXfZrSC8yw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/EfEBO3c5f0+d80AqXQBzA\", \"target\": \"csgs7Ozxjop4sTVUvthD3A\", \"metadata\": {\"weight\": 17, \"hover\": 17}}, {\"source\": \"BmpnjQD2BpL61dVZceomzA\", \"target\": \"gn2FcY9/SrQeM6Fz2Rlu1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"b8fpnzCB7pOsbIrJNam9zg\", \"target\": \"gbLXXnl675hHRZYXyW0pzA\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2WZ+QLWazLW8nSczXoOlzA\", \"target\": \"MtpjJ6XcmH6qPnAjbjY75A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IWWaiBa/jxZXyRG8dtN64Q\", \"target\": \"pLV1jlhExMm2ObkllrzYzA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+Tr4VhOKdmGJNou32+26TA\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"X2tMjZDabILeP8FJTJQK2Q\", \"target\": \"qLy1jkLTCyqKit0JxLE2zQ\", \"metadata\": {\"weight\": 36, \"hover\": 36}}, {\"source\": \"earNIEZ8UXTMmJ3RjUfJ9Q\", \"target\": \"pQzwAom3bwB92iB1vA83zQ\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"49HrxjOtiYvNOAd8M5Mqzg\", \"target\": \"pegI6X4Bu+bbTMgjISqE3Q\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"NbdJmnny6VadnVE/Q5dqzg\", \"target\": \"Qy0hhxrb9Nmf8+xAUfVp/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"265feNjxTzIMZ8+BKwy4zg\", \"target\": \"cCmG6cRvUcKWgi1UAH9g0A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"sbcB52eztAxnw3afxfrTzg\", \"target\": \"zA4lrOvjqTMBfQi5rlOm0Q\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"iK9ayHc/AXaY84l64fm17A\", \"target\": \"x9l1iZoSvc1rG7jjV28Vzw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CIEk6rJ4pzoVNKDg6ks8zw\", \"target\": \"ZzXKeIKTxEylrN333Zct1Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"wB8RZyqeuxAqTlG1x5Ld0g\", \"target\": \"zANMFHvfDmlolnGwAg6Hzw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PXiKkcZA6z5z6mJS/wWizw\", \"target\": \"gB2Nx5Ypjd0LXJEVbjiV8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+5Bq+EbFrtKUOjGDiim7zw\", \"target\": \"eVwUCQYDufTRiMXd3gS21A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EBC83dLOPfyZ6CgyHfS33A\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"Sa3pdyOhhVraK3JVehnezw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UIT/M2z73PBRJtArUS6Z0A\", \"target\": \"s1Cp/MWD2ItYJBSRuQDQkA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UIT/M2z73PBRJtArUS6Z0A\", \"target\": \"zxkZsCPuXUWUsF7xYiXRsQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UIT/M2z73PBRJtArUS6Z0A\", \"target\": \"lwXZItcbXUc7Z5GW8Cyu7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"YcbMC6X7w3/ZbkRqHX2Z0A\", \"target\": \"eaQCvP/g9Lp8gpeddHG80Q\", \"metadata\": {\"weight\": 20, \"hover\": 20}}, {\"source\": \"IQOr8oWTplyMdqllGFB/7g\", \"target\": \"T7Bbq1+NkLmIA0EL6tys0A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BA9DMxaYbrqyBsAxrrvV0A\", \"target\": \"uJErBUOzWSgxAO8FydYhBw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"QmC0hKSul+B5fhM04xGv/A\", \"target\": \"Y8BKm9HLQuNZAEIUJgv30A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"JARaDTo+BmuRHMBD03pY0Q\", \"target\": \"wVc80t3sNC598XKNFbIp/Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"LAnZCtjOl2bhcv2vZlGOQA\", \"target\": \"eaQCvP/g9Lp8gpeddHG80Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PyEwC8P2XWgBNOn//O9W6g\", \"target\": \"RGjlmlPAkXa/tI12Y6I10g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLTeNonoRsfy6pTZgfM80g\", \"target\": \"S0cvWu7kth8Hv99QFfiW4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"D9pzXh+m3X+Q11g+VAoQ6A\", \"target\": \"DLTeNonoRsfy6pTZgfM80g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"RY9tUqtEDoNHUOJc5OdH0g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5I/RxqOeoSM2vBkJK5xS0g\", \"target\": \"DmkQdDNsbUmmMLkddnQT8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"cs5JGUqcJ2G/Y8pV2hyj5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"3oN+IYemYxHjZVZXo2ll0g\", \"target\": \"Ou1odl5Hnptn3TUh/Xnw9Q\", \"metadata\": {\"weight\": 38, \"hover\": 38}}, {\"source\": \"nrmey3lo5Rp0gzeNirbf+w\", \"target\": \"skeECVWpQl8ufmsJtEK60g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7wGu38lzo0Yvxy5GLpCk5Q\", \"target\": \"kR1PDrgpN92D90eUdVDO0g\", \"metadata\": {\"weight\": 33, \"hover\": 33}}, {\"source\": \"v4fMIOFhdBvfKZW3Xyfg0g\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"9kEfT969BAAcMsgbk9Cq5g\", \"target\": \"MG00eunxEmm1lYvM3jWA0w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"MG00eunxEmm1lYvM3jWA0w\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"hKdbfGbrvmmwC8+BbLia3g\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"lWV7dsxEgrpNNl2b42CB0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"5md/MVOxk6Lw2Tjacf6D0w\", \"target\": \"X9cbaOn+LnG2DAfiAe2aOA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DhnulpEPg5r8judUu1mQ0w\", \"target\": \"c6l/6JPY8da2RBVQz7qV/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"target\": \"jV2svVJMSyO+sjV8yHa59w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"UEABfE8qoDx/6OkC1Vzl0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"O16OCVveV3Dc1jkzE8jn0w\", \"target\": \"mm6xCo8N6tJFTZMAe4VI1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6U2XGydHRg50tnJ3g1rb3Q\", \"target\": \"O16OCVveV3Dc1jkzE8jn0w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CJLO+byWnEBKLAAlusiW2Q\", \"target\": \"u9+k6jrH+a5b7/DyIKv50w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CYlt9MHJ4J2C75oqnK5X5Q\", \"target\": \"u9+k6jrH+a5b7/DyIKv50w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aLmsFb/9Xz3M4vYoXwMK1A\", \"target\": \"xFtvUt54mWyK6jRKl1JzxA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ECrXW4TwKkiq0yhDSQsg1A\", \"target\": \"iZG0kK83mAwI7l40kRt+/w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"2CCWZd0r/q3XhcVZAzQo1A\", \"target\": \"51sIXvwdb1xZwp6D19vL1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6U2XGydHRg50tnJ3g1rb3Q\", \"target\": \"mm6xCo8N6tJFTZMAe4VI1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"IaImK3Wfmh8zprJ17Fuz1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HSXYunXnU735XSqPVXaV1A\", \"target\": \"Smz1QIvP657gJFJUHLty1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"HSXYunXnU735XSqPVXaV1A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2hqjTmv4MpPdFdsOI/OY1A\", \"target\": \"QTkc8476vXtqFJNyISCv6Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"I3druwziJ9VuG37wcrxL7Q\", \"target\": \"r1jCxdcEbk+++Tqa6evO1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"jkpvxKRjEj8FPx3tXIoH/Q\", \"target\": \"z/TAoZvzjf2wvlusVBnV1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"OPbynxn1A1QV0hBtvMlC5A\", \"target\": \"b0c1d26mJFr1jSCe2avt1A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rUmPGQXYQ01oDAOVKdAA1Q\", \"target\": \"uYfni3DsnHLywrApmbU6kQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lvthtbal/X6FAsz6GwDo2Q\", \"target\": \"rUmPGQXYQ01oDAOVKdAA1Q\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"UBvzeFzQMqnE1mhmQnp41Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"UBvzeFzQMqnE1mhmQnp41Q\", \"target\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aR1c8SzxQDZLCwWHtvut4Q\", \"target\": \"pw1Urc5iVfS4y0uLi0eh1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"WEDPEOtHnqBwx2mcLMq81Q\", \"target\": \"tEeYd2NRrb/Qi528JuN1+w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fxKELfeW2mmDU7Q7omK/1Q\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"fxKELfeW2mmDU7Q7omK/1Q\", \"target\": \"zVKc5Pn9CM7t8WCnSUvK5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0dPQX4HZuIcEoHZnu61i2Q\", \"target\": \"KT2hNItJ3A+7HnNu1Izt1Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"HX5tAgQbmKUs5gGEs/gx1g\", \"target\": \"pOLt7ElwS+F5q/0I72e28g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"lTy5ajnv+ybkdhf/wEdD1g\", \"target\": \"ttNA9EtrRO4vzKDbSnXp8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6m9tGrKN+j3fMpyWX+dk4A\", \"target\": \"Smz1QIvP657gJFJUHLty1g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"SdLACOA5NHzMq25kxSWf1g\", \"target\": \"pQboYj1uZMjFOkzVaqCR/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"nIgO2SB8550Bt4Vxy2bC1g\", \"target\": \"pTMybSugouBc0nZLe/g+2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RZ1gq+G6Ry3quch8vo8E+g\", \"target\": \"ZUTxzdQNHeX1I/vY7OUf1w\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"YXIjTDE6sJvw8Ctchvbo1w\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 27, \"hover\": 27}}, {\"source\": \"qYX/hJ1iKWEAkuu9BK/y3g\", \"target\": \"rfBcOTnoGOUeM+2vyb/r1w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"target\": \"D4NrVD7YBPxfp97z+4wK2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"sT+BTCOHCbs7CoM2rk4zAA\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"7D9a/qbeWge1uN9fmApJ2A\", \"target\": \"9uuEGhRv+nnRtMzAzjB2Sw\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+ko4YzNx60P+2xghNILs2g\", \"target\": \"7D9a/qbeWge1uN9fmApJ2A\", \"metadata\": {\"weight\": 14, \"hover\": 14}}, {\"source\": \"eSgl7OxOKLGg4wMgFP+C2A\", \"target\": \"rwxpB8UX/weoLJqfaRmJ/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"X3iS8Dq3cq8It+tMVZGR2A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"fl4EFQq7n5+GbI3MLNGA6g\", \"target\": \"h+D0DMg6qkCwcplM2Gqo2A\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"lstYZJhfvS9jBG5xm+8U9A\", \"target\": \"nks5WSx4QKKAPQCWyIn32A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"cHPtw67C6L5578ABzu9m2Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cHPtw67C6L5578ABzu9m2Q\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"CJLO+byWnEBKLAAlusiW2Q\", \"target\": \"CYlt9MHJ4J2C75oqnK5X5Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+lVxYLjIFO+Ycwih/VOi2Q\", \"target\": \"iiHdIj3dYCnLmrkXpUxV3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+lVxYLjIFO+Ycwih/VOi2Q\", \"target\": \"xbWKQYE6mafD8ye2m0H89Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Df0dOb7XVmqj7vlzc20y4A\", \"target\": \"M28X/3X9XhtMKEhs+6oP2g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"HHgt/4RevkljghcN58sE8A\", \"target\": \"M28X/3X9XhtMKEhs+6oP2g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ORocJgkETt4cgx7zJX1m2g\", \"target\": \"eodI+fnS3UzxZQs/glMJ3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ORocJgkETt4cgx7zJX1m2g\", \"target\": \"aPDfJ/RktssG6+PgDXeC4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1OrWmmA6yMO4aEFHG0dy2g\", \"target\": \"YSeBLUEND64U5fx2jVt88w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AC7hxczsJaJ2uIOIqoo66Q\", \"target\": \"TO1aIK0+tIq16RepokHF2g\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"RdHJ6h70jpiHt3m/vAPL2g\", \"target\": \"vxqJKZeQ2Vvx7xXFybjU3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"PWbZ/xn60ZHGlQtufbHz6w\", \"target\": \"X7rqqVePj30IkrUqT51Y2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DaTobGDBd8qNG33vbIxl2g\", \"target\": \"qjM9bPDJ6Esfd1jc9Zuv2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DQOcWsYX6ai57NZ4jqyY5w\", \"target\": \"qjM9bPDJ6Esfd1jc9Zuv2w\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"GcCIv1eDsDxcnxww5BRk8A\", \"target\": \"HLd4WCwL+lRguGJbPDTi2w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"89IPAn8CnXhoaYUJqaDq2w\", \"target\": \"ODLi5SBwNecxZWLF9IQr5w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"5uLj1jBgYrE5DbDDhJXy2w\", \"target\": \"I8/gD89DiH9csk/ZEjSV9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aPDfJ/RktssG6+PgDXeC4Q\", \"target\": \"eodI+fnS3UzxZQs/glMJ3A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"qvgHYr//5UeK5A/rGOI+WA\", \"target\": \"rL3sQ4Ur3tQNivSu+s+A3A\", \"metadata\": {\"weight\": 7, \"hover\": 7}}, {\"source\": \"Jk7T08xaG4CWAcdaiJqg8A\", \"target\": \"vWy0S3JkUaZezamXjZGr3A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ad2FQPLN06d20a77mVj34A\", \"target\": \"EBC83dLOPfyZ6CgyHfS33A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"EBC83dLOPfyZ6CgyHfS33A\", \"metadata\": {\"weight\": 10, \"hover\": 10}}, {\"source\": \"EBC83dLOPfyZ6CgyHfS33A\", \"target\": \"SW7VFc8aTUoC/Mh9jAjh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BZ9LMeimyr0YWPJ0IsRj3Q\", \"target\": \"qzW5fohBXdhHaVpKw/wW9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pMfrOXJD/g4uwkoIH3y23Q\", \"target\": \"tmZPh+CU+d/qziRFshhf6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8WN1NiIQPhTV+ZS87Mq43Q\", \"target\": \"M65c5Nr2OwUx4RrgWBt69w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"V8ksPyfaupEEfgw8dUrT3Q\", \"target\": \"felsQ1UdIZxKSSJZnxxh8Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"SmyQ4JHD7+SEeH4ITXT13Q\", \"target\": \"UmPwQU3QXSrVekUbTxop9w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"XOw9Q1YxcvuhPXdiOGJMGA\", \"target\": \"wBpP5H4NcclejiuYfAsH3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"hKdbfGbrvmmwC8+BbLia3g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9V9YsR5v4buQUr0rs0XJ5Q\", \"target\": \"kx3qpS4wFrfj4AUSvD273g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"91ATqeatEnZnOl7GYatz7Q\", \"target\": \"wgnKCuVk0397zKbR5iz43g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"WaZcaQu0SHC/mL5lo4gZ+g\", \"target\": \"lnsdRCpfQaAQ/sNzVzgm3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"BXpeYYaO1qQF8B0NEv4r3w\", \"target\": \"m6ZpojGcm6og1aNvWaJL/Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0t6hQrq58/AjvNmfKQJA3w\", \"target\": \"OGLpzE/fuAIm0bGjkjrnIg\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"0t6hQrq58/AjvNmfKQJA3w\", \"target\": \"zs/qGBZegqxG9zpefbXLew\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"target\": \"bPIwjFI4aO3BnDDiSWmD4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"AvVCWm591ZvQ6DEW2qb+6Q\", \"target\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PL1tDqyryL2f0TlTwStn7A\", \"target\": \"RM6AZcUBqJk+lS+c9+dB3w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"iiHdIj3dYCnLmrkXpUxV3w\", \"target\": \"xbWKQYE6mafD8ye2m0H89Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"h37mnRkwndeMxNuIzr0k+A\", \"target\": \"w7AN2URAar7AQyqiyJ5h3w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"IzWwQQvk67Hujjt0zNQ74A\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"4znuuTThxX8nevY99oHk5w\", \"target\": \"IzWwQQvk67Hujjt0zNQ74A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Arwkdm13CeJyyFNcAAd37A\", \"target\": \"IzWwQQvk67Hujjt0zNQ74A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1Obr3k6eda+LMdvKYYeK8Q\", \"target\": \"2af10RCETu3QPCGmsHF+4A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6jhFejUN6c7Aff2g3e674A\", \"target\": \"vlSMwSjwxW6VB+DOD3V94w\", \"metadata\": {\"weight\": 23, \"hover\": 23}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"Ad2FQPLN06d20a77mVj34A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Ad2FQPLN06d20a77mVj34A\", \"target\": \"SW7VFc8aTUoC/Mh9jAjh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4t1AHK2HFYcR5D9nIC0Y9A\", \"target\": \"j6By1U2pa9tCpe2vghUI4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"75GLam0GiNbHonLi9pd/4Q\", \"target\": \"M3mzslSGFKL89Hr6jj7Y9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"FTana0mhDAQ7pDlNgeTo5g\", \"target\": \"nNdeLertJElPQpss2WS+4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"eXnfZLXLieBorLzxKlLM4Q\", \"metadata\": {\"weight\": 35, \"hover\": 35}}, {\"source\": \"+tWCi7UnnHlKpwgxsZYw8g\", \"target\": \"R6b4LdI57QEcTyehRwfo4Q\", \"metadata\": {\"weight\": 9, \"hover\": 9}}, {\"source\": \"9Vql7Mlk/vvWRyGpTsvc5w\", \"target\": \"ze9Ajo7bQIrDR2Q61Vkf4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AvVCWm591ZvQ6DEW2qb+6Q\", \"target\": \"bPIwjFI4aO3BnDDiSWmD4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PL1tDqyryL2f0TlTwStn7A\", \"target\": \"bPIwjFI4aO3BnDDiSWmD4g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"D9pzXh+m3X+Q11g+VAoQ6A\", \"target\": \"S0cvWu7kth8Hv99QFfiW4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Yxer1BQHw8ayI4coIJWc7A\", \"target\": \"qKdc7yaOfDNQ3Ioddlqw4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"2LHI1R6SjODg/VQK0mSy4g\", \"target\": \"jHAJcxhvB/SV+T/mOYoN5g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1swWkYMcwILy7Fx6Zpvz4g\", \"target\": \"X+ETh+ba1MHT0Np6yw/i4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DLqvxwV6cLRbZzV/S6ce/g\", \"target\": \"XsBDmmlxAWof97JjGRrn4g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 11, \"hover\": 11}}, {\"source\": \"tPGsf2lNyo/YwJKk//Xn6A\", \"target\": \"zt6YnIKyd/GMP/yZsi074w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"target\": \"sJ1m92koFlNMH0NSe7dO4w\", \"metadata\": {\"weight\": 26, \"hover\": 26}}, {\"source\": \"+XX4ipo2EDh1Vw861N3B7g\", \"target\": \"8WlJWpfvSrkQ4/HN21rW4w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+cNenZQZhgXXSMyomN525A\", \"target\": \"wXuMAPhfrJpUDgsV2ojS7w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Crhp8YifQTQDrSTRS7ZX/A\", \"target\": \"yow/PWjTeFNHBFPlDU175A\", \"metadata\": {\"weight\": 29, \"hover\": 29}}, {\"source\": \"r+f8AzuIChCT+43z1V4r+Q\", \"target\": \"z+Erzv6FAAAlpHglkqjD5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"JboAWyXnCoash2wb7PAb7A\", \"target\": \"nQbo89EjFqendC5KI+7G5A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"R9reG8IlWahr3kb1OVLP5A\", \"target\": \"ya2o5/Rbz4LKL7fJB/aH8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"4znuuTThxX8nevY99oHk5w\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Arwkdm13CeJyyFNcAAd37A\", \"target\": \"JsbwtB1EcoPAvi4PBiPR5A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"rqiARZpwzVbzZK73amgN5Q\", \"target\": \"zVKc5Pn9CM7t8WCnSUvK5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"iFxq8blHvCT13CeFg1Uq9w\", \"target\": \"rqiARZpwzVbzZK73amgN5Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8+SDMPAJnM5smfsvJtvU5Q\", \"target\": \"aU8RxAk5dpz79KvpKp2W7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ghJksWt+/t2VYaCzm/Qs+w\", \"target\": \"xYqY6+nbtRNwS10J4bsI5g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"1TyGrvk8SzqnwelG70YR5g\", \"target\": \"fNS5Dg9E+rY2v60BUkcE9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9kEfT969BAAcMsgbk9Cq5g\", \"target\": \"sC8E7ogEQy46R5hXT18S7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"4OBgakItKw3fodKU1F695g\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"LRlDXzrTF6Ri+zf9byUDng\", \"target\": \"zF5RWzd/hWtBb1PxEuX85g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"tPGsf2lNyo/YwJKk//Xn6A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"1GcyNvq3jZbe4TsvLsCH5w\", \"target\": \"3vOibLjBb4VNYZOlRffs8g\", \"metadata\": {\"weight\": 25, \"hover\": 25}}, {\"source\": \"4znuuTThxX8nevY99oHk5w\", \"target\": \"Arwkdm13CeJyyFNcAAd37A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"ZRNoNQxBeXtO+lXWqSXw5w\", \"target\": \"gHJfO8svh+gm3L4Lwbss+A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"20HOk3v2PjQqD5WCqjcF6A\", \"target\": \"MauRd73SPuaI/SsIA8Wh9g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"B6rKl7EmbpqDIvSaOn+W8A\", \"target\": \"JP3yhcbiuU7ifkiJqEgw6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"QEht9uW34xjqCjer4vFM6A\", \"target\": \"iiF7p6VpUVIaVpsvU3UB+Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"tgKSJys3w/UaHo4Ysd+Kvw\", \"target\": \"yA42YJjumsokSSLXucqU6A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"G1snS5Vz0lVn2WsUSlOh6A\", \"target\": \"SU/6PQhlsHPBRc4pxcQR6w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"9el4Yb1FIodeYe4QeztY8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6woUhm96mgbzRsURDIij6A\", \"target\": \"zmKJzX//sBLtc3CjqO6M8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Ri+0Jy7gEDnrphImzdan6A\", \"target\": \"u2at6zf9OYlpg8Ts5KiK/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"h6LTY3LaaE6dWUsrCOYj/w\", \"target\": \"rToxk4r0uYkTlZK66ha06A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RrwVqK/gCHzzTMUpXDhB6Q\", \"target\": \"TjSWBmQ46SH6wSdnCe5g8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"AvVCWm591ZvQ6DEW2qb+6Q\", \"target\": \"PL1tDqyryL2f0TlTwStn7A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"RuZEZek+dIdNb16T8TQk6g\", \"target\": \"uutpyYx9BmxXdQaPX/yA+Q\", \"metadata\": {\"weight\": 37, \"hover\": 37}}, {\"source\": \"DjoWz5wRHMv7J5CcM1FN8g\", \"target\": \"WMgcdy+BnPYK8Xma4/5A6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"J9lncln67Ektsz70Jz1s+Q\", \"target\": \"O/m49NG+OSq7jZLZYq9E6g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"+vQfJbdbrfUr7z53avxu8A\", \"target\": \"KlNDoIf7EQkwaCaUTuTr6g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"PnXhu4rcpkk+qyLW1koE6w\", \"target\": \"rZdJjoqtPTUMWxcXz3eV7A\", \"metadata\": {\"weight\": 24, \"hover\": 24}}, {\"source\": \"NSXGAgdB/FWrkkUOClxL6w\", \"target\": \"f1nU9QKf5radbUNVzHHM/g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"EtI18D9Vh8zUwjfqDOPC6w\", \"target\": \"H0zZceW5WCpd+LBiEJSR/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Yaj5oRg5gSr4WRlWPo17g\", \"target\": \"Q67OfOXxwmAszDzGwwMu7A\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"Q67OfOXxwmAszDzGwwMu7A\", \"target\": \"cinjXKTI9MAJtco6S1n+9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"XM0o8pv01Pfg5sFKZWng7A\", \"target\": \"idWTK0b8n3wVMKQEAfsV7Q\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"c6l/6JPY8da2RBVQz7qV/g\", \"target\": \"xJ4etXa+11viKMelSA2I7Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"G0HrHwXCAPzndCm/PFCQ7Q\", \"target\": \"zasWMA2ujUekpJ/0C/VH9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Yaj5oRg5gSr4WRlWPo17g\", \"target\": \"cinjXKTI9MAJtco6S1n+9Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"bbF+fMAX0AmPgTF5bjA0GA\", \"target\": \"q7vfrx1Y2yIt4jU/MTVU8A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MJMUTT4JMMSyMzSkOKjr+A\", \"target\": \"W08SC5+MMRtUmoI8eb8p8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"kbys4oCqW7mu52nFXjihWA\", \"target\": \"xRIZCO6SRfXLOE0+vaXu8Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"3Ng3uPfQ3DOyUb7bZW0S8g\", \"target\": \"SW7VFc8aTUoC/Mh9jAjh9g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"84cQ3j2fcrmCy4xje6xR8g\", \"target\": \"SqG/l6IbODdXxSygyTzS8w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"Rtz5xYqf3eobdXs3wUh79Q\", \"target\": \"rxcVniLDqVaT6evzgA+m8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"U04BOACjO7txW+arJZbh/Q\", \"target\": \"VPe/WBhgMRDejNmchQGp8g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"pOLt7ElwS+F5q/0I72e28g\", \"target\": \"rjKKulZvbM7JwFTyyDQHBA\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6Ljl9ocEXnB7/rCeJuhBQA\", \"target\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"cqM9tGYlXqAFmhSOz3cz8w\", \"target\": \"sItUzgzzeSRXDdp40okl7g\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"W/xMOfCQTNSfmwDOYwfP+A\", \"target\": \"xkCQC4UuNjDrwruLbTgC9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"qjmps9fgconKwBloySfxBQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"J+ybODI7/elM6CANxmPBYg\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"5xwY0szZnsiqQTwCAlnatQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"MUKgszdFzAs+hYndndby/Q\", \"target\": \"htQlzVTv1oTgctxDSfBI9A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"DykH5PpzRDCrHn459hWegA\", \"target\": \"lVZDXqF6yl10XUMzZzLN9A\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"lVZDXqF6yl10XUMzZzLN9A\", \"target\": \"owASgHoCXg8ZWEml7Td3ng\", \"metadata\": {\"weight\": 8, \"hover\": 8}}, {\"source\": \"lVZDXqF6yl10XUMzZzLN9A\", \"target\": \"p0boa2/V9lIl4dB2qQdk9w\", \"metadata\": {\"weight\": 12, \"hover\": 12}}, {\"source\": \"34S4/qPUMbfIiVg4qPcv9Q\", \"target\": \"m2zFkWR4ShPkpk94te9r/g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"00+hT3AJnNlMB1LEokJt+A\", \"target\": \"vDRBQBe5FIOF6UackNq59g\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8E4XB9kLowELIYjeWrbT9g\", \"target\": \"TeLYnQ4sMDKjTiO/ulKS/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"6AgjnpDes64fRskfpRul/Q\", \"target\": \"M65c5Nr2OwUx4RrgWBt69w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"ZYIgMFU3qCf6nt4PPviA+w\", \"target\": \"lmCvKTCRZckGDMS8v1XR9w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"kr3m2Rujat20L97MZk719w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"LvyOqWz4vSyOBqiyi115/A\", \"target\": \"kr3m2Rujat20L97MZk719w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"cLHU/6vH3d8z8+Z/CLor/Q\", \"target\": \"hVK8NzQ7oT41nmHBitdj+A\", \"metadata\": {\"weight\": 40, \"hover\": 40}}, {\"source\": \"d2qx8yj2Zh1IDP8WjIPe+A\", \"target\": \"zIMloag8qUWv9b91U8kx/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"8dAZq6dnSSBoaukyGPkp+g\", \"target\": \"x9gxsxVegryFTUoduSA1SQ\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"aA9DZNqpSuugH0fbqslt+g\", \"target\": \"o5yIaKnpLciGpB4YpDSrog\", \"metadata\": {\"weight\": 6, \"hover\": 6}}, {\"source\": \"NMYv+LLIhjsJ1pMbww3z/w\", \"target\": \"VUQ6UQmjN3zdCP6QZmfM+w\", \"metadata\": {\"weight\": 32, \"hover\": 32}}, {\"source\": \"9mD9nAC16EqruXerVjPh+w\", \"target\": \"LvyOqWz4vSyOBqiyi115/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"0FP+iQv1XrY7Of94fEgU9A\", \"target\": \"en3A02Nh2kO7dedg0Atp/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"/XdeD6LQuOcKj3zG8GDqVA\", \"target\": \"AHEUlQrOxnWxZmPc8t6s/A\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"87Wr7TVFyifRYRaEQ6oJ/Q\", \"target\": \"J7dxhY+mTwsgrvRun4vIQw\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"+zz49PYLjgQ+HgQ+JdRW/Q\", \"target\": \"g8omXv57dirNyxDKqHKY/w\", \"metadata\": {\"weight\": 5, \"hover\": 5}}, {\"source\": \"l6Sm+jycAFacN6Fc/Ho//g\", \"target\": \"v8VP8XKjxrPYZLyLtott4Q\", \"metadata\": {\"weight\": 5, \"hover\": 5}}]}];\n",
       "            // Data selection and normalization\n",
       "            state.nodeSizeDataSource = \"size\";\n",
       "            state.useNodeSizeNormalization = false;\n",
       "            state.nodeSizeNormalizationMin = 5.0;\n",
       "            state.nodeSizeNormalizationMax = 75.0;\n",
       "            state.nodeLabelTextDataSource = \"label\";\n",
       "            state.edgeSizeDataSource = \"size\";\n",
       "            state.useEdgeSizeNormalization = false;\n",
       "            state.edgeSizeNormalizationMin = 0.2;\n",
       "            state.edgeSizeNormalizationMax = 5.0;\n",
       "            state.edgeLabelTextDataSource = \"label\";\n",
       "            // Containers\n",
       "            state.graphContainerHeight = 450;\n",
       "            state.detailsContainerHeight = 100;\n",
       "            state.showDetails = false,\n",
       "            state.showDetailsToggleButton = true,\n",
       "            state.showMenu = false,\n",
       "            state.showMenuToggleButton = true,\n",
       "            // Nodes\n",
       "            state.showNodes = true;\n",
       "            state.nodeSizeFactor = 1.0;\n",
       "            state.nodeDragFix = false;\n",
       "            state.nodeHoverNeighborhood = true;\n",
       "            state.nodeHoverTooltip = true;\n",
       "            state.showNodeImages = true;\n",
       "            state.nodeImageSizeFactor = 1.0;\n",
       "            state.showNodeLabels = true;\n",
       "            state.showNodeLabelBorders = true;\n",
       "            state.nodeLabelSizeFactor = 1.9;\n",
       "            state.nodeLabelRotation = 0.0;\n",
       "            state.nodeLabelFont = \"Arial\";\n",
       "            // Edges\n",
       "            state.showEdges = true;\n",
       "            state.edgeSizeFactor = 1.0;\n",
       "            state.edgeCurvature = 0.4;\n",
       "            state.edgeHoverTooltip = true,\n",
       "            state.showEdgeLabels = true;\n",
       "            state.showEdgeLabelBorders = true;\n",
       "            state.edgeLabelSizeFactor = 1.0;\n",
       "            state.edgeLabelRotation = 0.0;\n",
       "            state.edgeLabelFont = \"Arial\";\n",
       "            // Layout algorithm\n",
       "            state.layoutAlgorithmActive = true;\n",
       "            state.useManyBodyForce = true;\n",
       "            state.manyBodyForceStrength = -70.0;\n",
       "            state.manyBodyForceTheta = 0.9;\n",
       "            state.useManyBodyForceMinDistance = false;\n",
       "            state.manyBodyForceMinDistance = 10.0;\n",
       "            state.useManyBodyForceMaxDistance = false;\n",
       "            state.manyBodyForceMaxDistance = 1000.0;\n",
       "            state.useLinksForce = true;\n",
       "            state.linksForceDistance = 50.0;\n",
       "            state.linksForceStrength = 0.5;\n",
       "            state.useXPositioningForce = false;\n",
       "            state.xPositioningForceStrength = 0.2;\n",
       "            state.useYPositioningForce = false;\n",
       "            state.yPositioningForceStrength = 0.2;\n",
       "            state.useZPositioningForce = false;\n",
       "            state.zPositioningForceStrength = 0.2;\n",
       "            state.useCenteringForce = true;\n",
       "            // Other\n",
       "            state.initZoomFactor = 0.75;\n",
       "            state.largeGraphThreshold = 200;\n",
       "          },\n",
       "\n",
       "          // 2) Derive state.parsedData from state.givenData\n",
       "          rawDataParser:{\n",
       "            getBool(obj, prop, def){\n",
       "              try{\n",
       "                const value = obj[prop];\n",
       "                if(value == \"true\" || value == \"True\"){\n",
       "                  value = true;\n",
       "                } else if(value == \"false\" || value == \"False\"){\n",
       "                  value = false;\n",
       "                }\n",
       "                if(value !== true && value !== false){\n",
       "                  throw \"Invalid value. Not a bool.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "              return def\n",
       "            },\n",
       "\n",
       "            getString(obj, prop, def) {\n",
       "              try{\n",
       "                const value = String(obj[prop]);\n",
       "                if(value === \"undefined\"){\n",
       "                  throw \"Invalid value. Not a proper string.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "              return def;\n",
       "            },\n",
       "\n",
       "            getArrayLengthOrZero(array){\n",
       "              try{\n",
       "                const value = parseInt(array.length);\n",
       "                if(!((value + 1) > 0)){\n",
       "                  throw \"Invalid value. Not a proper length.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return 0;\n",
       "              }\n",
       "            },\n",
       "\n",
       "            getObjectLengthOrZero(obj){\n",
       "              try{\n",
       "                const value = Object.keys(obj).length;\n",
       "                if(!((value + 1) > 0)){\n",
       "                  throw \"Invalid value. Not a proper length.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return 0;\n",
       "              }\n",
       "            },\n",
       "\n",
       "            createUniqueEdgeId(sourceId, targetId, knownEdgeIds){\n",
       "              let newEdgeIdBase = \"(\" + sourceId + \", \" + targetId + \")\",\n",
       "                newEdgeId = newEdgeIdBase,\n",
       "                multiEdgeCounter = 1;\n",
       "              for(let i=1; knownEdgeIds.has(newEdgeId); i++){\n",
       "                newEdgeId = newEdgeIdBase + \"_\" + String(i);\n",
       "                multiEdgeCounter += 1;\n",
       "              }\n",
       "              knownEdgeIds.add(newEdgeId);\n",
       "              return {\"id\": newEdgeId, \"count\": multiEdgeCounter}\n",
       "            },\n",
       "          },\n",
       "\n",
       "          rawMetadataParser:{\n",
       "            getString(obj, prop, def){\n",
       "              try{\n",
       "                const value = String(obj.metadata[prop]);\n",
       "                if(value === \"undefined\"){\n",
       "                  throw \"Invalid value. Not a proper string.\";\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getColor(obj, prop, def){\n",
       "              function isBodyidColor(strColor) {\n",
       "                const sty = new Option().style;\n",
       "                sty.color = strColor;\n",
       "                return sty.color !== \"\";\n",
       "              }\n",
       "              try{\n",
       "                const value = obj.metadata[prop];\n",
       "                if(!isBodyidColor(value)){\n",
       "                  throw \"Invalid value. Not a color.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getFiniteNumber(obj, prop, def){\n",
       "              try{\n",
       "                const value = parseFloat(obj.metadata[prop]);\n",
       "                if(!isFinite(value) || value === null){\n",
       "                  throw \"Invalid value. Not a finite number.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getFiniteNumberOrNull(obj, prop, def){\n",
       "              try{\n",
       "                const value = parseFloat(obj.metadata[prop]);\n",
       "                if(!isFinite(value)){  // Note: isFinite(null) gives true\n",
       "                  throw \"Invalid value. Not a finite number or null.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            getFinitePositiveNumber(obj, prop, def){\n",
       "              try{\n",
       "                const value = parseFloat(obj.metadata[prop]);\n",
       "                if(!isFinite(value) || value === null || value < 0.0){\n",
       "                  throw \"Invalid value. Not a finite positive number.\"\n",
       "                }\n",
       "                return value;\n",
       "              } catch(e){\n",
       "                return def;\n",
       "              }\n",
       "            },\n",
       "            collectOtherMetadata(sourceObject, targetObject, definedMetadata){\n",
       "              if(typeof(sourceObject) !== \"undefined\" && typeof(sourceObject.metadata) !== \"undefined\"){\n",
       "                const properties = Object.keys(sourceObject.metadata);\n",
       "                for(let i=0; i<properties.length; i++){\n",
       "                  const property = properties[i];\n",
       "                  if(!definedMetadata.has(property)){\n",
       "                    targetObject[property] = sourceObject.metadata[property];\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            },\n",
       "          },\n",
       "\n",
       "          propertyClassifier:{\n",
       "            numeric: null,\n",
       "            nonNumeric: null,\n",
       "            init(){\n",
       "              this.numeric = new Set(),\n",
       "              this.nonNumeric = new Set();\n",
       "            },\n",
       "            isNumeric(d){\n",
       "              return d === null || typeof(d) === \"undefined\" || String(parseFloat(d)) === String(d);\n",
       "            },\n",
       "            inspect(object, property){\n",
       "              const value = object[property];\n",
       "              if(!this.nonNumeric.has(property)){\n",
       "                if(this.isNumeric(value)){\n",
       "                  this.numeric.add(property);\n",
       "                } else{\n",
       "                  this.nonNumeric.add(property);\n",
       "                  this.numeric.delete(property);\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "          },\n",
       "\n",
       "          replaceStringVariables(givenString, givenItem, variables){\n",
       "            let newString = givenString;\n",
       "            for(let i=0; i<variables.length; i++){\n",
       "              let variable = variables[i],\n",
       "                variableText = \"$\" + variable;\n",
       "              if(variable === \"x\"){\n",
       "                variable = \"fx\";\n",
       "              } else if (variable === \"y\"){\n",
       "                variable = \"fy\";\n",
       "              } else if (variable === \"z\"){\n",
       "                variable = \"fz\";\n",
       "              }\n",
       "              let insertedText = String(givenItem[variable]);\n",
       "              if(insertedText === \"undefined\"){\n",
       "                insertedText = \"\";\n",
       "              }\n",
       "              newString = newString.replace(variableText, insertedText);\n",
       "            }\n",
       "            return newString;\n",
       "          },\n",
       "\n",
       "          parseGeneral(givenData, parsedData){\n",
       "            parsedData.general = {\n",
       "              // General\n",
       "              directed: state.manager.rawDataParser.getBool(givenData, \"directed\", true),\n",
       "              label: state.manager.rawDataParser.getString(givenData, \"label\", \"\"),\n",
       "              background_color: state.manager.rawMetadataParser.getColor(givenData, \"background_color\", \"white\"),\n",
       "              arrow_color: state.manager.rawMetadataParser.getColor(givenData, \"arrow_color\", \"black\"),\n",
       "              arrow_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"arrow_size\", 10.0),\n",
       "              // Nodes\n",
       "              node_color: state.manager.rawMetadataParser.getColor(givenData, \"node_color\", \"black\"),\n",
       "              node_opacity: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_opacity\", 1.0),\n",
       "              node_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_size\", 10.0),\n",
       "              node_shape: state.manager.rawMetadataParser.getString(givenData, \"node_shape\", \"circle\"),\n",
       "              node_border_color: state.manager.rawMetadataParser.getColor(givenData, \"node_border_color\", \"black\"),\n",
       "              node_border_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_border_size\", 0.0),\n",
       "              node_label_color: state.manager.rawMetadataParser.getColor(givenData, \"node_label_color\", \"black\"),\n",
       "              node_label_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"node_label_size\", 12.0),\n",
       "              node_hover: state.manager.rawMetadataParser.getString(givenData, \"node_hover\", \"\"),\n",
       "              node_click: state.manager.rawMetadataParser.getString(givenData, \"node_click\", \"\"),\n",
       "              node_image: state.manager.rawMetadataParser.getString(givenData, \"node_image\", \"\"),\n",
       "              node_x: state.manager.rawMetadataParser.getFiniteNumberOrNull(givenData, \"node_x\", null),\n",
       "              node_y: state.manager.rawMetadataParser.getFiniteNumberOrNull(givenData, \"node_y\", null),\n",
       "              node_z: state.manager.rawMetadataParser.getFiniteNumberOrNull(givenData, \"node_z\", null),\n",
       "              contains_node_hover: false,\n",
       "              contains_node_click: false,\n",
       "              contains_node_image: false,\n",
       "              // Edges\n",
       "              edge_color: state.manager.rawMetadataParser.getColor(givenData, \"edge_color\", \"black\"),\n",
       "              edge_opacity: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"edge_opacity\", 1.0),\n",
       "              edge_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"edge_size\", 1.0),\n",
       "              edge_label_color: state.manager.rawMetadataParser.getColor(givenData, \"edge_label_color\", \"black\"),\n",
       "              edge_label_size: state.manager.rawMetadataParser.getFinitePositiveNumber(givenData, \"edge_label_size\", 8.0),\n",
       "              edge_hover: state.manager.rawMetadataParser.getString(givenData, \"edge_hover\", \"\"),\n",
       "              edge_click: state.manager.rawMetadataParser.getString(givenData, \"edge_click\", \"\"),\n",
       "              contains_edge_hover: false,\n",
       "              contains_edge_click: false,\n",
       "            };\n",
       "            if(!parsedData.general.directed){\n",
       "              parsedData.general.arrow_size = 0.0;\n",
       "            }\n",
       "          },\n",
       "\n",
       "          parseNodes(givenData, parsedData){\n",
       "            const numNodes = state.manager.rawDataParser.getObjectLengthOrZero(givenData.nodes),\n",
       "              nodeIdToObjectMap = new Map(),\n",
       "              nodeDefinedMetadata = new Set(\n",
       "                [\"color\", \"opacity\", \"size\", \"shape\", \"border_color\", \"border_size\",\n",
       "                 \"label_color\", \"label_size\", \"hover\", \"click\", \"image\", \"x\", \"y\"]),\n",
       "              nodeReplacementVariables = [\n",
       "                \"id\", \"label\",\n",
       "                \"color\", \"opacity\", \"size\", \"shape\", \"border_color\", \"border_size\",\n",
       "                \"label_color\", \"label_size\", \"image\", \"x\", \"y\"];\n",
       "            state.manager.propertyClassifier.init();\n",
       "            try {\n",
       "              Object.entries(givenData.nodes);\n",
       "            }\n",
       "            catch(e){\n",
       "               givenData.nodes = {};\n",
       "            }\n",
       "            for (const [givenNodeId, givenNode] of Object.entries(givenData.nodes)) {\n",
       "              const parsedNode = {};\n",
       "              // data: id, label\n",
       "              parsedNode.id = String(givenNodeId);\n",
       "              parsedNode.label = state.manager.rawDataParser.getString(givenNode, \"label\", \"\");\n",
       "              // defined metadata\n",
       "              parsedNode.color = state.manager.rawMetadataParser.getColor(givenNode, \"color\", parsedData.general.node_color);\n",
       "              parsedNode.opacity = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"opacity\", parsedData.general.node_opacity);\n",
       "              parsedNode.size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"size\", parsedData.general.node_size);\n",
       "              parsedNode.shape = state.manager.rawMetadataParser.getString(givenNode, \"shape\", parsedData.general.node_shape);\n",
       "              parsedNode.border_color = state.manager.rawMetadataParser.getColor(givenNode, \"border_color\", parsedData.general.node_border_color);\n",
       "              parsedNode.border_size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"border_size\", parsedData.general.node_border_size);\n",
       "              parsedNode.label_color = state.manager.rawMetadataParser.getColor(givenNode, \"label_color\", parsedData.general.node_label_color);\n",
       "              parsedNode.label_size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenNode, \"label_size\", parsedData.general.node_label_size);\n",
       "              const hover = state.manager.rawMetadataParser.getString(givenNode, \"hover\", parsedData.general.node_hover);\n",
       "              const image = state.manager.rawMetadataParser.getString(givenNode, \"image\", parsedData.general.node_image);\n",
       "              if(image !== \"\"){\n",
       "                parsedNode.image = image;\n",
       "                parsedData.general.contains_node_image = true;\n",
       "              }\n",
       "              if(hover !== \"\"){\n",
       "                parsedNode.hover = hover;\n",
       "                parsedData.general.contains_node_hover = true;\n",
       "              }\n",
       "              const click = state.manager.rawMetadataParser.getString(givenNode, \"click\", parsedData.general.node_click);\n",
       "              if(click !== \"\"){\n",
       "                parsedNode.click = click;\n",
       "                parsedData.general.contains_node_click = true;\n",
       "              }\n",
       "              const x = state.manager.rawMetadataParser.getFiniteNumberOrNull(givenNode, \"x\", parsedData.general.node_x);\n",
       "              const y = state.manager.rawMetadataParser.getFiniteNumberOrNull(givenNode, \"y\", parsedData.general.node_y);\n",
       "              const z = state.manager.rawMetadataParser.getFiniteNumberOrNull(givenNode, \"z\", parsedData.general.node_z);\n",
       "              if(x !== null){\n",
       "                parsedNode.fx = x;\n",
       "              }\n",
       "              if(y !== null){\n",
       "                parsedNode.fy = y;\n",
       "              }\n",
       "              if(z !== null){\n",
       "                parsedNode.fz = z;\n",
       "              }\n",
       "              // other metadata\n",
       "              const otherMetadata = state.manager.rawMetadataParser.collectOtherMetadata(givenNode, parsedNode, nodeDefinedMetadata);\n",
       "              // feature classification\n",
       "              const parsedNodeProperties = Object.keys(parsedNode);\n",
       "              for(let i=0; i<parsedNodeProperties.length; i++){\n",
       "                const property = parsedNodeProperties[i],\n",
       "                  value = parsedNode[property];\n",
       "                state.manager.propertyClassifier.inspect(parsedNode, property);\n",
       "              }\n",
       "              // variable replacements\n",
       "              if(parsedNode.hover){\n",
       "                parsedNode.hover = state.manager.replaceStringVariables(parsedNode.hover, parsedNode, nodeReplacementVariables);\n",
       "              }\n",
       "              if(parsedNode.click){\n",
       "                parsedNode.click = state.manager.replaceStringVariables(parsedNode.click, parsedNode, nodeReplacementVariables.concat([\"hover\"]));\n",
       "              }\n",
       "              // store the parsed node\n",
       "              parsedData.nodes.push(parsedNode);\n",
       "              // data structure for inserting node object references into edge data\n",
       "              nodeIdToObjectMap.set(parsedNode.id, parsedNode);\n",
       "            }\n",
       "            // Ensure numeric properties (except fx and fy) are stored as numbers and remember their extrema\n",
       "            const numericProperties = Array.from(state.manager.propertyClassifier.numeric).filter(name => name !== \"fx\" && name !== \"fy\"),\n",
       "              nonNumericProperties = Array.from(state.manager.propertyClassifier.nonNumeric),\n",
       "              minima = {},\n",
       "              maxima = {};\n",
       "            for(let i=0; i<numNodes; i++){\n",
       "              const parsedNode = parsedData.nodes[i];\n",
       "              for(let p=0; p<numericProperties.length; p++){\n",
       "                const property = numericProperties[p],\n",
       "                  numericValue = parseFloat(parsedNode[property]);\n",
       "                parsedNode[property] = numericValue;\n",
       "                if(isFinite(numericValue)){\n",
       "                  if(typeof(minima[property]) === \"undefined\" || numericValue < minima[property]){\n",
       "                    minima[property] = numericValue;\n",
       "                  }\n",
       "                  if(typeof(maxima[property]) === \"undefined\" || numericValue > maxima[property]){\n",
       "                    maxima[property] = numericValue;\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "            // Store feature classification and extrema\n",
       "            parsedData.general.node_properties = {\n",
       "              \"node_size_data_sources\": numericProperties,\n",
       "              \"node_label_text_data_sources\": nonNumericProperties.concat(numericProperties),\n",
       "              \"minima\": minima,\n",
       "              \"maxima\": maxima,\n",
       "            }\n",
       "            // Report empty graph\n",
       "            if(!(numNodes > 0)){\n",
       "              console.log(\"Caution: Graph with 0 nodes. The provided data might be in the wrong format.\");\n",
       "            }\n",
       "            return nodeIdToObjectMap;\n",
       "          },\n",
       "\n",
       "          parseEdges(givenData, parsedData, nodeIdToObjectMap){\n",
       "            let numEdges = state.manager.rawDataParser.getArrayLengthOrZero(givenData.edges);\n",
       "            const knownEdgeIds = new Set(),\n",
       "              ignoredEdges = [],\n",
       "              edgeDefinedMetadata = new Set(\n",
       "                [\"color\", \"opacity\", \"size\", \"label_color\", \"label_size\", \"hover\", \"click\"]),\n",
       "              edgeReplacementVariables = [\n",
       "                \"id\", \"label\",\n",
       "                \"color\", \"opacity\", \"size\", \"label_color\", \"label_size\"];\n",
       "            state.manager.propertyClassifier.init();\n",
       "            for(let i=0; i<numEdges; i++){\n",
       "              const givenEdge = givenData.edges[i],\n",
       "                parsedEdge = {},\n",
       "                sourceId = String(givenEdge.source),\n",
       "                targetId = String(givenEdge.target);\n",
       "              // data: source, target, id, multi_edge_counter, label\n",
       "              try{\n",
       "                const sourceObj = nodeIdToObjectMap.get(sourceId);\n",
       "                const targetObj = nodeIdToObjectMap.get(targetId);\n",
       "                if(typeof(sourceObj) === \"undefined\" || typeof(targetObj) === \"undefined\"){\n",
       "                  throw \"Invalid node reference.\";\n",
       "                }\n",
       "                parsedEdge.source = sourceObj;\n",
       "                parsedEdge.target = targetObj;\n",
       "              } catch(e){\n",
       "                const ignoredEdge = {\n",
       "                  index: i,\n",
       "                  source: sourceId,\n",
       "                  target: targetId,\n",
       "                }\n",
       "                ignoredEdges.push(ignoredEdge);\n",
       "                continue;\n",
       "              }\n",
       "              const result = state.manager.rawDataParser.createUniqueEdgeId(sourceId, targetId, knownEdgeIds);\n",
       "              parsedEdge.id = result.id;\n",
       "              parsedEdge.multi_edge_counter = result.count;\n",
       "              parsedEdge.label = state.manager.rawDataParser.getString(givenEdge, \"label\", \"\");\n",
       "              // defined metadata\n",
       "              parsedEdge.color = state.manager.rawMetadataParser.getColor(givenEdge, \"color\", parsedData.general.edge_color);\n",
       "              parsedEdge.opacity = state.manager.rawMetadataParser.getFinitePositiveNumber(givenEdge, \"opacity\", parsedData.general.edge_opacity);\n",
       "              parsedEdge.size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenEdge, \"size\", parsedData.general.edge_size);\n",
       "              parsedEdge.label_color = state.manager.rawMetadataParser.getColor(givenEdge, \"label_color\", parsedData.general.edge_label_color);\n",
       "              parsedEdge.label_size = state.manager.rawMetadataParser.getFinitePositiveNumber(givenEdge, \"label_size\", parsedData.general.edge_label_size);\n",
       "              const hover = state.manager.rawMetadataParser.getString(givenEdge, \"hover\", parsedData.general.edge_hover);\n",
       "              if(hover !== \"\"){\n",
       "                parsedEdge.hover = hover;\n",
       "                parsedData.general.contains_edge_hover = true;\n",
       "              }\n",
       "              const click = state.manager.rawMetadataParser.getString(givenEdge, \"click\", parsedData.general.edge_click);\n",
       "              if(click !== \"\"){\n",
       "                parsedEdge.click = click;\n",
       "                parsedData.general.contains_edge_click = true;\n",
       "              }\n",
       "              // other metadata\n",
       "              const otherMetadata = state.manager.rawMetadataParser.collectOtherMetadata(givenEdge, parsedEdge, edgeDefinedMetadata);\n",
       "              // feature classification\n",
       "              const parsedEdgeProperties = Object.keys(parsedEdge);\n",
       "              for(let i=0; i<parsedEdgeProperties.length; i++){\n",
       "                const property = parsedEdgeProperties[i],\n",
       "                  value = parsedEdge[property];\n",
       "                state.manager.propertyClassifier.inspect(parsedEdge, property);\n",
       "              }\n",
       "              // variable replacements\n",
       "              if(parsedEdge.hover){\n",
       "                parsedEdge.hover = state.manager.replaceStringVariables(parsedEdge.hover, parsedEdge, edgeReplacementVariables);\n",
       "              }\n",
       "              if(parsedEdge.click){\n",
       "                parsedEdge.click = state.manager.replaceStringVariables(parsedEdge.click, parsedEdge, edgeReplacementVariables.concat([\"hover\"]));\n",
       "              }\n",
       "              // store it\n",
       "              parsedData.edges.push(parsedEdge);\n",
       "            }\n",
       "            // Ensure numeric properties are stored as numbers and remember their extrema\n",
       "            const numericProperties = Array.from(state.manager.propertyClassifier.numeric),\n",
       "              nonNumericProperties = Array.from(state.manager.propertyClassifier.nonNumeric),\n",
       "              minima = {},\n",
       "              maxima = {};\n",
       "            numEdges = state.manager.rawDataParser.getArrayLengthOrZero(parsedData.edges)\n",
       "            for(let i=0; i<numEdges; i++){\n",
       "              const parsedEdge = parsedData.edges[i];\n",
       "              for(let p=0; p<numericProperties.length; p++){\n",
       "                const property = numericProperties[p],\n",
       "                  numericValue = parseFloat(parsedEdge[property]);\n",
       "                parsedEdge[property] = numericValue;\n",
       "                if(isFinite(numericValue)){\n",
       "                  if(typeof(minima[property]) === \"undefined\" || numericValue < minima[property]){\n",
       "                    minima[property] = numericValue;\n",
       "                  }\n",
       "                  if(typeof(maxima[property]) === \"undefined\" || numericValue > maxima[property]){\n",
       "                    maxima[property] = numericValue;\n",
       "                  }\n",
       "                }\n",
       "              }\n",
       "            }\n",
       "            // Store feature classification and extrema\n",
       "            parsedData.general.edge_properties = {\n",
       "              \"edge_size_data_sources\": numericProperties.filter(item => item !== \"multi_edge_counter\"),\n",
       "              \"edge_label_text_data_sources\": nonNumericProperties.concat(numericProperties).filter(\n",
       "                item => item !== \"source\" && item !== \"target\" && item !== \"multi_edge_counter\"),\n",
       "              \"minima\": minima,\n",
       "              \"maxima\": maxima,\n",
       "            }\n",
       "            // Report invalid edges\n",
       "            if(ignoredEdges.length > 0){\n",
       "              let message = undefined;\n",
       "              if(ignoredEdges.length == 1){\n",
       "                message = \"Caution: \" + ignoredEdges.length + \" edge was ignored because it \" +\n",
       "                  \"refers to a node that is not part of the node list:\\n\";\n",
       "              } else{\n",
       "                message = \"Caution: \" + ignoredEdges.length + \" edges were ignored because they \" +\n",
       "                  \"refer to a node that is not part of the node list:\\n\";\n",
       "              }\n",
       "              for(let i=0; i<ignoredEdges.length; i++){\n",
       "                const ignoredEdge = ignoredEdges[i];\n",
       "                message += '- Edge with index ' + ignoredEdge.index;\n",
       "                message += ', source \"' + ignoredEdge.source;\n",
       "                message += '\", target \"' + ignoredEdge.target + '\"\\n';\n",
       "                if(i==9){\n",
       "                  message += '...';\n",
       "                  break;\n",
       "                }\n",
       "              }\n",
       "              console.log(message);\n",
       "            }\n",
       "          },\n",
       "\n",
       "          parseChosenData(chosenGraphNumber){\n",
       "            let givenData = state.rawData[chosenGraphNumber],\n",
       "              parsedData = {\n",
       "                general: {},\n",
       "                nodes: [],\n",
       "                edges: [],\n",
       "                adjacency: null,\n",
       "                incidence: null,\n",
       "              };\n",
       "            if(!givenData || givenData === null){\n",
       "              givenData = [];\n",
       "            }\n",
       "            // a) General\n",
       "            state.manager.parseGeneral(givenData, parsedData);\n",
       "            // b) Nodes\n",
       "            const nodeIdToObjectMap = state.manager.parseNodes(givenData, parsedData);\n",
       "            // c) Edges\n",
       "            state.manager.parseEdges(givenData, parsedData, nodeIdToObjectMap);\n",
       "            // Update state\n",
       "            state.parsedData = parsedData;\n",
       "            state.currentGraphParts = {};\n",
       "            // Update UI: show or hide containers\n",
       "            ui.elements.graphContainer.style.display = ui.convert.boolToDisplayStyle(true);\n",
       "            ui.elements.detailsContainer.style.display = ui.convert.boolToDisplayStyle(state.showDetails);\n",
       "            ui.elements.nodeImageMetaControl.style.display = ui.convert.boolToDisplayStyle(parsedData.general.contains_node_image);\n",
       "          },\n",
       "\n",
       "          // 3) Derive state.shownData from state.parsedData\n",
       "          createNodeToAdjacentNodesMap(){\n",
       "            const dataStructure = {\n",
       "              map: new Map(),\n",
       "              add(sourceNode, targetNode){\n",
       "                let adjacentNodes = this.map.get(sourceNode);\n",
       "                if(adjacentNodes){\n",
       "                  adjacentNodes.add(targetNode);\n",
       "                } else{\n",
       "                  adjacentNodes = new Set([targetNode]);\n",
       "                  this.map.set(sourceNode, adjacentNodes);\n",
       "                }\n",
       "              },\n",
       "            }\n",
       "            return dataStructure;\n",
       "          },\n",
       "\n",
       "          createNodeToIncidentEdgesMap(){\n",
       "            const dataStructure = {\n",
       "              map: new Map(),\n",
       "              add(node, edge){\n",
       "                let incidentEdges = this.map.get(node);\n",
       "                if(incidentEdges){\n",
       "                  incidentEdges.add(edge);\n",
       "                } else{\n",
       "                  incidentEdges = new Set([edge]);\n",
       "                  this.map.set(node, incidentEdges);\n",
       "                }\n",
       "              },\n",
       "            }\n",
       "            return dataStructure;\n",
       "          },\n",
       "\n",
       "          prepareShownData(){\n",
       "            const numNodes = state.parsedData.nodes.length,\n",
       "              numEdges = state.parsedData.edges.length;\n",
       "            state.shownData = {\n",
       "              \"general\": null,\n",
       "              \"nodes\": new Array(numNodes),\n",
       "              \"edges\": new Array(numEdges),\n",
       "            }\n",
       "            const nodeIdToObjectMap = new Map(),\n",
       "              nodeSizeNormalizer = state.manager.createNodeSizeNormalizer();\n",
       "            // a) General\n",
       "            state.shownData.general = {\n",
       "              \"background_color\": state.parsedData.general.background_color,\n",
       "              \"arrow_size\": state.parsedData.general.arrow_size,\n",
       "              \"arrow_color\": state.parsedData.general.arrow_color,\n",
       "              \"directed\": state.parsedData.general.directed,\n",
       "              \"node_image_fetching_failed\": false,\n",
       "            };\n",
       "            // b) Nodes\n",
       "            for(let i=0; i<numNodes; i++){\n",
       "              state.shownData.nodes[i] = {};\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.id = parsedNode.id;\n",
       "              shownNode.label = state.manager.calcSingleNodeLabelText(parsedNode);\n",
       "              shownNode.color = parsedNode.color;\n",
       "              shownNode.opacity = parsedNode.opacity;\n",
       "              shownNode.size = state.manager.calcSingleNodeSize(parsedNode, nodeSizeNormalizer);\n",
       "              shownNode.shape = parsedNode.shape;\n",
       "              shownNode.border_color = parsedNode.border_color;\n",
       "              shownNode.border_size = parsedNode.border_size;\n",
       "              shownNode.label_color = parsedNode.label_color;\n",
       "              shownNode.label_size = state.manager.calcSingleNodeLabelSize(parsedNode);\n",
       "              if(typeof(parsedNode.image) !== \"undefined\"){\n",
       "                shownNode.image = parsedNode.image;\n",
       "              }\n",
       "              if(typeof(parsedNode.hover) !== \"undefined\"){\n",
       "                shownNode.hover = parsedNode.hover;\n",
       "              }\n",
       "              if(typeof(parsedNode.click) !== \"undefined\"){\n",
       "                shownNode.click = parsedNode.click;\n",
       "              }\n",
       "              if(typeof(parsedNode.fx) !== \"undefined\"){\n",
       "                shownNode.fx = parsedNode.fx;\n",
       "              }\n",
       "              if(typeof(parsedNode.fy) !== \"undefined\"){\n",
       "                shownNode.fy = parsedNode.fy;\n",
       "              }\n",
       "              if(typeof(parsedNode.fz) !== \"undefined\"){\n",
       "                shownNode.fz = parsedNode.fz;\n",
       "              }\n",
       "              nodeIdToObjectMap.set(shownNode.id, shownNode);\n",
       "              // Derived properties for performance improvement in updateNodePositions\n",
       "              state.manager.calcSingleNodeSizeDerivatives(shownNode);\n",
       "              state.manager.calcSingleNodeLabelSizeDerivatives(shownNode);\n",
       "              state.manager.calcSingleNodeBorderSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // c) Edges\n",
       "            const edgeSizeNormalizer = state.manager.createEdgeSizeNormalizer(),\n",
       "              nodeToAdjacentNodesMap = state.manager.createNodeToAdjacentNodesMap(),\n",
       "              nodeToIncidentEdgesMap = state.manager.createNodeToIncidentEdgesMap();\n",
       "            for(let i=0; i<numEdges; i++){\n",
       "              state.shownData.edges[i] = {};\n",
       "              const parsedEdge = state.parsedData.edges[i],\n",
       "                shownEdge = state.shownData.edges[i];\n",
       "              shownEdge.source = nodeIdToObjectMap.get(parsedEdge.source.id);\n",
       "              shownEdge.target = nodeIdToObjectMap.get(parsedEdge.target.id);\n",
       "              shownEdge.id = parsedEdge.id;\n",
       "              shownEdge.label = state.manager.calcSingleEdgeLabelText(parsedEdge);\n",
       "              shownEdge.color = parsedEdge.color;\n",
       "              shownEdge.opacity = parsedEdge.opacity;\n",
       "              shownEdge.size = state.manager.calcSingleEdgeSize(parsedEdge, edgeSizeNormalizer);\n",
       "              shownEdge.label_color = parsedEdge.label_color;\n",
       "              shownEdge.label_size = state.manager.calcSingleEdgeLabelSize(parsedEdge);\n",
       "              shownEdge.multi_edge_counter = parsedEdge.multi_edge_counter;\n",
       "              if(typeof(parsedEdge.hover) !== \"undefined\"){\n",
       "                shownEdge.hover = parsedEdge.hover;\n",
       "              }\n",
       "              if(typeof(parsedEdge.click) !== \"undefined\"){\n",
       "                shownEdge.click = parsedEdge.click;\n",
       "              }\n",
       "              // Derived properties for performance improvement in updateEdgePositions\n",
       "              shownEdge.multi_edge_curvature_factor = state.manager.calcSingleEdgeCurvatureFactor(parsedEdge);\n",
       "              // Data structure for highlighting adjacent nodes and incident edges to this node\n",
       "              nodeToAdjacentNodesMap.add(shownEdge.source, shownEdge.target);\n",
       "              nodeToAdjacentNodesMap.add(shownEdge.target, shownEdge.source);\n",
       "              nodeToIncidentEdgesMap.add(shownEdge.source, shownEdge);\n",
       "              nodeToIncidentEdgesMap.add(shownEdge.target, shownEdge);\n",
       "            }\n",
       "            state.shownData.adjacency = nodeToAdjacentNodesMap;\n",
       "            state.shownData.incidence = nodeToIncidentEdgesMap;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeSize(parsedNode, nodeSizeNormalizer){\n",
       "            let nodeSize = nodeSizeNormalizer(parsedNode[state.nodeSizeDataSource]);\n",
       "            if(!isFinite(nodeSize)){\n",
       "              nodeSize = state.parsedData.general.node_size;\n",
       "            }\n",
       "            return nodeSize * state.nodeSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelText(parsedNode){\n",
       "            return String(parsedNode[state.nodeLabelTextDataSource]);\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelSize(parsedNode){\n",
       "            return parsedNode.label_size * state.nodeLabelSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelPlacement(node){\n",
       "            let baseSize = node.size_half;\n",
       "            if(state.showNodeImages && typeof(node.image) !== \"undefined\"){\n",
       "              baseSize = (node.size_half > node.image_size_half) ? node.size_half : node.image_size_half;\n",
       "            }\n",
       "            return baseSize + node.label_size * 0.77 + 2.0;\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeSize(parsedEdge, edgeSizeNormalizer){\n",
       "            let edgeSize = edgeSizeNormalizer(parsedEdge[state.edgeSizeDataSource]);\n",
       "            if(!isFinite(edgeSize)){\n",
       "              edgeSize = state.parsedData.general.edge_size;\n",
       "            }\n",
       "            return edgeSize * state.edgeSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeCurvatureFactor(parsedEdge){\n",
       "            const appearanceAdaptionFactor = 0.6;\n",
       "            return state.edgeCurvature * parsedEdge.multi_edge_counter * appearanceAdaptionFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeLabelText(parsedEdge){\n",
       "            return String(parsedEdge[state.edgeLabelTextDataSource]);\n",
       "          },\n",
       "\n",
       "          calcSingleEdgeLabelSize(parsedEdge){\n",
       "            return parsedEdge.label_size * state.edgeLabelSizeFactor;\n",
       "          },\n",
       "\n",
       "          calcSingleNodeSizeDerivatives(shownNode){\n",
       "            shownNode.size_half = shownNode.size / 2.0;\n",
       "            const appearanceAdaptionFactor = 1.2;\n",
       "            shownNode.image_size = shownNode.size * state.nodeImageSizeFactor * appearanceAdaptionFactor;\n",
       "            shownNode.image_size_half = shownNode.image_size / 2.0;\n",
       "            shownNode.relative_label_placement = state.manager.calcSingleNodeLabelPlacement(shownNode);\n",
       "          },\n",
       "\n",
       "          calcSingleNodeLabelSizeDerivatives(shownNode){\n",
       "            shownNode.relative_label_placement = state.manager.calcSingleNodeLabelPlacement(shownNode);\n",
       "          },\n",
       "\n",
       "          calcSingleNodeBorderSizeDerivatives(shownNode){\n",
       "            shownNode.border_size_half = shownNode.border_size / 2.0;\n",
       "          },\n",
       "\n",
       "          createNodeSizeNormalizer(){\n",
       "            let normalizer;\n",
       "            if(state.useNodeSizeNormalization){\n",
       "              const dataMin = state.parsedData.general.node_properties.minima[state.nodeSizeDataSource],\n",
       "                dataMax = state.parsedData.general.node_properties.maxima[state.nodeSizeDataSource],\n",
       "                targetMin = state.nodeSizeNormalizationMin,\n",
       "                targetMax = state.nodeSizeNormalizationMax,\n",
       "                dataDiff = dataMax - dataMin,\n",
       "                targetDiff = targetMax - targetMin;\n",
       "              let factor = targetDiff / dataDiff;\n",
       "              if(!isFinite(factor) || factor === null){\n",
       "                factor = 0.0;\n",
       "              }\n",
       "              normalizer = function(val){\n",
       "                return (val - dataMin) * factor + targetMin;\n",
       "              }\n",
       "            } else{\n",
       "              normalizer = function(val){\n",
       "                return val;\n",
       "              }\n",
       "            }\n",
       "            return normalizer;\n",
       "          },\n",
       "\n",
       "          createEdgeSizeNormalizer(){\n",
       "            let normalizer;\n",
       "            if(state.useEdgeSizeNormalization){\n",
       "              const dataMin = state.parsedData.general.edge_properties.minima[state.edgeSizeDataSource],\n",
       "                dataMax = state.parsedData.general.edge_properties.maxima[state.edgeSizeDataSource],\n",
       "                targetMin = state.edgeSizeNormalizationMin,\n",
       "                targetMax = state.edgeSizeNormalizationMax,\n",
       "                dataDiff = dataMax - dataMin,\n",
       "                targetDiff = targetMax - targetMin;\n",
       "              let factor = targetDiff / dataDiff;\n",
       "              if(!isFinite(factor)){\n",
       "                factor = 0.0;\n",
       "              }\n",
       "              normalizer = function(val){\n",
       "                return (val - dataMin) * factor + targetMin;\n",
       "              }\n",
       "            } else{\n",
       "              normalizer = function(val){\n",
       "                return val;\n",
       "              }\n",
       "            }\n",
       "            return normalizer;\n",
       "          },\n",
       "\n",
       "          updateNodeSizes(){\n",
       "            // Data\n",
       "            const nodeSizeNormalizer = state.manager.createNodeSizeNormalizer();\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.size = state.manager.calcSingleNodeSize(parsedNode, nodeSizeNormalizer);\n",
       "              state.manager.calcSingleNodeSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeSizes();\n",
       "          },\n",
       "\n",
       "          updateNodeImageSizes(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              state.manager.calcSingleNodeSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeImages();\n",
       "          },\n",
       "\n",
       "          updateNodeLabelTexts(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.label = state.manager.calcSingleNodeLabelText(parsedNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          },\n",
       "\n",
       "          updateNodeLabelSizes(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.nodes.length; i++){\n",
       "              const parsedNode = state.parsedData.nodes[i],\n",
       "                shownNode = state.shownData.nodes[i];\n",
       "              shownNode.label_size = state.manager.calcSingleNodeLabelSize(parsedNode);\n",
       "              state.manager.calcSingleNodeLabelSizeDerivatives(shownNode);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          },\n",
       "\n",
       "          updateEdgeSizes(){\n",
       "            // Data\n",
       "            const edgeSizeNormalizer = state.manager.createEdgeSizeNormalizer();\n",
       "            for(let i=0; i<state.parsedData.edges.length; i++){\n",
       "              const parsedEdge = state.parsedData.edges[i],\n",
       "                shownEdge = state.shownData.edges[i];\n",
       "              shownEdge.size = state.manager.calcSingleEdgeSize(parsedEdge, edgeSizeNormalizer);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateEdgeSizes();\n",
       "          },\n",
       "\n",
       "          updateEdgeCurvatures(){\n",
       "            // Data\n",
       "            for(let i=0; i<state.parsedData.edges.length; i++){\n",
       "              const parsedEdge = state.parsedData.edges[i],\n",
       "                shownEdge = state.shownData.edges[i];\n",
       "              shownEdge.multi_edge_curvature_factor = state.manager.calcSingleEdgeCurvatureFactor(parsedEdge);\n",
       "            }\n",
       "            // UI\n",
       "            ui.composites.graph.updateEdgeCurvatures();\n",
       "          },\n",
       "        }\n",
       "      }\n",
       "\n",
       "      const ui = {\n",
       "        symbols:{\n",
       "          // Choice of symbols is influenced by their appearance in different browsers\n",
       "          // Alternatives: \"▼\", \"▽\", \"▾\" / \"▲\", \"△\", \"▴\" / \"▶\", \"▷\", \"▸\" / \"◀\", \"◁\", \"◂\"\n",
       "          // ▶ is rendered strangely on some mobile phone browsers, ▸ remains normal\n",
       "          detailsShown: \"▾\",\n",
       "          detailsHidden: \"▴\",\n",
       "          menuShown: \"▸\",\n",
       "          menuHidden: \"◂\",\n",
       "          menuItemActive: \"▸\",\n",
       "          menuItemInactive: \"▾\",\n",
       "        },\n",
       "\n",
       "        elements:{\n",
       "          // Containers\n",
       "          mainContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-main-div\"),\n",
       "          tooltipContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-tooltip-div\"),\n",
       "          leftContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-left-div\"),\n",
       "          rightContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-right-div\"),\n",
       "          graphContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-graph-div\"),\n",
       "          detailsContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-details-div\"),\n",
       "          detailsHead: document.getElementById(\"iZc2xt0lSijSyZl8x-details-head\"),\n",
       "          detailsBody: document.getElementById(\"iZc2xt0lSijSyZl8x-details-body\"),\n",
       "          // Data sources\n",
       "          dataHead: document.getElementById(\"iZc2xt0lSijSyZl8x-data-head\"),\n",
       "          dataBody: document.getElementById(\"iZc2xt0lSijSyZl8x-data-body\"),\n",
       "          graphSelectionContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-graph-select-div\"),\n",
       "          graphSelection: document.getElementById(\"iZc2xt0lSijSyZl8x-graph-select\"),\n",
       "          nodeSizeDataSourceSelect: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-data-source-select\"),\n",
       "          nodeSizeNormalizationCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-normalization-checkbox\"),\n",
       "          nodeSizeNormalizationContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-norm-div\"),\n",
       "          nodeSizeNormalizationMinText: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-normalization-min-text\"),\n",
       "          nodeSizeNormalizationMinSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-normalization-min-slider\"),\n",
       "          nodeSizeNormalizationMaxText: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-normalization-max-text\"),\n",
       "          nodeSizeNormalizationMaxSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-normalization-max-slider\"),\n",
       "          edgeSizeDataSourceSelect: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-data-source-select\"),\n",
       "          edgeSizeNormalizationCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-normalization-checkbox\"),\n",
       "          edgeSizeNormalizationContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-norm-div\"),\n",
       "          edgeSizeNormalizationMinText: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-normalization-min-text\"),\n",
       "          edgeSizeNormalizationMinSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-normalization-min-slider\"),\n",
       "          edgeSizeNormalizationMaxText: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-normalization-max-text\"),\n",
       "          edgeSizeNormalizationMaxSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-normalization-max-slider\"),\n",
       "          // General\n",
       "          generalHead: document.getElementById(\"iZc2xt0lSijSyZl8x-general-head\"),\n",
       "          generalBody: document.getElementById(\"iZc2xt0lSijSyZl8x-general-body\"),\n",
       "          resetButton: document.getElementById(\"iZc2xt0lSijSyZl8x-reset\"),\n",
       "          fullscreenButton: document.getElementById(\"iZc2xt0lSijSyZl8x-fullscreen-button\"),\n",
       "          svgExportButton: document.getElementById(\"iZc2xt0lSijSyZl8x-svg\"),\n",
       "          pngExportButton: document.getElementById(\"iZc2xt0lSijSyZl8x-png\"),\n",
       "          jpgExportButton: document.getElementById(\"iZc2xt0lSijSyZl8x-jpg\"),\n",
       "          // Nodes\n",
       "          nodeHead: document.getElementById(\"iZc2xt0lSijSyZl8x-node-head\"),\n",
       "          nodeBody: document.getElementById(\"iZc2xt0lSijSyZl8x-node-body\"),\n",
       "          nodeCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-checkbox\"),\n",
       "          nodeSizeFactorText: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-factor-text\"),\n",
       "          nodeSizeFactorSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-node-size-factor-slider\"),\n",
       "          nodeDragFixCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-drag-fix-checkbox\"),\n",
       "          nodeHoverTooltipCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-hover-tooltip-checkbox\"),\n",
       "          nodeReleaseButton: document.getElementById(\"iZc2xt0lSijSyZl8x-node-release-button\"),\n",
       "          // Node images\n",
       "          nodeImageHead: document.getElementById(\"iZc2xt0lSijSyZl8x-node-image-head\"),\n",
       "          nodeImageBody: document.getElementById(\"iZc2xt0lSijSyZl8x-node-image-body\"),\n",
       "          nodeImageCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-image-checkbox\"),\n",
       "          nodeImageMetaControl: document.getElementById(\"iZc2xt0lSijSyZl8x-node-image-meta-control\"),\n",
       "          nodeImageSizeFactorText: document.getElementById(\"iZc2xt0lSijSyZl8x-node-image-size-factor-text\"),\n",
       "          nodeImageSizeFactorSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-node-image-size-factor-slider\"),\n",
       "          // Node labels\n",
       "          nodeLabelHead: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-head\"),\n",
       "          nodeLabelBody: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-body\"),\n",
       "          nodeLabelCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-checkbox\"),\n",
       "          nodeLabelBorderCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-border-checkbox\"),\n",
       "          nodeLabelTextDataSourceSelect: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-data-source-select\"),\n",
       "          nodeLabelSizeFactorText: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-size-factor-text\"),\n",
       "          nodeLabelSizeFactorSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-node-label-size-factor-slider\"),\n",
       "          // Edges\n",
       "          edgeHead: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-head\"),\n",
       "          edgeBody: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-body\"),\n",
       "          edgeCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-checkbox\"),\n",
       "          edgeSizeFactorText: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-factor-text\"),\n",
       "          edgeSizeFactorSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-size-factor-slider\"),\n",
       "          edgeCurvatureText: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-curvature-text\"),\n",
       "          edgeCurvatureSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-curvature-slider\"),\n",
       "          edgeHoverTooltipCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-edge-hover-tooltip-checkbox\"),\n",
       "          // Layout algorithm\n",
       "          layoutAlgorithmHead: document.getElementById(\"iZc2xt0lSijSyZl8x-layout-algorithm-head\"),\n",
       "          layoutAlgorithmBody: document.getElementById(\"iZc2xt0lSijSyZl8x-layout-algorithm-body\"),\n",
       "          simulationCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-simulation-active-checkbox\"),\n",
       "          manyBodyForceCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-checkbox\"),\n",
       "          manyBodyForceContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-div\"),\n",
       "          manyBodyForceStrengthText: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-strength-text\"),\n",
       "          manyBodyForceStrengthSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-strength-slider\"),\n",
       "          manyBodyForceThetaText: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-theta-text\"),\n",
       "          manyBodyForceThetaSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-theta-slider\"),\n",
       "          manyBodyForceMinDistCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-checkbox\"),\n",
       "          manyBodyForceMinDistContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-div\"),\n",
       "          manyBodyForceMinDistText: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-text\"),\n",
       "          manyBodyForceMinDistSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-min-distance-slider\"),\n",
       "          manyBodyForceMaxDistCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-checkbox\"),\n",
       "          manyBodyForceMaxDistContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-div\"),\n",
       "          manyBodyForceMaxDistText: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-text\"),\n",
       "          manyBodyForceMaxDistSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-many-body-force-max-distance-slider\"),\n",
       "          linksForceCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-links-force-checkbox\"),\n",
       "          linksForceContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-links-force-div\"),\n",
       "          linksForceDistanceText: document.getElementById(\"iZc2xt0lSijSyZl8x-links-force-distance-text\"),\n",
       "          linksForceDistanceSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-links-force-distance-slider\"),\n",
       "          linksForceStrengthText: document.getElementById(\"iZc2xt0lSijSyZl8x-links-force-strength-text\"),\n",
       "          linksForceStrengthSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-links-force-strength-slider\"),\n",
       "          xPositioningForceCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-x-positioning-force-checkbox\"),\n",
       "          xPositioningForceContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-x-positioning-force-div\"),\n",
       "          xPositioningForceStrengthText: document.getElementById(\"iZc2xt0lSijSyZl8x-x-positioning-force-strength-text\"),\n",
       "          xPositioningForceStrengthSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-x-positioning-force-strength-slider\"),\n",
       "          yPositioningForceCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-y-positioning-force-checkbox\"),\n",
       "          yPositioningForceContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-y-positioning-force-div\"),\n",
       "          yPositioningForceStrengthText: document.getElementById(\"iZc2xt0lSijSyZl8x-y-positioning-force-strength-text\"),\n",
       "          yPositioningForceStrengthSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-y-positioning-force-strength-slider\"),\n",
       "          zPositioningForceCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-z-positioning-force-checkbox\"),\n",
       "          zPositioningForceContainer: document.getElementById(\"iZc2xt0lSijSyZl8x-z-positioning-force-div\"),\n",
       "          zPositioningForceStrengthText: document.getElementById(\"iZc2xt0lSijSyZl8x-z-positioning-force-strength-text\"),\n",
       "          zPositioningForceStrengthSlider: document.getElementById(\"iZc2xt0lSijSyZl8x-z-positioning-force-strength-slider\"),\n",
       "          centeringForceCheckbox: document.getElementById(\"iZc2xt0lSijSyZl8x-centering-force-checkbox\"),\n",
       "        },\n",
       "\n",
       "        composites:{\n",
       "          responsiveContainer:{\n",
       "            init(){\n",
       "              // Delete all contained items (relevant only for reset, not first creation)\n",
       "              ui.deleteChildElements(ui.elements.graphContainer);\n",
       "              ui.deleteChildElements(ui.elements.detailsBody);\n",
       "              // Menu\n",
       "              if(state.showMenu){\n",
       "                ui.composites.menu.show();\n",
       "              } else{\n",
       "                ui.composites.menu.hide();\n",
       "              }\n",
       "              // Details\n",
       "              if(state.showDetails){\n",
       "                ui.composites.details.show(true);\n",
       "              } else{\n",
       "                ui.composites.details.hide(true);\n",
       "              }\n",
       "              // Divs\n",
       "              ui.composites.responsiveContainer.setInnerHeights();\n",
       "              ui.composites.responsiveContainer.setOuterHeights();\n",
       "              ui.composites.responsiveContainer.getInnerWidths();\n",
       "            },\n",
       "\n",
       "            getInnerWidths(){\n",
       "              state.graphContainerWidth = parseInt(ui.elements.graphContainer.clientWidth);\n",
       "              state.detailsContainerWidth = parseInt(ui.elements.detailsContainer.clientWidth);\n",
       "            },\n",
       "\n",
       "            getInnerHeights(){\n",
       "              state.graphContainerHeight = parseInt(ui.elements.graphContainer.clientHeight);\n",
       "              if(state.showDetails){\n",
       "                state.detailsContainerHeight = parseInt(ui.elements.detailsContainer.clientHeight);\n",
       "              }\n",
       "            },\n",
       "\n",
       "            setInnerHeights(){\n",
       "              ui.elements.graphContainer.style.height = state.graphContainerHeight + \"px\";\n",
       "              ui.elements.detailsContainer.style.height = state.detailsContainerHeight + \"px\";\n",
       "            },\n",
       "\n",
       "            setOuterHeights(){\n",
       "              ui.elements.mainContainer.style.height = ui.elements.leftContainer.offsetHeight + \"px\";\n",
       "            },\n",
       "\n",
       "            getSizes(){\n",
       "              ui.composites.responsiveContainer.getInnerWidths();\n",
       "              ui.composites.responsiveContainer.getInnerHeights();\n",
       "            },\n",
       "\n",
       "            setSizes(){\n",
       "              ui.composites.responsiveContainer.setInnerHeights();\n",
       "              ui.composites.responsiveContainer.setOuterHeights();\n",
       "            },\n",
       "\n",
       "            adaptToResize(){\n",
       "              ui.composites.responsiveContainer.getSizes();\n",
       "              ui.composites.responsiveContainer.setSizes();\n",
       "            },\n",
       "\n",
       "            adaptToFullscreen(){\n",
       "              ui.composites.responsiveContainer.getSizes();\n",
       "              if(document.fullscreenElement){\n",
       "                // On entering fullscreen, remember the current container heights\n",
       "                state.beforeFullscreenGraphContainerHeight = state.graphContainerHeight;\n",
       "                state.beforeFullscreenDetailsContainerHeight = state.detailsContainerHeight;\n",
       "                // and then adapt them to maximum height possible in full screen mode\n",
       "                function calculateFullscreenMaxGraphHeight(){\n",
       "                  let outerHeight = null;\n",
       "                  try{\n",
       "                    const mainDivComputedStyle = window.getComputedStyle(ui.elements.mainContainer),\n",
       "                      graphDivComputedStyle = window.getComputedStyle(ui.elements.graphContainer),\n",
       "                      paddingTop = parseFloat(mainDivComputedStyle.paddingTop),\n",
       "                      borderTop = parseFloat(graphDivComputedStyle.borderTopWidth),\n",
       "                      borderBottom = parseFloat(graphDivComputedStyle.borderBottomWidth),\n",
       "                      paddingBottom = parseFloat(mainDivComputedStyle.paddingBottom);\n",
       "                    outerHeight = paddingTop + borderTop + borderBottom + paddingBottom;\n",
       "                    if(!isFinite(outerHeight) || outerHeight === null){\n",
       "                      throw \"Invalid number\";\n",
       "                    }\n",
       "                  } catch(e){\n",
       "                    // Hard coded fallback, depends on CSS of containers (1px borders, 6px padding)\n",
       "                    outerHeight = 1 + 3 + 3 + 1;\n",
       "                  }\n",
       "                  let graphHeight = screen.height - outerHeight;\n",
       "                  if(state.showDetails){\n",
       "                    graphHeight -= ui.composites.details.calculateHeightDifference();\n",
       "                  }\n",
       "                  return graphHeight;\n",
       "                }\n",
       "                state.graphContainerHeight = calculateFullscreenMaxGraphHeight();\n",
       "              } else{\n",
       "                // On leaving fullscreen, set container heights back to remembered values\n",
       "                state.graphContainerHeight = state.beforeFullscreenGraphContainerHeight;\n",
       "                state.detailsContainerHeight = state.beforeFullscreenDetailsContainerHeight;\n",
       "              }\n",
       "              ui.composites.responsiveContainer.setSizes();\n",
       "            },\n",
       "          },\n",
       "\n",
       "          menu:{\n",
       "            show(){\n",
       "              ui.elements.leftContainer.style.width = \"80%\";\n",
       "              ui.elements.rightContainer.style.width = \"20%\";\n",
       "              ui.elements.rightContainer.style.display = \"block\";\n",
       "            },\n",
       "\n",
       "            hide(){\n",
       "              ui.elements.leftContainer.style.width = \"100%\";\n",
       "              ui.elements.rightContainer.style.width = \"0%\";\n",
       "              ui.elements.rightContainer.style.display = \"none\";\n",
       "            },\n",
       "\n",
       "            toggle(){\n",
       "              // Update menu button\n",
       "              const div = ui.elements.menuToggleDiv;\n",
       "              state.showMenu = !state.showMenu;\n",
       "              if(state.showMenu){\n",
       "                div.innerText = ui.symbols.menuShown;\n",
       "                ui.composites.menu.show();\n",
       "              } else {\n",
       "                div.innerHTML = ui.symbols.menuHidden;\n",
       "                ui.composites.menu.hide();\n",
       "              }\n",
       "\n",
       "              // Update rest of UI\n",
       "              ui.composites.responsiveContainer.getInnerWidths();\n",
       "              ui.composites.responsiveContainer.getInnerHeights();\n",
       "              ui.composites.responsiveContainer.setOuterHeights();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            },\n",
       "\n",
       "            setItem(keyElement, valElement, toActive){\n",
       "              const currentText = keyElement.innerHTML;\n",
       "              let sliceStart = 0;\n",
       "              if(currentText.startsWith(ui.symbols.menuItemActive)){\n",
       "                sliceStart = ui.symbols.menuItemActive.length;\n",
       "              } else if (currentText.startsWith(ui.symbols.menuItemInactive)){\n",
       "                sliceStart = ui.symbols.menuItemInactive.length;\n",
       "              }\n",
       "              if(toActive){\n",
       "                keyElement.innerHTML = ui.symbols.menuItemActive + currentText.slice(sliceStart);\n",
       "                keyElement.style.backgroundColor = \"#f5f5f5\";\n",
       "                keyElement.style.color = \"black\";\n",
       "                keyElement.style.borderColor = \"#999\";\n",
       "                keyElement.style.boxShadow = \"0px 0px 3px rgba(0, 0, 0, 0.35)\";\n",
       "                valElement.style.display = \"block\";\n",
       "              } else {\n",
       "                keyElement.innerHTML = ui.symbols.menuItemInactive + currentText.slice(sliceStart);\n",
       "                keyElement.style.backgroundColor = \"white\";\n",
       "                keyElement.style.color = \"#222\";\n",
       "                keyElement.style.borderColor = \"#ccc\";\n",
       "                keyElement.style.boxShadow = \"0px 0px 3px rgba(0, 0, 0, 0.2)\";\n",
       "                valElement.style.display = \"none\";\n",
       "              }\n",
       "            },\n",
       "\n",
       "            toggleItem(keyElement, valElement){\n",
       "              const toActive = !(valElement.style.display !== \"none\");\n",
       "              ui.composites.menu.setItem(keyElement, valElement, toActive);\n",
       "            },\n",
       "          },\n",
       "\n",
       "          details:{\n",
       "            calculateHeightDifference(){\n",
       "              let outerHeight = null;\n",
       "              try{\n",
       "                const graphContainerComputedStyle = window.getComputedStyle(ui.elements.graphContainer),\n",
       "                  detailsContainerComputedStyle = window.getComputedStyle(ui.elements.detailsContainer),\n",
       "                  border1 = parseFloat(graphContainerComputedStyle.borderBottomWidth),\n",
       "                  margin = parseFloat(detailsContainerComputedStyle.marginTop),\n",
       "                  border2 = parseFloat(detailsContainerComputedStyle.borderTopWidth);\n",
       "                outerHeight = border1 + margin + border2;\n",
       "                if(!isFinite(outerHeight) || outerHeight === null){\n",
       "                  throw \"Invalid number\";\n",
       "                }\n",
       "              } catch(e){\n",
       "                // Hard coded fallback, depends on CSS of containers (1px borders, 5px margin)\n",
       "                outerHeight = 7.0;\n",
       "              }\n",
       "              return state.detailsContainerHeight + outerHeight\n",
       "            },\n",
       "\n",
       "            show(init=false){\n",
       "              // Visibility\n",
       "              ui.elements.detailsContainer.style.display = \"block\";\n",
       "              if(!init){\n",
       "                // Height\n",
       "                const heightDiff = ui.composites.details.calculateHeightDifference();\n",
       "                state.graphContainerHeight -= heightDiff;\n",
       "                if(state.graphContainerHeight < 70){\n",
       "                  state.graphContainerHeight = 70;\n",
       "                }\n",
       "                // Update rest of UI\n",
       "                ui.composites.responsiveContainer.setSizes();\n",
       "                ui.composites.graph.updateGraphDrawingArea();\n",
       "              }\n",
       "            },\n",
       "\n",
       "            hide(init=false){\n",
       "              // Visibility\n",
       "              ui.elements.detailsContainer.style.display = \"none\";\n",
       "              if(!init){\n",
       "                // Height\n",
       "                const heightDiff = ui.composites.details.calculateHeightDifference();\n",
       "                state.graphContainerHeight += heightDiff;\n",
       "                // Update rest of UI\n",
       "                ui.composites.responsiveContainer.setSizes();\n",
       "                ui.composites.graph.updateGraphDrawingArea();\n",
       "              }\n",
       "            },\n",
       "\n",
       "            toggle(){\n",
       "              // Update details button\n",
       "              const toggleDiv = ui.elements.detailsToggleDiv;\n",
       "              state.showDetails = !state.showDetails;\n",
       "              if(state.showDetails){\n",
       "                toggleDiv.innerText = ui.symbols.detailsShown;\n",
       "                ui.composites.details.show();\n",
       "              } else {\n",
       "                toggleDiv.innerHTML = ui.symbols.detailsHidden;\n",
       "                ui.composites.details.hide();\n",
       "              }\n",
       "            },\n",
       "          },\n",
       "\n",
       "          download:{\n",
       "            png(filename){\n",
       "              ui.composites.download._rasterImage(filename, \"png\");\n",
       "            },\n",
       "\n",
       "            jpg(filename){\n",
       "              ui.composites.download._rasterImage(filename, \"jpeg\");\n",
       "            },\n",
       "\n",
       "            _rasterImage(filename, format, resolutionFactor=4.0){\n",
       "              const renderer = state.webglGraph.renderer(),\n",
       "                scene = state.webglGraph.scene(),\n",
       "                camera = state.webglGraph.camera(),\n",
       "                mimeType = \"image/\" + format,\n",
       "                size = new THREE.Vector2(0, 0);\n",
       "\n",
       "              renderer.getSize(size);\n",
       "              const width = size.x,\n",
       "                height = size.y;\n",
       "\n",
       "              function upsize(){\n",
       "                renderer.setSize(width * resolutionFactor, height * resolutionFactor);\n",
       "                renderer.render(scene, camera);\n",
       "              }\n",
       "              function downsize(){\n",
       "                renderer.setSize(width, height);\n",
       "                renderer.render(scene, camera);\n",
       "              }\n",
       "              // Increase resolution\n",
       "              upsize();\n",
       "              // Create image and decrease solution to original value\n",
       "              function finishedBlobCallback(blob){\n",
       "                ui.composites.download._blobToFileDownload(blob, filename);\n",
       "                downsize();\n",
       "              }\n",
       "              renderer.domElement.toBlob(finishedBlobCallback, mimeType, 1.0);\n",
       "            },\n",
       "\n",
       "            _blobToFileDownload(blob, filename){\n",
       "              const url = URL.createObjectURL(blob),\n",
       "                a = document.createElement(\"a\");\n",
       "              function handleClick(){\n",
       "                setTimeout(function(){\n",
       "                  // Long waiting time before removal for slow devices like mobile phones\n",
       "                  URL.revokeObjectURL(url);\n",
       "                  this.removeEventListener(\"click\", handleClick);\n",
       "                }, 20000);\n",
       "              };\n",
       "              document.body.appendChild(a);\n",
       "              a.href = url;\n",
       "              a.download = filename;\n",
       "              a.addEventListener(\"click\", handleClick, false);\n",
       "              a.click();\n",
       "              document.body.removeChild(a);\n",
       "            },\n",
       "          },\n",
       "\n",
       "          selection(element, optionList, valueList=undefined) {\n",
       "            while(element.hasChildNodes()){\n",
       "              element.removeChild(element.firstChild);\n",
       "            }\n",
       "            for(let i=0; i<optionList.length; i++){\n",
       "              let text = optionList[i];\n",
       "              let value = text;\n",
       "              if(valueList){\n",
       "                value = valueList[i];\n",
       "              }\n",
       "              let opt = document.createElement(\"option\");\n",
       "              opt.appendChild(document.createTextNode(text));\n",
       "              opt.value = value;\n",
       "              element.appendChild(opt);\n",
       "            }\n",
       "          },\n",
       "\n",
       "          tooltip:{\n",
       "            show(xShift=null, yShift=null){\n",
       "              if(isFinite(xShift) && xShift !== null){\n",
       "                ui.elements.tooltipContainer.style.left =  parseInt(xShift) + \"px\";\n",
       "              }\n",
       "              if(isFinite(yShift) && yShift !== null){\n",
       "                ui.elements.tooltipContainer.style.top = parseInt(yShift) + \"px\";\n",
       "              }\n",
       "              ui.elements.tooltipContainer.style.transition = \"visibility 0s, opacity 0.1s\";\n",
       "              ui.elements.tooltipContainer.style.visibility = \"visible\";\n",
       "              ui.elements.tooltipContainer.style.opacity = 1.0;\n",
       "            },\n",
       "\n",
       "            hide(){\n",
       "              ui.elements.tooltipContainer.style.transition = \"visibility 0.3s, opacity 0.3s ease-in\";\n",
       "              ui.elements.tooltipContainer.style.visibility = \"hidden\";\n",
       "              ui.elements.tooltipContainer.style.opacity = 0.0;\n",
       "            },\n",
       "          },\n",
       "\n",
       "          progressBar:{\n",
       "            create(){\n",
       "              // Main container\n",
       "              this.mainContainer = document.createElement(\"div\");\n",
       "              this.mainContainer.id = \"iZc2xt0lSijSyZl8x-progress-container\";\n",
       "              this.mainContainer.style.backgroundColor = state.shownData.general.background_color;\n",
       "              ui.elements.graphContainer.style.backgroundColor = state.shownData.general.background_color;\n",
       "              // Text container\n",
       "              const numNodes = state.parsedData.nodes.length;\n",
       "              this.textContainer = document.createElement(\"div\");\n",
       "              this.textContainer.innerText = \"Large graph with \" + numNodes + \" nodes. Calculating an initial layout before visualizing it.\";\n",
       "              this.textContainer.style.textAlign = \"center\";\n",
       "              // Bar container\n",
       "              this.outerBarContainer = document.createElement(\"div\");\n",
       "              this.outerBarContainer.style.border = \"1px solid black\";\n",
       "              this.outerBarContainer.style.borderRadius = \"4px\";\n",
       "              this.outerBarContainer.style.marginTop = \"1ex\";\n",
       "              this.outerBarContainer.style.padding = \"1px\";\n",
       "              this.innerBarContainer = document.createElement(\"div\");\n",
       "              this.innerBarContainer.style.backgroundColor = \"black\";\n",
       "              this.innerBarContainer.style.width = \"0%\";\n",
       "              this.innerBarContainer.style.height = \"8px\";\n",
       "              this.innerBarContainer.style.borderRadius = \"3px\";\n",
       "              // Add them to DOM\n",
       "              this.outerBarContainer.appendChild(this.innerBarContainer);\n",
       "              this.mainContainer.appendChild(this.textContainer);\n",
       "              // this.mainContainer.appendChild(this.outerBarContainer);  // Hide bar (not updated)\n",
       "              ui.elements.graphContainer.appendChild(this.mainContainer);\n",
       "            },\n",
       "\n",
       "            update(percentage){\n",
       "              this.innerBarContainer.style.width = percentage + \"%\";\n",
       "            },\n",
       "\n",
       "            remove(){\n",
       "              ui.elements.graphContainer.removeChild(this.mainContainer);\n",
       "            }\n",
       "          },\n",
       "\n",
       "          graph:{\n",
       "            createGraph(){\n",
       "              // Remove existing elements\n",
       "              ui.deleteChildElements(ui.elements.graphContainer);\n",
       "\n",
       "              // Create new elements\n",
       "              // - Graph\n",
       "              state.webglGraph = ForceGraph3D()(ui.elements.graphContainer)\n",
       "                .showNavInfo(false)\n",
       "                .backgroundColor(state.shownData.general.background_color)\n",
       "                .width(state.graphContainerWidth)\n",
       "                .height(state.graphContainerHeight);\n",
       "              // Attempt to prevent some memory leaks\n",
       "              const renderer = state.webglGraph.renderer();\n",
       "              state.threeObjects.trackRenderer(\"currentGraph\", renderer);\n",
       "              const renderTarget = renderer.getRenderTarget();\n",
       "              state.threeObjects.trackRenderTarget(\"currentRenderTarget\", renderTarget);\n",
       "              // - Menu toggle button\n",
       "              if(state.showMenuToggleButton){\n",
       "                const menuDiv = document.createElement(\"div\");\n",
       "                if(state.showMenu){\n",
       "                  menuDiv.innerText = ui.symbols.menuShown;\n",
       "                } else {\n",
       "                  menuDiv.innerText = ui.symbols.menuHidden;\n",
       "                }\n",
       "                menuDiv.id = \"iZc2xt0lSijSyZl8x-menu-toggle-button\";\n",
       "                menuDiv.onclick = ui.composites.menu.toggle;\n",
       "                ui.elements.graphContainer.appendChild(menuDiv);\n",
       "                ui.elements.menuToggleDiv = menuDiv;\n",
       "              }\n",
       "              // - Details toggle button\n",
       "              if(state.showDetailsToggleButton){\n",
       "                const detailsDiv = document.createElement(\"div\");\n",
       "                if(state.showDetails){\n",
       "                  detailsDiv.innerText = ui.symbols.detailsShown;\n",
       "                } else {\n",
       "                  detailsDiv.innerText = ui.symbols.detailsHidden;\n",
       "                }\n",
       "                detailsDiv.id = \"iZc2xt0lSijSyZl8x-details-toggle-button\";\n",
       "                detailsDiv.onclick = ui.composites.details.toggle;\n",
       "                ui.elements.graphContainer.appendChild(detailsDiv);\n",
       "                ui.elements.detailsToggleDiv = detailsDiv;\n",
       "              }\n",
       "              // Wait a bit to finish UI rendering, then start potentially slow layout computation\n",
       "              setTimeout(function(){\n",
       "                // - Layout algorithm\n",
       "                ui.composites.graph.setLayout();\n",
       "                // - Data\n",
       "                const data = {\n",
       "                  nodes: state.shownData.nodes,\n",
       "                  links: state.shownData.edges,\n",
       "                };\n",
       "                state.webglGraph\n",
       "                  .graphData(data);\n",
       "                // - Nodes\n",
       "                state.webglGraph\n",
       "                  .nodeThreeObject(ui.composites.graph.createSingleNodeObject)\n",
       "                  .nodeVisibility(state.showNodes);\n",
       "                // - Edges\n",
       "                // Uses linkMaterial because linkOpacity can only be a single number, not function\n",
       "                state.webglGraph\n",
       "                  .linkVisibility(state.showEdges)\n",
       "                  .linkWidth(edge => edge.size)\n",
       "                  .linkCurvature(ui.composites.graph._calcEdgeCurvature)\n",
       "                  .linkMaterial(ui.composites.graph.createSingleEdgeMaterial);\n",
       "                if(state.shownData.general.directed){\n",
       "                  state.webglGraph\n",
       "                    .linkDirectionalArrowColor(edge => state.shownData.general.arrow_color)\n",
       "                    .linkDirectionalArrowLength(edge => state.shownData.general.arrow_size)\n",
       "                    .linkDirectionalArrowRelPos(ui.composites.graph._calcArrowPosition);\n",
       "                }\n",
       "                // - Graph behavior\n",
       "                ui.composites.graph.setBehavior();\n",
       "              }, 250);\n",
       "            },\n",
       "\n",
       "            _calcArrowPosition(edge){\n",
       "              if(edge.source === edge.target){\n",
       "                // Case 1: Self loop\n",
       "                return 0.5;\n",
       "              } else{\n",
       "                // Case 2: Normal edge\n",
       "                const dx = edge.target.x - edge.source.x,\n",
       "                  dy = edge.target.y - edge.source.y,\n",
       "                  dz = edge.target.z - edge.source.z,\n",
       "                  len = Math.sqrt(dx**2 + dy**2 + dz**2);\n",
       "                return 0.99 - edge.target.size_half / len;\n",
       "              }\n",
       "            },\n",
       "\n",
       "            setLayout(){\n",
       "              // Store all forces provided by the library (for reuse when turning them off)\n",
       "              state.predefinedForces = {\n",
       "                \"charge\": state.webglGraph.d3Force(\"charge\"),\n",
       "                \"link\": state.webglGraph.d3Force(\"link\"),\n",
       "                \"center\": state.webglGraph.d3Force(\"center\"),\n",
       "              }\n",
       "              ui.composites.graph.simulationManager.setAllForces();\n",
       "              state.webglGraph\n",
       "                .d3VelocityDecay(0.3);  // default 0.4, lower value means less friction\n",
       "\n",
       "              // - Progress bar: only if large graph, stops simulation to get initial static image\n",
       "              const numNodes = state.parsedData.nodes.length;\n",
       "              if(numNodes > state.largeGraphThreshold){\n",
       "                // Layout start\n",
       "                ui.composites.progressBar.create();\n",
       "                let numIterations = 40;\n",
       "                if(numNodes >= 25000){\n",
       "                  numIterations = 9;\n",
       "                } else if(numNodes >= 10000){\n",
       "                  numIterations = 13;\n",
       "                } else if(numNodes >= 5000){\n",
       "                  numIterations = 18;\n",
       "                } else if(numNodes >= 2000){\n",
       "                  numIterations = 25;\n",
       "                } else if(numNodes >= 1000){\n",
       "                  numIterations = 35;\n",
       "                }\n",
       "                // Layout update\n",
       "                state.webglGraph\n",
       "                  .warmupTicks(numIterations);\n",
       "                // Layout finished\n",
       "                state.webglGraph\n",
       "                  .onEngineTick(function(){\n",
       "                    // Freeze graph after warmup to get a static rendering\n",
       "                    state.webglGraph.cooldownTicks(0);\n",
       "                    // Remove progress message\n",
       "                    ui.composites.progressBar.remove();\n",
       "                  })\n",
       "                  .onEngineStop(function(){\n",
       "                    // Remove tick functions\n",
       "                    state.webglGraph.onEngineTick(function(){});\n",
       "                    state.webglGraph.onEngineStop(function(){});\n",
       "                    // Unfreeze graph for future user interaction\n",
       "                    state.webglGraph.cooldownTicks(Infinity);\n",
       "                  })\n",
       "              }\n",
       "            },\n",
       "\n",
       "            setBehavior(){\n",
       "              // - Node click behavior\n",
       "              function createNodeText(node){\n",
       "                let htmlText = \"<div>Node: \" + String(node.id) + \"</div>\";\n",
       "                if(typeof(node.click) !== \"undefined\" && node.click !== \"\"){\n",
       "                  htmlText += '<div id=\"iZc2xt0lSijSyZl8x-details-user-provided\">' + node.click + '</div>';\n",
       "                }\n",
       "                return htmlText;\n",
       "              }\n",
       "              state.webglGraph\n",
       "                .onNodeClick(function(node){\n",
       "                  try {\n",
       "                    ui.elements.detailsBody.innerHTML = createNodeText(node);\n",
       "                  } catch(e) {\n",
       "                  };\n",
       "                });\n",
       "              // - Node drag behavior\n",
       "              state.webglGraph\n",
       "                .onNodeDragEnd(function(node){\n",
       "                  if(state.nodeDragFix){\n",
       "                    node.fx = node.x;\n",
       "                    node.fy = node.y;\n",
       "                    node.fz = node.z;\n",
       "                  } else{\n",
       "                    node.fx = null;\n",
       "                    node.fy = null;\n",
       "                    node.fz = null;\n",
       "                  }\n",
       "                });\n",
       "              // - Edge click behavior\n",
       "              function createEdgeText(edge){\n",
       "                let htmlText = \"<div>Edge: \" + String(edge.id) + \"</div>\";\n",
       "                if(typeof(edge.click) !== \"undefined\" && edge.click !== \"\"){\n",
       "                  htmlText += '<div id=\"iZc2xt0lSijSyZl8x-details-user-provided\">' + edge.click + '</div>';\n",
       "                }\n",
       "                return htmlText;\n",
       "              }\n",
       "              state.webglGraph\n",
       "                .onLinkClick(function(edge){\n",
       "                  try {\n",
       "                    ui.elements.detailsBody.innerHTML = createEdgeText(edge);\n",
       "                  } catch(e){\n",
       "                  };\n",
       "                });\n",
       "              // - Hover behavior\n",
       "              document.addEventListener(\"mousemove\", function(event){\n",
       "                // Hack to get mouse position in hover event handler\n",
       "                // https://stackoverflow.com/questions/2601097/how-to-get-the-mouse-position-without-events-without-moving-the-mouse\n",
       "                state.cursorX = event.clientX;\n",
       "                state.cursorY = event.clientY;\n",
       "              });\n",
       "              function calculateRelativePosition(){\n",
       "                const cont = ui.elements.mainContainer,\n",
       "                  contAbsX = cont.offsetLeft,\n",
       "                  contAbsY = cont.offsetTop,\n",
       "                  contBoundingRect = cont.getBoundingClientRect(),\n",
       "                  contClientX = contBoundingRect.left,\n",
       "                  contClientY = contBoundingRect.top,\n",
       "                  contWidth = contBoundingRect.width;\n",
       "                let deltaX = state.cursorX - contClientX,\n",
       "                  deltaY = state.cursorY - contClientY,\n",
       "                  deltaXMax = contWidth * 0.85;\n",
       "                if(deltaX > deltaXMax){\n",
       "                  deltaX = deltaXMax;\n",
       "                }\n",
       "                const xShift = contAbsX + deltaX + 7,\n",
       "                  yShift = contAbsY + deltaY + 14;\n",
       "                return {\"xShift\": xShift, \"yShift\": yShift};\n",
       "              }\n",
       "              // - Node hover behavior\n",
       "              state.webglGraph\n",
       "                .onNodeHover(function (node){\n",
       "                  if(node !== null){\n",
       "                    if(typeof(node.hover) !== \"undefined\"){\n",
       "                      if(state.nodeHoverTooltip){\n",
       "                        const relPos = calculateRelativePosition();\n",
       "                        ui.elements.tooltipContainer.innerHTML = node.hover;\n",
       "                        ui.composites.tooltip.show(relPos.xShift, relPos.yShift);\n",
       "                      }\n",
       "                    }\n",
       "                  } else{\n",
       "                    ui.composites.tooltip.hide();\n",
       "                  }\n",
       "                });\n",
       "              // - Edge hover behavior\n",
       "              state.webglGraph\n",
       "                .onLinkHover(function (edge){\n",
       "                  if(edge !== null){\n",
       "                    if(typeof(edge.hover) !== \"undefined\"){\n",
       "                      if(state.edgeHoverTooltip){\n",
       "                        const relPos = calculateRelativePosition();\n",
       "                        ui.elements.tooltipContainer.innerHTML = edge.hover;\n",
       "                        ui.composites.tooltip.show(relPos.xShift, relPos.yShift);\n",
       "                      }\n",
       "                    }\n",
       "                  } else{\n",
       "                    ui.composites.tooltip.hide();\n",
       "                  }\n",
       "                });\n",
       "            },\n",
       "\n",
       "            updateGraphDrawingArea(){\n",
       "              state.webglGraph\n",
       "                .width(state.graphContainerWidth)\n",
       "                .height(state.graphContainerHeight)\n",
       "            },\n",
       "\n",
       "            // Nodes\n",
       "            createSingleNodeObject(node){\n",
       "              let obj = null;\n",
       "              // Object creator functions\n",
       "              function createGeometicObject(id, shape, size, sizeHalf, color, opacity){\n",
       "                const material = new THREE.MeshLambertMaterial({\n",
       "                  color: color,\n",
       "                  opacity: opacity,\n",
       "                  transparent: true,\n",
       "                  depthWrite: true,\n",
       "                });\n",
       "                state.threeObjects.trackMaterial(id, material);\n",
       "                let geometry = null;\n",
       "                if (shape == \"rectangle\") {\n",
       "                  geometry = new THREE.BoxGeometry(size, size, size);  // width, height, depth\n",
       "                } else if (shape == \"hexagon\") {\n",
       "                  geometry = new THREE.IcosahedronGeometry(sizeHalf);  // radius\n",
       "                } else {\n",
       "                  geometry = new THREE.SphereGeometry(sizeHalf, 16, 12);  // radius, widthSegments, heightSegments\n",
       "                }\n",
       "                state.threeObjects.trackGeometry(id, geometry);\n",
       "                obj = new THREE.Mesh(geometry, material);\n",
       "                return obj;\n",
       "              }\n",
       "              function createImageObject(id, image, size){\n",
       "                const material = new THREE.MeshBasicMaterial({\n",
       "                  transparent: true,\n",
       "                  depthWrite: false,\n",
       "                  opacity: 0.0,\n",
       "                });\n",
       "                const geometry = new THREE.SphereGeometry(size);\n",
       "                obj = new THREE.Mesh(geometry, material);\n",
       "                state.threeObjects.trackGeometry(id, geometry);\n",
       "                state.threeObjects.trackMaterial(id, material);\n",
       "                function onTextureLoad(texture){\n",
       "                  const width = texture.image.width,\n",
       "                    height = texture.image.height,\n",
       "                    factor1 = width / size,\n",
       "                    factor2 = height / size,\n",
       "                    largerFactor = (factor1 > factor2) ? factor1 : factor2;\n",
       "                  const imageMaterial = new THREE.SpriteMaterial({map: imageTexture});\n",
       "                  state.threeObjects.trackMaterial(id+\"image\", imageMaterial);\n",
       "                  const imageSprite = new THREE.Sprite(imageMaterial);\n",
       "                  imageSprite.scale.set(width / largerFactor, height / largerFactor, 1);\n",
       "                  obj.add(imageSprite);\n",
       "                }\n",
       "                const imageTexture = new THREE.TextureLoader().load(image, onTextureLoad);\n",
       "                state.threeObjects.trackTexture(id, imageTexture);\n",
       "                imageTexture.minFilter = THREE.LinearFilter;\n",
       "                return obj;\n",
       "              }\n",
       "              function createTextSpriteObject(id, text, fontSize, fontColor, fontBorderColor, fontName){\n",
       "                // Parameter processing\n",
       "                fontSize = fontSize * 10;\n",
       "                const fontStyle = fontSize + \"px \" + fontName;\n",
       "                // Canvas preparation: appropriate size for given text and text style\n",
       "                const canvas = document.createElement(\"canvas\"),\n",
       "                  context = canvas.getContext(\"2d\");\n",
       "                context.font = fontStyle;\n",
       "                const exactWidth = context.measureText(text).width,\n",
       "                  approxHeight = context.measureText(\"M\").width * 2.0;\n",
       "                canvas.width = exactWidth;\n",
       "                canvas.height = approxHeight;\n",
       "                context.font = fontStyle;\n",
       "                // Text to canvas\n",
       "                if(state.showNodeLabelBorders){\n",
       "                  context.lineWidth = 6;\n",
       "                  context.strokeStyle = fontBorderColor;\n",
       "                  context.strokeText(text, 0, fontSize);\n",
       "                }\n",
       "                context.fillStyle = fontColor;\n",
       "                context.fillText(text, 0, fontSize);\n",
       "                // Canvas to sprite\n",
       "                const texture = new THREE.Texture(canvas);\n",
       "                state.threeObjects.trackTexture(id+\"text\", texture);\n",
       "                texture.minFilter = THREE.LinearFilter;\n",
       "                texture.needsUpdate = true;\n",
       "                const spriteMaterial = new THREE.SpriteMaterial({map: texture, depthWrite: false}),\n",
       "                  sprite = new THREE.Sprite(spriteMaterial),\n",
       "                  sizeCorrectionFactor = 0.1;\n",
       "                state.threeObjects.trackMaterial(id+\"text\", spriteMaterial);\n",
       "                sprite.scale.set(exactWidth * sizeCorrectionFactor, approxHeight * sizeCorrectionFactor, 1);\n",
       "                return sprite;\n",
       "              }\n",
       "              // Parent object: Image or geometric object\n",
       "              if(state.showNodeImages && typeof(node.image) !== \"undefined\"){\n",
       "                obj = createImageObject(node.id, node.image, node.image_size);\n",
       "              } else{\n",
       "                obj = createGeometicObject(node.id, node.shape, node.size, node.size_half, node.color, node.opacity);\n",
       "              }\n",
       "              // Child object: Text sprite (optional)\n",
       "              if(state.showNodeLabels && node.label !== \"\"){\n",
       "                const sprite = createTextSpriteObject(\n",
       "                  node.id, node.label, node.label_size, node.label_color,\n",
       "                  state.shownData.general.background_color, state.nodeLabelFont);\n",
       "                let dx = 0,\n",
       "                  dy = -node.relative_label_placement,\n",
       "                  dz = 0;\n",
       "                sprite.position.set(dx, dy, dz);\n",
       "                obj.add(sprite);\n",
       "              }\n",
       "              return obj;\n",
       "            },\n",
       "\n",
       "            updateNodeVisibilities(){\n",
       "              state.webglGraph\n",
       "                .nodeVisibility(state.showNodes);\n",
       "            },\n",
       "\n",
       "            updateNodeSizes(){\n",
       "              state.webglGraph\n",
       "                .nodeThreeObject(ui.composites.graph.createSingleNodeObject);\n",
       "            },\n",
       "\n",
       "            // Node images\n",
       "            updateNodeImages(){\n",
       "              state.webglGraph\n",
       "                .nodeThreeObject(ui.composites.graph.createSingleNodeObject)\n",
       "            },\n",
       "\n",
       "            // Node labels\n",
       "            updateNodeLabels(){\n",
       "              state.webglGraph\n",
       "                .nodeThreeObject(ui.composites.graph.createSingleNodeObject)\n",
       "            },\n",
       "\n",
       "            // Edges\n",
       "            createSingleEdgeMaterial(edge){\n",
       "              const material = new THREE.MeshLambertMaterial({\n",
       "                color: edge.color,\n",
       "                opacity: edge.opacity,\n",
       "                transparent: true,\n",
       "                depthWrite: true,\n",
       "              });\n",
       "              return material;\n",
       "            },\n",
       "\n",
       "            updateEdgeVisibilities(){\n",
       "              state.webglGraph\n",
       "                .linkVisibility(state.showEdges)\n",
       "            },\n",
       "\n",
       "            updateEdgeSizes(){\n",
       "              state.webglGraph\n",
       "                .linkWidth(edge => edge.size);\n",
       "            },\n",
       "\n",
       "            _calcEdgeCurvature(edge){\n",
       "              if(edge.source === edge.target){\n",
       "                return ui.composites.graph._calcSelfLoopCurvature(edge);\n",
       "              } else{\n",
       "                return ui.composites.graph._calcNormalEdgeCurvature(edge);\n",
       "              }\n",
       "            },\n",
       "\n",
       "            _calcNormalEdgeCurvature(edge){\n",
       "              return edge.multi_edge_curvature_factor;\n",
       "            },\n",
       "\n",
       "            _calcSelfLoopCurvature(edge){\n",
       "              return edge.source.size / 50.0 + edge.multi_edge_counter / 4.0 + Math.abs(edge.multi_edge_curvature_factor);\n",
       "            },\n",
       "\n",
       "            updateEdgeCurvatures(){\n",
       "              state.webglGraph\n",
       "                .linkCurvature(ui.composites.graph._calcEdgeCurvature)\n",
       "                .linkVisibility(state.showEdges);  // causes a redraw, relevant if graph has stabilized\n",
       "            },\n",
       "\n",
       "            // Layout algorithm\n",
       "            simulationManager:{\n",
       "              move(){\n",
       "                if(state.layoutAlgorithmActive){\n",
       "                  state.webglGraph.d3ReheatSimulation();\n",
       "                }\n",
       "              },\n",
       "              restart(){\n",
       "                state.webglGraph.cooldownTicks(Infinity);\n",
       "                this.setAllForces();\n",
       "                this.move();\n",
       "              },\n",
       "              stop(){\n",
       "                state.webglGraph.cooldownTicks(0);\n",
       "                this.removeAllForces();\n",
       "              },\n",
       "              releaseFixedNodes(){\n",
       "                const nodes = state.shownData.nodes;\n",
       "                for(let i=0; i<nodes.length; i++){\n",
       "                  const node = nodes[i];\n",
       "                  node.fx = null;\n",
       "                  node.fy = null;\n",
       "                  node.fz = null;\n",
       "                }\n",
       "              },\n",
       "              setAllForces(){\n",
       "                this.setCenteringForce();\n",
       "                this.setLinksForce();\n",
       "                this.setManyBodyForce();\n",
       "                this.setXPositioningForce();\n",
       "                this.setYPositioningForce();\n",
       "                this.setZPositioningForce();\n",
       "              },\n",
       "              removeAllForces(){\n",
       "                state.webglGraph.d3Force(\"center\", null);\n",
       "                state.webglGraph.d3Force(\"link\", null);\n",
       "                state.webglGraph.d3Force(\"charge\", null);\n",
       "                state.webglGraph.d3Force(\"x-positioning\", null);\n",
       "                state.webglGraph.d3Force(\"y-positioning\", null);\n",
       "                state.webglGraph.d3Force(\"z-positioning\", null);\n",
       "              },\n",
       "              setCenteringForce(){\n",
       "                let centeringForce = null;\n",
       "                if(state.useCenteringForce && state.layoutAlgorithmActive){\n",
       "                  centeringForce = state.predefinedForces.center\n",
       "                    .x(0.0)\n",
       "                    .y(0.0);\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"center\", centeringForce);\n",
       "              },\n",
       "              setLinksForce(){\n",
       "                let linksForce = null;\n",
       "                if(state.useLinksForce && state.layoutAlgorithmActive){\n",
       "                  const nodes = state.shownData.nodes,\n",
       "                    edges = state.shownData.edges;\n",
       "                  if(!state.shownData.edgeCounts){\n",
       "                    const count = {};\n",
       "                    for(let i=0; i<edges.length; i++){\n",
       "                      const edge = edges[i];\n",
       "                      count[edge.source.id] = (count[edge.source.id] || 0) + 1;\n",
       "                      count[edge.target.id] = (count[edge.target.id] || 0) + 1;\n",
       "                    }\n",
       "                    state.shownData.edgeCounts = count;\n",
       "                  }\n",
       "                  const appearanceAdaptionFactor = 2.0;\n",
       "                  linksForce = state.predefinedForces.link\n",
       "                    .distance(state.linksForceDistance * appearanceAdaptionFactor)\n",
       "                    .strength(function(d){\n",
       "                      // Adapted from https://github.com/d3/d3-force/blob/master/src/link.js\n",
       "                      const fixedConnectivity = Math.min(\n",
       "                        state.shownData.edgeCounts[d.source.id],\n",
       "                        state.shownData.edgeCounts[d.target.id]\n",
       "                      );\n",
       "                      const adjustableStrength = 2.0 * state.linksForceStrength;\n",
       "                      return adjustableStrength / fixedConnectivity;\n",
       "                    });\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"link\", linksForce);\n",
       "              },\n",
       "              setManyBodyForce(){\n",
       "                let manyBodyForce = null;\n",
       "                if(state.useManyBodyForce && state.layoutAlgorithmActive){\n",
       "                  manyBodyForce = state.predefinedForces.charge\n",
       "                    .strength(state.manyBodyForceStrength)\n",
       "                    .theta(state.manyBodyForceTheta);\n",
       "                  if(state.useManyBodyForceMinDistance){\n",
       "                    manyBodyForce.distanceMin(state.manyBodyForceMinDistance);\n",
       "                  } else{\n",
       "                    manyBodyForce.distanceMin(0.0);\n",
       "                  }\n",
       "                  if(state.useManyBodyForceMaxDistance){\n",
       "                    manyBodyForce.distanceMax(state.manyBodyForceMaxDistance);\n",
       "                  } else{\n",
       "                    manyBodyForce.distanceMax(Infinity);\n",
       "                  }\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"charge\", manyBodyForce);\n",
       "              },\n",
       "              setXPositioningForce(){\n",
       "                let xPositioningForce = null;\n",
       "                if(state.useXPositioningForce && state.layoutAlgorithmActive){\n",
       "                  function userDefinedForce(alpha) {\n",
       "                    const nodes = state.shownData.nodes;\n",
       "                    for(let i=0; i<nodes.length; i++) {\n",
       "                      const node = nodes[i];\n",
       "                      node.vx += (0.0 - node.x) * alpha * state.xPositioningForceStrength;\n",
       "                    }\n",
       "                  }\n",
       "                  xPositioningForce = userDefinedForce;\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"x-positioning\", xPositioningForce);\n",
       "              },\n",
       "              setYPositioningForce(){\n",
       "                let yPositioningForce = null;\n",
       "                if(state.useYPositioningForce && state.layoutAlgorithmActive){\n",
       "                  function userDefinedForce(alpha) {\n",
       "                    const nodes = state.shownData.nodes;\n",
       "                    for(let i=0; i<nodes.length; i++) {\n",
       "                      const node = nodes[i];\n",
       "                      node.vy += (0.0 - node.y) * alpha * state.yPositioningForceStrength;\n",
       "                    }\n",
       "                  }\n",
       "                  yPositioningForce = userDefinedForce;\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"y-positioning\", yPositioningForce);\n",
       "              },\n",
       "              setZPositioningForce(){\n",
       "                let zPositioningForce = null;\n",
       "                if(state.useZPositioningForce && state.layoutAlgorithmActive){\n",
       "                  function userDefinedForce(alpha) {\n",
       "                    const nodes = state.shownData.nodes;\n",
       "                    for(let i=0; i<nodes.length; i++) {\n",
       "                      const node = nodes[i];\n",
       "                      node.vz += (0.0 - node.z) * alpha * state.zPositioningForceStrength;\n",
       "                    }\n",
       "                  }\n",
       "                  zPositioningForce = userDefinedForce;\n",
       "                }\n",
       "                state.webglGraph.d3Force(\"z-positioning\", zPositioningForce);\n",
       "              },\n",
       "            },\n",
       "          },\n",
       "        },\n",
       "\n",
       "        init(){\n",
       "          // Containers\n",
       "          ui.composites.responsiveContainer.init();\n",
       "          // Graph selection (only visible if multiple graphs in data)\n",
       "          if(state.rawData.length > 1){\n",
       "            ui.elements.graphSelectionContainer.style.display = ui.convert.boolToDisplayStyle(true);\n",
       "            const optionList = [],\n",
       "              valueList = [];\n",
       "            let label;\n",
       "            for(let i=0; i<state.rawData.length; i++){\n",
       "              const graph = state.rawData[i];\n",
       "              try{\n",
       "                label = String(graph.label);\n",
       "                if(label === \"undefined\" || label === \"\"){\n",
       "                  throw \"Invalid label\";\n",
       "                }\n",
       "              } catch(e){\n",
       "                label = \"Unnamed graph\";\n",
       "              }\n",
       "              const name = String(i+1) + \": \" + label;\n",
       "              optionList.push(name);\n",
       "              valueList.push(String(i));\n",
       "            }\n",
       "            ui.composites.selection(ui.elements.graphSelection, optionList, valueList);\n",
       "          }\n",
       "          // General (menu item)\n",
       "          ui.composites.menu.setItem(ui.elements.generalHead, ui.elements.generalBody, true);\n",
       "          // Data selection (menu item)\n",
       "          ui.composites.menu.setItem(ui.elements.dataHead, ui.elements.dataBody, false);\n",
       "          // - Node size\n",
       "          ui.elements.nodeSizeNormalizationCheckbox.checked = state.useNodeSizeNormalization;\n",
       "          ui.elements.nodeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useNodeSizeNormalization);\n",
       "          ui.elements.nodeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMin);\n",
       "          ui.elements.nodeSizeNormalizationMinSlider.value = state.nodeSizeNormalizationMin;\n",
       "          ui.elements.nodeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMax);\n",
       "          ui.elements.nodeSizeNormalizationMaxSlider.value = state.nodeSizeNormalizationMax;\n",
       "          // - Edge size\n",
       "          ui.elements.edgeSizeNormalizationCheckbox.checked = state.useEdgeSizeNormalization;\n",
       "          ui.elements.edgeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useEdgeSizeNormalization);\n",
       "          ui.elements.edgeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMin);\n",
       "          ui.elements.edgeSizeNormalizationMinSlider.value = state.edgeSizeNormalizationMin;\n",
       "          ui.elements.edgeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMax);\n",
       "          ui.elements.edgeSizeNormalizationMaxSlider.value = state.edgeSizeNormalizationMax;\n",
       "          // Nodes\n",
       "          ui.composites.menu.setItem(ui.elements.nodeHead, ui.elements.nodeBody, false);\n",
       "          ui.elements.nodeCheckbox.checked = state.showNodes;\n",
       "          ui.elements.nodeSizeFactorText.innerHTML = ui.convert.numberToText(state.nodeSizeFactor);\n",
       "          ui.elements.nodeSizeFactorSlider.value = state.nodeSizeFactor;\n",
       "          ui.elements.nodeDragFixCheckbox.checked = state.nodeDragFix;\n",
       "          ui.elements.nodeHoverTooltipCheckbox.checked = state.nodeHoverTooltip;\n",
       "          // Node images\n",
       "          ui.composites.menu.setItem(ui.elements.nodeImageHead, ui.elements.nodeImageBody, false);\n",
       "          ui.elements.nodeImageMetaControl.style.display = false;\n",
       "          ui.elements.nodeImageCheckbox.checked = state.showNodeImages;\n",
       "          ui.elements.nodeImageSizeFactorText.innerHTML = ui.convert.numberToText(state.nodeImageSizeFactor);\n",
       "          ui.elements.nodeImageSizeFactorSlider.value = state.nodeImageSizeFactor;\n",
       "          // Node labels\n",
       "          ui.composites.menu.setItem(ui.elements.nodeLabelHead, ui.elements.nodeLabelBody, false);\n",
       "          ui.elements.nodeLabelCheckbox.checked = state.showNodeLabels;\n",
       "          ui.elements.nodeLabelBorderCheckbox.checked = state.showNodeLabelBorders;\n",
       "          ui.elements.nodeLabelSizeFactorText.innerHTML = ui.convert.numberToText(state.nodeLabelSizeFactor);\n",
       "          ui.elements.nodeLabelSizeFactorSlider.value = state.nodeLabelSizeFactor;\n",
       "          // Edges\n",
       "          ui.composites.menu.setItem(ui.elements.edgeHead, ui.elements.edgeBody, false);\n",
       "          ui.elements.edgeCheckbox.checked = state.showEdges;\n",
       "          ui.elements.edgeSizeFactorText.innerHTML = ui.convert.numberToText(state.edgeSizeFactor);\n",
       "          ui.elements.edgeSizeFactorSlider.value = state.edgeSizeFactor;\n",
       "          ui.elements.edgeCurvatureText.innerHTML = ui.convert.numberToText(state.edgeCurvature);\n",
       "          ui.elements.edgeCurvatureSlider.value = state.edgeCurvature;\n",
       "          ui.elements.edgeHoverTooltipCheckbox.checked = state.edgeHoverTooltip;\n",
       "          // Layout algorithm\n",
       "          ui.composites.menu.setItem(ui.elements.layoutAlgorithmHead, ui.elements.layoutAlgorithmBody, false);\n",
       "          ui.elements.simulationCheckbox.checked = state.layoutAlgorithmActive;\n",
       "          ui.elements.manyBodyForceCheckbox.checked = state.useManyBodyForce;\n",
       "          ui.elements.manyBodyForceContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForce);\n",
       "          ui.elements.manyBodyForceStrengthText.innerHTML = ui.convert.numberToText(state.manyBodyForceStrength);\n",
       "          ui.elements.manyBodyForceStrengthSlider.value = state.manyBodyForceStrength;\n",
       "          ui.elements.manyBodyForceThetaText.innerHTML = ui.convert.numberToText(state.manyBodyForceTheta);\n",
       "          ui.elements.manyBodyForceThetaSlider.value = state.manyBodyForceTheta;\n",
       "          ui.elements.manyBodyForceMinDistCheckbox.checked = state.useManyBodyForceMinDistance;\n",
       "          ui.elements.manyBodyForceMinDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMinDistance);\n",
       "          ui.elements.manyBodyForceMinDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMinDistance);\n",
       "          ui.elements.manyBodyForceMinDistSlider.value = state.manyBodyForceMinDistance;\n",
       "          ui.elements.manyBodyForceMaxDistCheckbox.checked = state.useManyBodyForceMaxDistance;\n",
       "          ui.elements.manyBodyForceMaxDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMaxDistance);\n",
       "          ui.elements.manyBodyForceMaxDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMaxDistance);\n",
       "          ui.elements.manyBodyForceMaxDistSlider.value = state.manyBodyForceMaxDistance;\n",
       "          ui.elements.linksForceCheckbox.checked = state.useLinksForce;\n",
       "          ui.elements.linksForceContainer.style.opacity = ui.convert.boolToOpacity(state.useLinksForce);\n",
       "          ui.elements.linksForceDistanceText.innerHTML = ui.convert.numberToText(state.linksForceDistance);\n",
       "          ui.elements.linksForceDistanceSlider.value = state.linksForceDistance;\n",
       "          ui.elements.linksForceStrengthText.innerHTML = ui.convert.numberToText(state.linksForceStrength);\n",
       "          ui.elements.linksForceStrengthSlider.value = state.linksForceStrength;\n",
       "          ui.elements.xPositioningForceCheckbox.checked = state.useXPositioningForce;\n",
       "          ui.elements.xPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useXPositioningForce);\n",
       "          ui.elements.xPositioningForceStrengthText.innerHTML = ui.convert.numberToText(state.xPositioningForceStrength);\n",
       "          ui.elements.xPositioningForceStrengthSlider.value = state.xPositioningForceStrength;\n",
       "          ui.elements.yPositioningForceCheckbox.checked = state.useYPositioningForce;\n",
       "          ui.elements.yPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useYPositioningForce);\n",
       "          ui.elements.yPositioningForceStrengthText.innerHTML = ui.convert.numberToText(state.yPositioningForceStrength);\n",
       "          ui.elements.yPositioningForceStrengthSlider.value = state.yPositioningForceStrength;\n",
       "          ui.elements.zPositioningForceCheckbox.checked = state.useZPositioningForce;\n",
       "          ui.elements.zPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useZPositioningForce);\n",
       "          ui.elements.zPositioningForceStrengthText.innerHTML = ui.convert.numberToText(state.zPositioningForceStrength);\n",
       "          ui.elements.zPositioningForceStrengthSlider.value = state.zPositioningForceStrength;\n",
       "          ui.elements.centeringForceCheckbox.checked = state.useCenteringForce;\n",
       "\n",
       "          ui.initSelectionValues();\n",
       "        },\n",
       "\n",
       "        initSelectionValues(){\n",
       "          function setSelectionOptionsAndValue(element, options, value){\n",
       "            if(!options.includes(value)){\n",
       "              value = options[0];\n",
       "            }\n",
       "            ui.composites.selection(element, options);\n",
       "            element.value = value;\n",
       "          }\n",
       "          // Node label text data source\n",
       "          setSelectionOptionsAndValue(\n",
       "            ui.elements.nodeLabelTextDataSourceSelect,\n",
       "            state.parsedData.general.node_properties.node_label_text_data_sources,\n",
       "            state.nodeLabelTextDataSource,\n",
       "          );\n",
       "          // Node size data source\n",
       "          setSelectionOptionsAndValue(\n",
       "            ui.elements.nodeSizeDataSourceSelect,\n",
       "            state.parsedData.general.node_properties.node_size_data_sources,\n",
       "            state.nodeSizeDataSource,\n",
       "          );\n",
       "          // Edge size data source\n",
       "          setSelectionOptionsAndValue(\n",
       "            ui.elements.edgeSizeDataSourceSelect,\n",
       "            state.parsedData.general.edge_properties.edge_size_data_sources,\n",
       "            state.edgeSizeDataSource,\n",
       "          );\n",
       "        },\n",
       "\n",
       "        deleteChildElements(element){\n",
       "          while(element.firstChild){\n",
       "            element.removeChild(element.firstChild);\n",
       "          }\n",
       "        },\n",
       "\n",
       "        convert:{\n",
       "          numberToText(number, numDigits=2) {\n",
       "            return String(Number(number).toFixed(numDigits));\n",
       "          },\n",
       "\n",
       "          boolToDisplayStyle(isVisible){\n",
       "            if(isVisible){\n",
       "              return \"block\";\n",
       "            }\n",
       "            return \"none\";\n",
       "          },\n",
       "\n",
       "          boolToOpacity(isActive){\n",
       "            if(isActive){\n",
       "              return 1.0;\n",
       "            }\n",
       "            return 0.25;\n",
       "          },\n",
       "        },\n",
       "\n",
       "        setBehavior(){\n",
       "          // Window resize (includes ctrl+wheel zoom, landscape/portrait orientation on phones)\n",
       "          window.onresize = function(){\n",
       "            ui.composites.responsiveContainer.adaptToResize();\n",
       "            ui.composites.graph.updateGraphDrawingArea();\n",
       "          }\n",
       "          // Container resize\n",
       "          ui.elements.graphContainer.onmouseup = function(){\n",
       "            const currentHeight = parseInt(ui.elements.graphContainer.clientHeight);\n",
       "            if(currentHeight != state.graphContainerHeight){\n",
       "              ui.composites.responsiveContainer.adaptToResize();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.detailsContainer.onmouseup = function(){\n",
       "            const currentHeight = parseInt(ui.elements.detailsContainer.clientHeight);\n",
       "            if(currentHeight != state.detailsContainerHeight){\n",
       "              ui.composites.responsiveContainer.adaptToResize();\n",
       "            }\n",
       "          };\n",
       "          // Tooltip\n",
       "          ui.elements.tooltipContainer.onmouseover = function(){\n",
       "            ui.composites.tooltip.show();\n",
       "          }\n",
       "          ui.elements.tooltipContainer.onmouseout = function(){\n",
       "            ui.composites.tooltip.hide();\n",
       "          }\n",
       "          // General menu\n",
       "          ui.elements.generalHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.generalHead, ui.elements.generalBody);\n",
       "          };\n",
       "          ui.elements.resetButton.onclick = function(){\n",
       "            app.restart();\n",
       "          };\n",
       "          ui.elements.fullscreenButton.onclick = function(){\n",
       "            if(document.fullscreenElement){\n",
       "              document.exitFullscreen();\n",
       "            } else{\n",
       "              ui.elements.mainContainer.requestFullscreen()\n",
       "                .catch(function(err){\n",
       "                  alert(\"Error attempting to enable full-screen mode: \" + err.message);\n",
       "                });\n",
       "            }\n",
       "          };\n",
       "          ui.elements.mainContainer.onfullscreenchange = function(){\n",
       "            if(document.fullscreenElement){\n",
       "              ui.elements.fullscreenButton.innerText = \"Exit full screen\";\n",
       "            } else{\n",
       "              ui.elements.fullscreenButton.innerText = \"Enter full screen\";\n",
       "            }\n",
       "            // Wait for browser to switch to fullscreen and resize divs, then adapt to new sizes\n",
       "            setTimeout(function(){\n",
       "              ui.composites.responsiveContainer.adaptToFullscreen();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            }, 250);\n",
       "          };\n",
       "          ui.elements.pngExportButton.onclick = function(){\n",
       "            ui.composites.download.png(\"graph.png\");\n",
       "          };\n",
       "          ui.elements.jpgExportButton.onclick = function(){\n",
       "            ui.composites.download.jpg(\"graph.jpg\");\n",
       "          };\n",
       "          // Data menu\n",
       "          ui.elements.dataHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.dataHead, ui.elements.dataBody);\n",
       "          };\n",
       "          // - Graph selection\n",
       "          ui.elements.graphSelection.onchange = function(){\n",
       "            const chosenGraphIndex = parseInt(this.value);\n",
       "            state.manager.parseChosenData(chosenGraphIndex);\n",
       "            state.manager.prepareShownData();\n",
       "            ui.initSelectionValues();\n",
       "            ui.composites.graph.createGraph();\n",
       "          };\n",
       "          // - Node label text\n",
       "          ui.elements.nodeLabelTextDataSourceSelect.onchange = function(){\n",
       "            state.nodeLabelTextDataSource = this.value;\n",
       "            state.manager.updateNodeLabelTexts();\n",
       "          };\n",
       "          // - Node size\n",
       "          ui.elements.nodeSizeDataSourceSelect.onchange = function(){\n",
       "            state.nodeSizeDataSource = this.value;\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationCheckbox.onchange = function(){\n",
       "            state.useNodeSizeNormalization = this.checked;\n",
       "            ui.elements.nodeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useNodeSizeNormalization);\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMinSlider.oninput = function(){\n",
       "            ui.elements.nodeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMinSlider.onchange = function(){\n",
       "            state.nodeSizeNormalizationMin = parseFloat(this.value);\n",
       "            if(state.nodeSizeNormalizationMin > state.nodeSizeNormalizationMax){\n",
       "              state.nodeSizeNormalizationMax = state.nodeSizeNormalizationMin;\n",
       "              ui.elements.nodeSizeNormalizationMaxSlider.value = state.nodeSizeNormalizationMax;\n",
       "              ui.elements.nodeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMax);\n",
       "            }\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMaxSlider.oninput = function(){\n",
       "            ui.elements.nodeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeSizeNormalizationMaxSlider.onchange = function(){\n",
       "            state.nodeSizeNormalizationMax = parseFloat(this.value);\n",
       "            if(state.nodeSizeNormalizationMax < state.nodeSizeNormalizationMin){\n",
       "              state.nodeSizeNormalizationMin = state.nodeSizeNormalizationMax;\n",
       "              ui.elements.nodeSizeNormalizationMinSlider.value = state.nodeSizeNormalizationMin;\n",
       "              ui.elements.nodeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.nodeSizeNormalizationMin);\n",
       "            }\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          // - Edge size\n",
       "          ui.elements.edgeSizeDataSourceSelect.onchange = function(){\n",
       "            state.edgeSizeDataSource = this.value;\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationCheckbox.onchange = function(){\n",
       "            state.useEdgeSizeNormalization = this.checked;\n",
       "            ui.elements.edgeSizeNormalizationContainer.style.display = ui.convert.boolToDisplayStyle(state.useEdgeSizeNormalization);\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMinSlider.oninput = function(){\n",
       "            ui.elements.edgeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMinSlider.onchange = function(){\n",
       "            state.edgeSizeNormalizationMin = parseFloat(this.value);\n",
       "            if(state.edgeSizeNormalizationMin > state.edgeSizeNormalizationMax){\n",
       "              state.edgeSizeNormalizationMax = state.edgeSizeNormalizationMin;\n",
       "              ui.elements.edgeSizeNormalizationMaxSlider.value = state.edgeSizeNormalizationMax;\n",
       "              ui.elements.edgeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMax);\n",
       "            }\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMaxSlider.oninput = function(){\n",
       "            ui.elements.edgeSizeNormalizationMaxText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeSizeNormalizationMaxSlider.onchange = function(){\n",
       "            state.edgeSizeNormalizationMax = parseFloat(this.value);\n",
       "            if(state.edgeSizeNormalizationMax < state.edgeSizeNormalizationMin){\n",
       "              state.edgeSizeNormalizationMin = state.edgeSizeNormalizationMax;\n",
       "              ui.elements.edgeSizeNormalizationMinSlider.value = state.edgeSizeNormalizationMin;\n",
       "              ui.elements.edgeSizeNormalizationMinText.innerHTML = ui.convert.numberToText(state.edgeSizeNormalizationMin);\n",
       "            }\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          // Nodes menu\n",
       "          ui.elements.nodeHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.nodeHead, ui.elements.nodeBody);\n",
       "          };\n",
       "          ui.elements.nodeCheckbox.onchange = function(){\n",
       "            state.showNodes = this.checked;\n",
       "            ui.composites.graph.updateNodeVisibilities();\n",
       "          };\n",
       "          ui.elements.nodeSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.nodeSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeSizeFactorSlider.onchange = function(){\n",
       "            state.nodeSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateNodeSizes();\n",
       "          };\n",
       "          ui.elements.nodeDragFixCheckbox.onchange = function(){\n",
       "            state.nodeDragFix = this.checked;\n",
       "          };\n",
       "          ui.elements.nodeHoverTooltipCheckbox.onchange = function(){\n",
       "            state.nodeHoverTooltip = this.checked;\n",
       "          };\n",
       "          ui.elements.nodeReleaseButton.onclick = function(){\n",
       "            ui.composites.graph.simulationManager.releaseFixedNodes();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          // Node images menu\n",
       "          ui.elements.nodeImageHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.nodeImageHead, ui.elements.nodeImageBody);\n",
       "          };\n",
       "          ui.elements.nodeImageCheckbox.onchange = function(){\n",
       "            state.showNodeImages = this.checked;\n",
       "            ui.composites.graph.updateNodeImages();\n",
       "          };\n",
       "          ui.elements.nodeImageSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.nodeImageSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeImageSizeFactorSlider.onchange = function(){\n",
       "            state.nodeImageSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateNodeImageSizes();\n",
       "          };\n",
       "          // Node labels menu\n",
       "          ui.elements.nodeLabelHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.nodeLabelHead, ui.elements.nodeLabelBody);\n",
       "          };\n",
       "          ui.elements.nodeLabelCheckbox.onchange = function(){\n",
       "            state.showNodeLabels = this.checked;\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          };\n",
       "          ui.elements.nodeLabelBorderCheckbox.onchange = function(){\n",
       "            state.showNodeLabelBorders = this.checked;\n",
       "            ui.composites.graph.updateNodeLabels();\n",
       "          };\n",
       "          ui.elements.nodeLabelSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.nodeLabelSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.nodeLabelSizeFactorSlider.onchange = function(){\n",
       "            state.nodeLabelSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateNodeLabelSizes();\n",
       "          };\n",
       "          // Edges menu\n",
       "          ui.elements.edgeHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.edgeHead, ui.elements.edgeBody);\n",
       "          };\n",
       "          ui.elements.edgeCheckbox.onchange = function(){\n",
       "            state.showEdges = this.checked;\n",
       "            ui.composites.graph.updateEdgeVisibilities();\n",
       "          };\n",
       "          ui.elements.edgeSizeFactorSlider.oninput = function(){\n",
       "            ui.elements.edgeSizeFactorText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeSizeFactorSlider.onchange = function(){\n",
       "            state.edgeSizeFactor = parseFloat(this.value);\n",
       "            state.manager.updateEdgeSizes();\n",
       "          };\n",
       "          ui.elements.edgeCurvatureSlider.oninput = function(){\n",
       "            ui.elements.edgeCurvatureText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.edgeCurvatureSlider.onchange = function(){\n",
       "            state.edgeCurvature = parseFloat(this.value);\n",
       "            state.manager.updateEdgeCurvatures();\n",
       "          };\n",
       "          ui.elements.edgeHoverTooltipCheckbox.onchange = function(){\n",
       "            state.edgeHoverTooltip = this.checked;\n",
       "          };\n",
       "          // Layout algorithm menu\n",
       "          ui.elements.layoutAlgorithmHead.onclick = function(){\n",
       "            ui.composites.menu.toggleItem(ui.elements.layoutAlgorithmHead, ui.elements.layoutAlgorithmBody);\n",
       "          };\n",
       "          ui.elements.simulationCheckbox.onchange = function(){\n",
       "            state.layoutAlgorithmActive = !state.layoutAlgorithmActive;\n",
       "            if(state.layoutAlgorithmActive){\n",
       "              ui.composites.graph.simulationManager.restart();\n",
       "            } else {\n",
       "              ui.composites.graph.simulationManager.stop();\n",
       "            }\n",
       "          }\n",
       "          ui.elements.manyBodyForceCheckbox.onchange = function(){\n",
       "            state.useManyBodyForce = this.checked;\n",
       "            ui.elements.manyBodyForceContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForce);\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.manyBodyForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceStrengthSlider.onchange = function(){\n",
       "            state.manyBodyForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.manyBodyForceThetaSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceThetaText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceThetaSlider.onchange = function(){\n",
       "            state.manyBodyForceTheta = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.manyBodyForceMinDistCheckbox.onchange = function(){\n",
       "            state.useManyBodyForceMinDistance = this.checked;\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            ui.elements.manyBodyForceMinDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMinDistance);\n",
       "          }\n",
       "          ui.elements.manyBodyForceMinDistSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceMinDistText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceMinDistSlider.onchange = function(){\n",
       "            state.manyBodyForceMinDistance = parseFloat(this.value);\n",
       "            if(state.manyBodyForceMinDistance > state.manyBodyForceMaxDistance){\n",
       "              state.manyBodyForceMaxDistance = state.manyBodyForceMinDistance;\n",
       "              ui.elements.manyBodyForceMaxDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMaxDistance);\n",
       "              ui.elements.manyBodyForceMaxDistSlider.value = state.manyBodyForceMaxDistance;\n",
       "            }\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.manyBodyForceMaxDistCheckbox.onchange = function(){\n",
       "            state.useManyBodyForceMaxDistance = this.checked;\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            ui.elements.manyBodyForceMaxDistContainer.style.opacity = ui.convert.boolToOpacity(state.useManyBodyForceMaxDistance);\n",
       "          }\n",
       "          ui.elements.manyBodyForceMaxDistSlider.oninput = function(){\n",
       "            ui.elements.manyBodyForceMaxDistText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.manyBodyForceMaxDistSlider.onchange = function(){\n",
       "            state.manyBodyForceMaxDistance = parseFloat(this.value);\n",
       "            if(state.manyBodyForceMaxDistance < state.manyBodyForceMinDistance){\n",
       "              state.manyBodyForceMinDistance = state.manyBodyForceMaxDistance;\n",
       "              ui.elements.manyBodyForceMinDistText.innerHTML = ui.convert.numberToText(state.manyBodyForceMinDistance);\n",
       "              ui.elements.manyBodyForceMinDistSlider.value = state.manyBodyForceMinDistance;\n",
       "            }\n",
       "            ui.composites.graph.simulationManager.setManyBodyForce();\n",
       "            if(state.useManyBodyForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.linksForceCheckbox.onchange = function(){\n",
       "            state.useLinksForce = this.checked;\n",
       "            ui.elements.linksForceContainer.style.opacity = ui.convert.boolToOpacity(state.useLinksForce);\n",
       "            ui.composites.graph.simulationManager.setLinksForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.linksForceDistanceSlider.oninput = function(){\n",
       "            ui.elements.linksForceDistanceText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.linksForceDistanceSlider.onchange = function(){\n",
       "            state.linksForceDistance = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setLinksForce();\n",
       "            if(state.useLinksForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.linksForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.linksForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.linksForceStrengthSlider.onchange = function(){\n",
       "            state.linksForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setLinksForce();\n",
       "            if(state.useLinksForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.xPositioningForceCheckbox.onchange = function(){\n",
       "            state.useXPositioningForce = this.checked;\n",
       "            ui.elements.xPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useXPositioningForce);\n",
       "            ui.composites.graph.simulationManager.setXPositioningForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.xPositioningForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.xPositioningForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.xPositioningForceStrengthSlider.onchange = function(){\n",
       "            state.xPositioningForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setXPositioningForce();\n",
       "            if(state.useXPositioningForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.yPositioningForceCheckbox.onchange = function(){\n",
       "            state.useYPositioningForce = this.checked;\n",
       "            ui.elements.yPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useYPositioningForce);\n",
       "            ui.composites.graph.simulationManager.setYPositioningForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.yPositioningForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.yPositioningForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.yPositioningForceStrengthSlider.onchange = function(){\n",
       "            state.yPositioningForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setYPositioningForce();\n",
       "            if(state.useYPositioningForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.zPositioningForceCheckbox.onchange = function(){\n",
       "            state.useZPositioningForce = this.checked;\n",
       "            ui.elements.zPositioningForceContainer.style.opacity = ui.convert.boolToOpacity(state.useZPositioningForce);\n",
       "            ui.composites.graph.simulationManager.setZPositioningForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "          ui.elements.zPositioningForceStrengthSlider.oninput = function(){\n",
       "            ui.elements.zPositioningForceStrengthText.innerHTML = ui.convert.numberToText(this.value);\n",
       "          };\n",
       "          ui.elements.zPositioningForceStrengthSlider.onchange = function(){\n",
       "            state.yPositioningForceStrength = parseFloat(this.value);\n",
       "            ui.composites.graph.simulationManager.setZPositioningForce();\n",
       "            if(state.useZPositioningForce){\n",
       "              ui.composites.graph.simulationManager.move();\n",
       "            }\n",
       "          };\n",
       "          ui.elements.centeringForceCheckbox.onchange = function(){\n",
       "            state.useCenteringForce = this.checked;\n",
       "            ui.composites.graph.simulationManager.setCenteringForce();\n",
       "            ui.composites.graph.simulationManager.move();\n",
       "          };\n",
       "        },\n",
       "      }\n",
       "\n",
       "      const app = {\n",
       "        start(){\n",
       "          state.manager.fetchRawDataFromTemplating();\n",
       "          state.manager.parseChosenData(0);\n",
       "          state.manager.prepareShownData();\n",
       "          ui.init();\n",
       "          // Wait a bit to finish UI rendering, then start potentially slow layout computation\n",
       "          setTimeout(function(){\n",
       "            ui.composites.graph.createGraph();\n",
       "            ui.setBehavior();\n",
       "          }, 800);\n",
       "          // Reduce risk of getting stuck with a wrong drawing area size\n",
       "          function checkIfSizeUpdateRequired(){\n",
       "            if(ui.elements.graphContainer.clientWidth != state.graphContainerWidth){\n",
       "              ui.composites.responsiveContainer.adaptToResize();\n",
       "              ui.composites.graph.updateGraphDrawingArea();\n",
       "            }\n",
       "          }\n",
       "          [1, 2, 5, 8, 12, 15, 20, 25, 30, 35, 40, 45, 50, 60, 90].forEach(function(delay){\n",
       "            setTimeout(checkIfSizeUpdateRequired, delay*1000);\n",
       "          })\n",
       "        },\n",
       "\n",
       "        restart(){\n",
       "          ui.composites.graph.simulationManager.stop();\n",
       "          app.start();\n",
       "        },\n",
       "      }\n",
       "\n",
       "      // Start website dynamics\n",
       "      window.addEventListener(\"unload\", function(){\n",
       "        state.threeObjects.disposeAll();\n",
       "      });\n",
       "      app.start();\n",
       "    });\n",
       "  </script>\n",
       "\n"
      ],
      "text/plain": [
       "<gravis._internal.plotting.data_structures.Figure at 0x168844310>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "community_colors_focus = {}\n",
    "for i in range(1,len(community_colors)+1):\n",
    "    community_colors_focus[i] = '#808080'\n",
    "\n",
    "community_colors_focus[community_id_of_interest] = '#FF0000'\n",
    "\n",
    "#\n",
    "community_graph.visualize(\n",
    "    three=True,\n",
    "    node_label_size_factor=1.9,\n",
    "    use_links_force=True,\n",
    "    node_hover_neighborhood=True,\n",
    "    style={\n",
    "    \"node\": {\n",
    "        \"color\": lambda x : community_colors_focus[x['community_id']],\n",
    "        \"size\" : lambda x : 20 if x['community_id'] == community_id_of_interest else 2,\n",
    "        \"hover\": lambda x : f\"{x['customer_id']}\"\n",
    "    },\n",
    "    \"edge\": {\n",
    "        \"opacity\": 0.8,\n",
    "        \"color\": \"#ccc\",\n",
    "\n",
    "        \"hover\": lambda x : x['weight']\n",
    "    }\n",
    "})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Brought to you by [RelationalAI](https://relational.ai/) & Snowflake Native Applications!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Appendix\n",
    "\n",
    "## Inserting data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import relationalai\n",
    "\n",
    "DO_SETUP = False\n",
    "\n",
    "setup_commands = \"\"\"\n",
    "create database if not exists RAI_DEMO;\n",
    "create schema if not exists RAI_DEMO.TASTYBYTES;\n",
    "\n",
    "create or replace stage RAI_DEMO.TASTYBYTES.TMP\n",
    "URL = 'azure://raidocs.blob.core.windows.net/demos';\n",
    "\n",
    "create or replace file format parquet type='PARQUET';\n",
    "\n",
    "create or replace table RAI_DEMO.TASTYBYTES.ORDERS\n",
    "as\n",
    "select\n",
    "    $1:ORDER_ID::int as ORDER_ID,\n",
    "    $1:TRUCK_ID::int as TRUCK_ID,\n",
    "    $1:ORDER_TS::string as ORDER_TS,\n",
    "    $1:ORDER_TS_SECONDS::int as ORDER_TS_SECONDS,\n",
    "    $1:ORDER_DETAIL_ID::int as ORDER_DETAIL_ID,\n",
    "    $1:LINE_NUMBER::int as LINE_NUMBER,\n",
    "    $1:TRUCK_BRAND_NAME::string as TRUCK_BRAND_NAME,\n",
    "    $1:MENU_TYPE::string as MENU_TYPE,\n",
    "    $1:PRIMARY_CITY::string as PRIMARY_CITY,\n",
    "    $1:REGION::string as REGION,\n",
    "    $1:COUNTRY::string as COUNTRY,\n",
    "    $1:FRANCHISE_FLAG::int as FRANCHISE_FLAG,\n",
    "    $1:FRANCHISE_ID::int as FRANCHISE_ID,\n",
    "    $1:FRANCHISEE_FIRST_NAME::string as FRANCHISEE_FIRST_NAME,\n",
    "    $1:FRANCHISEE_LAST_NAME::string as FRANCHISEE_LAST_NAME,\n",
    "    $1:LOCATION_ID::int as LOCATION_ID,\n",
    "    $1:CUSTOMER_ID::double as CUSTOMER_ID,\n",
    "    $1:FIRST_NAME::string as FIRST_NAME,\n",
    "    $1:LAST_NAME::string as LAST_NAME,\n",
    "    $1:E_MAIL::string as E_MAIL,\n",
    "    $1:PHONE_NUMBER::string as PHONE_NUMBER,\n",
    "    $1:CHILDREN_COUNT::string as CHILDREN_COUNT,\n",
    "    $1:GENDER::string as GENDER,\n",
    "    $1:MARITAL_STATUS::string as MARITAL_STATUS,\n",
    "    $1:MENU_ITEM_ID::int as MENU_ITEM_ID,\n",
    "    $1:MENU_ITEM_NAME::string as MENU_ITEM_NAME,\n",
    "    $1:QUANTITY::int as QUANTITY,\n",
    "    $1:UNIT_PRICE::double as UNIT_PRICE,\n",
    "    $1:PRICE::double as PRICE,\n",
    "    $1:ORDER_AMOUNT::double as ORDER_AMOUNT,\n",
    "    $1:ORDER_TAX_AMOUNT::double as ORDER_TAX_AMOUNT,\n",
    "    $1:ORDER_DISCOUNT_AMOUNT::double as ORDER_DISCOUNT_AMOUNT,\n",
    "    $1:ORDER_TOTAL::double as ORDER_TOTAL\n",
    "from\n",
    "    @rai_demo.tastybytes.tmp/loyalty_orders.parquet\n",
    "(FILE_FORMAT => parquet);\n",
    "\n",
    "drop stage if exists rai_demo.tastybytes.tmp;\n",
    "\"\"\"\n",
    "\n",
    "def exec_commands(resources, commands):\n",
    "    for cmd in commands.split(\";\"):\n",
    "    \tif cmd.strip():\n",
    "            resources._exec(cmd)\n",
    "\n",
    "def setup():\n",
    "    resources = rai.Resources()\n",
    "    exec_commands(resources, setup_commands)\n",
    "\n",
    "if DO_SETUP:\n",
    "    setup()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "if DO_SETUP:\n",
    "    import subprocess\n",
    "\n",
    "    command = [\n",
    "        \"rai\", \"imports:stream\",\n",
    "        \"--source\", \"RAI_DEMO.TASTYBYTES.ORDERS\",\n",
    "        \"--model\", \"TastyBytes\"\n",
    "    ]\n",
    "\n",
    "    subprocess.run(command)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
