{
  "type": "File",
  "start": 0,
  "end": 6675,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 168,
      "column": 30
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 6675,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 168,
        "column": 30
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 32,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 32
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 7,
            "end": 14,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 14
              }
            },
            "local": {
              "type": "Identifier",
              "start": 7,
              "end": 14,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 7
                },
                "end": {
                  "line": 1,
                  "column": 14
                },
                "identifierName": "Manager"
              },
              "name": "Manager"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 20,
          "end": 31,
          "loc": {
            "start": {
              "line": 1,
              "column": 20
            },
            "end": {
              "line": 1,
              "column": 31
            }
          },
          "extra": {
            "rawValue": "./Manager",
            "raw": "'./Manager'"
          },
          "value": "./Manager"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 33,
        "end": 71,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 38
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 40,
            "end": 50,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 17
              }
            },
            "local": {
              "type": "Identifier",
              "start": 40,
              "end": 50,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 17
                },
                "identifierName": "DOMManager"
              },
              "name": "DOMManager"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 56,
          "end": 70,
          "loc": {
            "start": {
              "line": 2,
              "column": 23
            },
            "end": {
              "line": 2,
              "column": 37
            }
          },
          "extra": {
            "rawValue": "./DOMManager",
            "raw": "'./DOMManager'"
          },
          "value": "./DOMManager"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 72,
        "end": 126,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 54
          }
        },
        "specifiers": [
          {
            "type": "ImportNamespaceSpecifier",
            "start": 79,
            "end": 96,
            "loc": {
              "start": {
                "line": 3,
                "column": 7
              },
              "end": {
                "line": 3,
                "column": 24
              }
            },
            "local": {
              "type": "Identifier",
              "start": 84,
              "end": 96,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 12
                },
                "end": {
                  "line": 3,
                  "column": 24
                },
                "identifierName": "VertexShader"
              },
              "name": "VertexShader"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 102,
          "end": 125,
          "loc": {
            "start": {
              "line": 3,
              "column": 30
            },
            "end": {
              "line": 3,
              "column": 53
            }
          },
          "extra": {
            "rawValue": "../const/VertexShader",
            "raw": "'../const/VertexShader'"
          },
          "value": "../const/VertexShader"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 127,
        "end": 185,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 58
          }
        },
        "specifiers": [
          {
            "type": "ImportNamespaceSpecifier",
            "start": 134,
            "end": 153,
            "loc": {
              "start": {
                "line": 4,
                "column": 7
              },
              "end": {
                "line": 4,
                "column": 26
              }
            },
            "local": {
              "type": "Identifier",
              "start": 139,
              "end": 153,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 12
                },
                "end": {
                  "line": 4,
                  "column": 26
                },
                "identifierName": "FragmentShader"
              },
              "name": "FragmentShader"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 159,
          "end": 184,
          "loc": {
            "start": {
              "line": 4,
              "column": 32
            },
            "end": {
              "line": 4,
              "column": 57
            }
          },
          "extra": {
            "rawValue": "../const/FragmentShader",
            "raw": "'../const/FragmentShader'"
          },
          "value": "../const/FragmentShader"
        },
        "trailingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * Manages WebGL Programs so that they only need to be created once across the engine\n * allowing multiple objects to still share the same reference.\n * \n * Elliminates the need for the programmer to compile shaders and create programs, and eases \n * on-the-fly Shader compiling.\n ",
            "start": 188,
            "end": 475,
            "loc": {
              "start": {
                "line": 7,
                "column": 0
              },
              "end": {
                "line": 13,
                "column": 3
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 476,
        "end": 6536,
        "loc": {
          "start": {
            "line": 14,
            "column": 0
          },
          "end": {
            "line": 162,
            "column": 1
          }
        },
        "specifiers": [],
        "source": null,
        "declaration": {
          "type": "ClassDeclaration",
          "start": 483,
          "end": 6536,
          "loc": {
            "start": {
              "line": 14,
              "column": 7
            },
            "end": {
              "line": 162,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 489,
            "end": 504,
            "loc": {
              "start": {
                "line": 14,
                "column": 13
              },
              "end": {
                "line": 14,
                "column": 28
              },
              "identifierName": "_ProgramManager"
            },
            "name": "_ProgramManager",
            "leadingComments": null
          },
          "superClass": {
            "type": "Identifier",
            "start": 513,
            "end": 520,
            "loc": {
              "start": {
                "line": 14,
                "column": 37
              },
              "end": {
                "line": 14,
                "column": 44
              },
              "identifierName": "Manager"
            },
            "name": "Manager"
          },
          "body": {
            "type": "ClassBody",
            "start": 521,
            "end": 6536,
            "loc": {
              "start": {
                "line": 14,
                "column": 45
              },
              "end": {
                "line": 162,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 527,
                "end": 628,
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 4
                  },
                  "end": {
                    "line": 19,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 527,
                  "end": 538,
                  "loc": {
                    "start": {
                      "line": 15,
                      "column": 4
                    },
                    "end": {
                      "line": 15,
                      "column": 15
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 541,
                  "end": 628,
                  "loc": {
                    "start": {
                      "line": 15,
                      "column": 18
                    },
                    "end": {
                      "line": 19,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 551,
                      "end": 559,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 8
                        },
                        "end": {
                          "line": 16,
                          "column": 16
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 551,
                        "end": 558,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 8
                          },
                          "end": {
                            "line": 16,
                            "column": 15
                          }
                        },
                        "callee": {
                          "type": "Super",
                          "start": 551,
                          "end": 556,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 8
                            },
                            "end": {
                              "line": 16,
                              "column": 13
                            }
                          }
                        },
                        "arguments": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 568,
                      "end": 594,
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 8
                        },
                        "end": {
                          "line": 17,
                          "column": 34
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 568,
                        "end": 593,
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 8
                          },
                          "end": {
                            "line": 17,
                            "column": 33
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 568,
                          "end": 589,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 8
                            },
                            "end": {
                              "line": 17,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 568,
                            "end": 572,
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 8
                              },
                              "end": {
                                "line": 17,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 573,
                            "end": 589,
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 13
                              },
                              "end": {
                                "line": 17,
                                "column": 29
                              },
                              "identifierName": "programIDCounter"
                            },
                            "name": "programIDCounter"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NumericLiteral",
                          "start": 592,
                          "end": 593,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 32
                            },
                            "end": {
                              "line": 17,
                              "column": 33
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 603,
                      "end": 622,
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 8
                        },
                        "end": {
                          "line": 18,
                          "column": 27
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 603,
                        "end": 621,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 8
                          },
                          "end": {
                            "line": 18,
                            "column": 26
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 603,
                          "end": 616,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 8
                            },
                            "end": {
                              "line": 18,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 603,
                            "end": 607,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 8
                              },
                              "end": {
                                "line": 18,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 608,
                            "end": 616,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 13
                              },
                              "end": {
                                "line": 18,
                                "column": 21
                              },
                              "identifierName": "programs"
                            },
                            "name": "programs"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "ObjectExpression",
                          "start": 619,
                          "end": 621,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 24
                            },
                            "end": {
                              "line": 18,
                              "column": 26
                            }
                          },
                          "properties": []
                        }
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates default programs for easy reference later on.\n     ",
                    "start": 634,
                    "end": 706,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 4
                      },
                      "end": {
                        "line": 23,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 711,
                "end": 1421,
                "loc": {
                  "start": {
                    "line": 24,
                    "column": 4
                  },
                  "end": {
                    "line": 42,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 711,
                  "end": 716,
                  "loc": {
                    "start": {
                      "line": 24,
                      "column": 4
                    },
                    "end": {
                      "line": 24,
                      "column": 9
                    },
                    "identifierName": "start"
                  },
                  "name": "start",
                  "leadingComments": null
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 719,
                  "end": 1421,
                  "loc": {
                    "start": {
                      "line": 24,
                      "column": 12
                    },
                    "end": {
                      "line": 42,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 729,
                      "end": 775,
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 8
                        },
                        "end": {
                          "line": 26,
                          "column": 19
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 733,
                        "end": 754,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 12
                          },
                          "end": {
                            "line": 25,
                            "column": 33
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 733,
                          "end": 746,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 12
                            },
                            "end": {
                              "line": 25,
                              "column": 25
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 733,
                            "end": 743,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 12
                              },
                              "end": {
                                "line": 25,
                                "column": 22
                              },
                              "identifierName": "DOMManager"
                            },
                            "name": "DOMManager"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 744,
                            "end": 746,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 23
                              },
                              "end": {
                                "line": 25,
                                "column": 25
                              },
                              "identifierName": "GL"
                            },
                            "name": "GL"
                          },
                          "computed": false
                        },
                        "operator": "==",
                        "right": {
                          "type": "NullLiteral",
                          "start": 750,
                          "end": 754,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 29
                            },
                            "end": {
                              "line": 25,
                              "column": 33
                            }
                          }
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 768,
                        "end": 775,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 12
                          },
                          "end": {
                            "line": 26,
                            "column": 19
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 784,
                      "end": 1072,
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 8
                        },
                        "end": {
                          "line": 33,
                          "column": 11
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 784,
                        "end": 1071,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 8
                          },
                          "end": {
                            "line": 33,
                            "column": 10
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 784,
                          "end": 799,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 8
                            },
                            "end": {
                              "line": 27,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 784,
                            "end": 788,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 8
                              },
                              "end": {
                                "line": 27,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 789,
                            "end": 799,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 13
                              },
                              "end": {
                                "line": 27,
                                "column": 23
                              },
                              "identifierName": "addProgram"
                            },
                            "name": "addProgram"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "StringLiteral",
                            "start": 800,
                            "end": 809,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 24
                              },
                              "end": {
                                "line": 27,
                                "column": 33
                              }
                            },
                            "extra": {
                              "rawValue": "Default",
                              "raw": "'Default'"
                            },
                            "value": "Default"
                          },
                          {
                            "type": "MemberExpression",
                            "start": 811,
                            "end": 833,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 35
                              },
                              "end": {
                                "line": 27,
                                "column": 57
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 811,
                              "end": 823,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 35
                                },
                                "end": {
                                  "line": 27,
                                  "column": 47
                                },
                                "identifierName": "VertexShader"
                              },
                              "name": "VertexShader"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 824,
                              "end": 833,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 48
                                },
                                "end": {
                                  "line": 27,
                                  "column": 57
                                },
                                "identifierName": "DEFAULT_V"
                              },
                              "name": "DEFAULT_V"
                            },
                            "computed": false
                          },
                          {
                            "type": "MemberExpression",
                            "start": 835,
                            "end": 859,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 59
                              },
                              "end": {
                                "line": 27,
                                "column": 83
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 835,
                              "end": 849,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 59
                                },
                                "end": {
                                  "line": 27,
                                  "column": 73
                                },
                                "identifierName": "FragmentShader"
                              },
                              "name": "FragmentShader"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 850,
                              "end": 859,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 74
                                },
                                "end": {
                                  "line": 27,
                                  "column": 83
                                },
                                "identifierName": "DEFAULT_F"
                              },
                              "name": "DEFAULT_F"
                            },
                            "computed": false
                          },
                          {
                            "type": "ObjectExpression",
                            "start": 861,
                            "end": 1070,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 85
                              },
                              "end": {
                                "line": 33,
                                "column": 9
                              }
                            },
                            "properties": [
                              {
                                "type": "ObjectProperty",
                                "start": 875,
                                "end": 898,
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 35
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 875,
                                  "end": 884,
                                  "loc": {
                                    "start": {
                                      "line": 28,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 28,
                                      "column": 21
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_color",
                                    "raw": "'u_color'"
                                  },
                                  "value": "u_color"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 886,
                                  "end": 898,
                                  "loc": {
                                    "start": {
                                      "line": 28,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 28,
                                      "column": 35
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform4fv",
                                    "raw": "'uniform4fv'"
                                  },
                                  "value": "uniform4fv"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 912,
                                "end": 942,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 42
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 912,
                                  "end": 922,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 22
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_matrix",
                                    "raw": "'u_matrix'"
                                  },
                                  "value": "u_matrix"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 924,
                                  "end": 942,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 42
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniformMatrix3fv",
                                    "raw": "'uniformMatrix3fv'"
                                  },
                                  "value": "uniformMatrix3fv"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 956,
                                "end": 978,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 34
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 956,
                                  "end": 965,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 21
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_depth",
                                    "raw": "'u_depth'"
                                  },
                                  "value": "u_depth"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 967,
                                  "end": 978,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 34
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform1f",
                                    "raw": "'uniform1f'"
                                  },
                                  "value": "uniform1f"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 992,
                                "end": 1016,
                                "loc": {
                                  "start": {
                                    "line": 31,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 31,
                                    "column": 36
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 992,
                                  "end": 1003,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 23
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_texture",
                                    "raw": "'u_texture'"
                                  },
                                  "value": "u_texture"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1005,
                                  "end": 1016,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 36
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform1i",
                                    "raw": "'uniform1i'"
                                  },
                                  "value": "uniform1i"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 1030,
                                "end": 1059,
                                "loc": {
                                  "start": {
                                    "line": 32,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 32,
                                    "column": 41
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1030,
                                  "end": 1045,
                                  "loc": {
                                    "start": {
                                      "line": 32,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 32,
                                      "column": 27
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_subTexcoord",
                                    "raw": "'u_subTexcoord'"
                                  },
                                  "value": "u_subTexcoord"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1047,
                                  "end": 1059,
                                  "loc": {
                                    "start": {
                                      "line": 32,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 32,
                                      "column": 41
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform4fv",
                                    "raw": "'uniform4fv'"
                                  },
                                  "value": "uniform4fv"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1081,
                      "end": 1415,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 8
                        },
                        "end": {
                          "line": 41,
                          "column": 11
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1081,
                        "end": 1414,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 8
                          },
                          "end": {
                            "line": 41,
                            "column": 10
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1081,
                          "end": 1096,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 8
                            },
                            "end": {
                              "line": 34,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1081,
                            "end": 1085,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 8
                              },
                              "end": {
                                "line": 34,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1086,
                            "end": 1096,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 13
                              },
                              "end": {
                                "line": 34,
                                "column": 23
                              },
                              "identifierName": "addProgram"
                            },
                            "name": "addProgram"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "StringLiteral",
                            "start": 1097,
                            "end": 1105,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 24
                              },
                              "end": {
                                "line": 34,
                                "column": 32
                              }
                            },
                            "extra": {
                              "rawValue": "2DGrid",
                              "raw": "'2DGrid'"
                            },
                            "value": "2DGrid"
                          },
                          {
                            "type": "MemberExpression",
                            "start": 1107,
                            "end": 1129,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 34
                              },
                              "end": {
                                "line": 34,
                                "column": 56
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1107,
                              "end": 1119,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 34
                                },
                                "end": {
                                  "line": 34,
                                  "column": 46
                                },
                                "identifierName": "VertexShader"
                              },
                              "name": "VertexShader"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1120,
                              "end": 1129,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 47
                                },
                                "end": {
                                  "line": 34,
                                  "column": 56
                                },
                                "identifierName": "DEFAULT_V"
                              },
                              "name": "DEFAULT_V"
                            },
                            "computed": false
                          },
                          {
                            "type": "MemberExpression",
                            "start": 1131,
                            "end": 1155,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 58
                              },
                              "end": {
                                "line": 34,
                                "column": 82
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1131,
                              "end": 1145,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 58
                                },
                                "end": {
                                  "line": 34,
                                  "column": 72
                                },
                                "identifierName": "FragmentShader"
                              },
                              "name": "FragmentShader"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1146,
                              "end": 1155,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 73
                                },
                                "end": {
                                  "line": 34,
                                  "column": 82
                                },
                                "identifierName": "TILEMAP_F"
                              },
                              "name": "TILEMAP_F"
                            },
                            "computed": false
                          },
                          {
                            "type": "ObjectExpression",
                            "start": 1157,
                            "end": 1413,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 84
                              },
                              "end": {
                                "line": 41,
                                "column": 9
                              }
                            },
                            "properties": [
                              {
                                "type": "ObjectProperty",
                                "start": 1171,
                                "end": 1194,
                                "loc": {
                                  "start": {
                                    "line": 35,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 35,
                                    "column": 35
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1171,
                                  "end": 1180,
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 21
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_color",
                                    "raw": "'u_color'"
                                  },
                                  "value": "u_color"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1182,
                                  "end": 1194,
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 35
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform4fv",
                                    "raw": "'uniform4fv'"
                                  },
                                  "value": "uniform4fv"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 1208,
                                "end": 1238,
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 42
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1208,
                                  "end": 1218,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 22
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_matrix",
                                    "raw": "'u_matrix'"
                                  },
                                  "value": "u_matrix"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1220,
                                  "end": 1238,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 42
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniformMatrix3fv",
                                    "raw": "'uniformMatrix3fv'"
                                  },
                                  "value": "uniformMatrix3fv"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 1252,
                                "end": 1274,
                                "loc": {
                                  "start": {
                                    "line": 37,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 37,
                                    "column": 34
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1252,
                                  "end": 1261,
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 21
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_depth",
                                    "raw": "'u_depth'"
                                  },
                                  "value": "u_depth"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1263,
                                  "end": 1274,
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 34
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform1f",
                                    "raw": "'uniform1f'"
                                  },
                                  "value": "uniform1f"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 1288,
                                "end": 1319,
                                "loc": {
                                  "start": {
                                    "line": 38,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 38,
                                    "column": 43
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1288,
                                  "end": 1306,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 30
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_mapDataTexture",
                                    "raw": "'u_mapDataTexture'"
                                  },
                                  "value": "u_mapDataTexture"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1308,
                                  "end": 1319,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 43
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform1i",
                                    "raw": "'uniform1i'"
                                  },
                                  "value": "uniform1i"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 1333,
                                "end": 1357,
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 36
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1333,
                                  "end": 1344,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 23
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_texture",
                                    "raw": "'u_texture'"
                                  },
                                  "value": "u_texture"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1346,
                                  "end": 1357,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 36
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniform1i",
                                    "raw": "'uniform1i'"
                                  },
                                  "value": "uniform1i"
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 1371,
                                "end": 1403,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 44
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "StringLiteral",
                                  "start": 1371,
                                  "end": 1383,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 24
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "u_tileData",
                                    "raw": "'u_tileData'"
                                  },
                                  "value": "u_tileData"
                                },
                                "value": {
                                  "type": "StringLiteral",
                                  "start": 1385,
                                  "end": 1403,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 44
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "uniformMatrix4fv",
                                    "raw": "'uniformMatrix4fv'"
                                  },
                                  "value": "uniformMatrix4fv"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates default programs for easy reference later on.\n     ",
                    "start": 634,
                    "end": 706,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 4
                      },
                      "end": {
                        "line": 23,
                        "column": 7
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Returns a Program JSON Object containing the program, name and id.\n     * \n     * @param {string} programKey Name of the program.\n     * \n     * @returns {Program Object} Returns a JSON object with Program data.\n     ",
                    "start": 1427,
                    "end": 1657,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 4
                      },
                      "end": {
                        "line": 50,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 1662,
                "end": 1826,
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 4
                  },
                  "end": {
                    "line": 55,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1662,
                  "end": 1672,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 4
                    },
                    "end": {
                      "line": 51,
                      "column": 14
                    },
                    "identifierName": "getProgram"
                  },
                  "name": "getProgram",
                  "leadingComments": null
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1673,
                    "end": 1683,
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 15
                      },
                      "end": {
                        "line": 51,
                        "column": 25
                      },
                      "identifierName": "programKey"
                    },
                    "name": "programKey"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1685,
                  "end": 1826,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 27
                    },
                    "end": {
                      "line": 55,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 1695,
                      "end": 1778,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 8
                        },
                        "end": {
                          "line": 53,
                          "column": 44
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 1699,
                        "end": 1732,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 12
                          },
                          "end": {
                            "line": 52,
                            "column": 45
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 1699,
                          "end": 1724,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 12
                            },
                            "end": {
                              "line": 52,
                              "column": 37
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1699,
                            "end": 1712,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 12
                              },
                              "end": {
                                "line": 52,
                                "column": 25
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1699,
                              "end": 1703,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 12
                                },
                                "end": {
                                  "line": 52,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1704,
                              "end": 1712,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 17
                                },
                                "end": {
                                  "line": 52,
                                  "column": 25
                                },
                                "identifierName": "programs"
                              },
                              "name": "programs"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1713,
                            "end": 1723,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 26
                              },
                              "end": {
                                "line": 52,
                                "column": 36
                              },
                              "identifierName": "programKey"
                            },
                            "name": "programKey"
                          },
                          "computed": true
                        },
                        "operator": "==",
                        "right": {
                          "type": "NullLiteral",
                          "start": 1728,
                          "end": 1732,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 41
                            },
                            "end": {
                              "line": 52,
                              "column": 45
                            }
                          }
                        }
                      },
                      "consequent": {
                        "type": "ThrowStatement",
                        "start": 1746,
                        "end": 1778,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 12
                          },
                          "end": {
                            "line": 53,
                            "column": 44
                          }
                        },
                        "argument": {
                          "type": "StringLiteral",
                          "start": 1752,
                          "end": 1777,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 18
                            },
                            "end": {
                              "line": 53,
                              "column": 43
                            }
                          },
                          "extra": {
                            "rawValue": "Program does not exist!",
                            "raw": "'Program does not exist!'"
                          },
                          "value": "Program does not exist!"
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 1787,
                      "end": 1820,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 8
                        },
                        "end": {
                          "line": 54,
                          "column": 41
                        }
                      },
                      "argument": {
                        "type": "MemberExpression",
                        "start": 1794,
                        "end": 1819,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 15
                          },
                          "end": {
                            "line": 54,
                            "column": 40
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 1794,
                          "end": 1807,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 15
                            },
                            "end": {
                              "line": 54,
                              "column": 28
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1794,
                            "end": 1798,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 15
                              },
                              "end": {
                                "line": 54,
                                "column": 19
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1799,
                            "end": 1807,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 20
                              },
                              "end": {
                                "line": 54,
                                "column": 28
                              },
                              "identifierName": "programs"
                            },
                            "name": "programs"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1808,
                          "end": 1818,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 29
                            },
                            "end": {
                              "line": 54,
                              "column": 39
                            },
                            "identifierName": "programKey"
                          },
                          "name": "programKey"
                        },
                        "computed": true
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Returns a Program JSON Object containing the program, name and id.\n     * \n     * @param {string} programKey Name of the program.\n     * \n     * @returns {Program Object} Returns a JSON object with Program data.\n     ",
                    "start": 1427,
                    "end": 1657,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 4
                      },
                      "end": {
                        "line": 50,
                        "column": 7
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates a Program JSON Object and initializes the program and metadata.\n     * The program is added to the programs array.\n     * \n     * @param {string} programName Name of the program.\n     * @param {string} vertexShaderSource Source code of the vertex shader.\n     * @param {string} fragmentShaderSource Source code of the fragment shader.\n     * @param {Object} uniforms An object of 'string': 'number' values indicating the uniform variable name & data type enum value.\n     ",
                    "start": 1832,
                    "end": 2325,
                    "loc": {
                      "start": {
                        "line": 57,
                        "column": 4
                      },
                      "end": {
                        "line": 65,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 2330,
                "end": 3053,
                "loc": {
                  "start": {
                    "line": 66,
                    "column": 4
                  },
                  "end": {
                    "line": 81,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2330,
                  "end": 2340,
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 4
                    },
                    "end": {
                      "line": 66,
                      "column": 14
                    },
                    "identifierName": "addProgram"
                  },
                  "name": "addProgram",
                  "leadingComments": null
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2341,
                    "end": 2352,
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 15
                      },
                      "end": {
                        "line": 66,
                        "column": 26
                      },
                      "identifierName": "programName"
                    },
                    "name": "programName"
                  },
                  {
                    "type": "Identifier",
                    "start": 2354,
                    "end": 2372,
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 28
                      },
                      "end": {
                        "line": 66,
                        "column": 46
                      },
                      "identifierName": "vertexShaderSource"
                    },
                    "name": "vertexShaderSource"
                  },
                  {
                    "type": "Identifier",
                    "start": 2374,
                    "end": 2394,
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 48
                      },
                      "end": {
                        "line": 66,
                        "column": 68
                      },
                      "identifierName": "fragmentShaderSource"
                    },
                    "name": "fragmentShaderSource"
                  },
                  {
                    "type": "Identifier",
                    "start": 2396,
                    "end": 2404,
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 70
                      },
                      "end": {
                        "line": 66,
                        "column": 78
                      },
                      "identifierName": "uniforms"
                    },
                    "name": "uniforms"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2406,
                  "end": 3053,
                  "loc": {
                    "start": {
                      "line": 66,
                      "column": 80
                    },
                    "end": {
                      "line": 81,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 2416,
                      "end": 2492,
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 8
                        },
                        "end": {
                          "line": 67,
                          "column": 84
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2420,
                          "end": 2491,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 12
                            },
                            "end": {
                              "line": 67,
                              "column": 83
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2420,
                            "end": 2427,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 12
                              },
                              "end": {
                                "line": 67,
                                "column": 19
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 2430,
                            "end": 2491,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 22
                              },
                              "end": {
                                "line": 67,
                                "column": 83
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2430,
                              "end": 2449,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 22
                                },
                                "end": {
                                  "line": 67,
                                  "column": 41
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2430,
                                "end": 2434,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 26
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2435,
                                "end": 2449,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 41
                                  },
                                  "identifierName": "_createProgram"
                                },
                                "name": "_createProgram"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 2450,
                                "end": 2468,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 60
                                  },
                                  "identifierName": "vertexShaderSource"
                                },
                                "name": "vertexShaderSource"
                              },
                              {
                                "type": "Identifier",
                                "start": 2470,
                                "end": 2490,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 62
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 82
                                  },
                                  "identifierName": "fragmentShaderSource"
                                },
                                "name": "fragmentShaderSource"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 2501,
                      "end": 2576,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 8
                        },
                        "end": {
                          "line": 68,
                          "column": 83
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2505,
                          "end": 2575,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 12
                            },
                            "end": {
                              "line": 68,
                              "column": 82
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2505,
                            "end": 2519,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 12
                              },
                              "end": {
                                "line": 68,
                                "column": 26
                              },
                              "identifierName": "uniformSetters"
                            },
                            "name": "uniformSetters"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 2522,
                            "end": 2575,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 29
                              },
                              "end": {
                                "line": 68,
                                "column": 82
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2522,
                              "end": 2556,
                              "loc": {
                                "start": {
                                  "line": 68,
                                  "column": 29
                                },
                                "end": {
                                  "line": 68,
                                  "column": 63
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2522,
                                "end": 2526,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 33
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2527,
                                "end": 2556,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 63
                                  },
                                  "identifierName": "_createProgramLocationSetters"
                                },
                                "name": "_createProgramLocationSetters"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 2557,
                                "end": 2564,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 64
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 71
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              },
                              {
                                "type": "Identifier",
                                "start": 2566,
                                "end": 2574,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 73
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 81
                                  },
                                  "identifierName": "uniforms"
                                },
                                "name": "uniforms"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2585,
                      "end": 3047,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 8
                        },
                        "end": {
                          "line": 80,
                          "column": 10
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2585,
                        "end": 3046,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 8
                          },
                          "end": {
                            "line": 80,
                            "column": 9
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2585,
                          "end": 2611,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 8
                            },
                            "end": {
                              "line": 69,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2585,
                            "end": 2598,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 8
                              },
                              "end": {
                                "line": 69,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2585,
                              "end": 2589,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 8
                                },
                                "end": {
                                  "line": 69,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2590,
                              "end": 2598,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 13
                                },
                                "end": {
                                  "line": 69,
                                  "column": 21
                                },
                                "identifierName": "programs"
                              },
                              "name": "programs"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2599,
                            "end": 2610,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 22
                              },
                              "end": {
                                "line": 69,
                                "column": 33
                              },
                              "identifierName": "programName"
                            },
                            "name": "programName"
                          },
                          "computed": true
                        },
                        "right": {
                          "type": "ObjectExpression",
                          "start": 2614,
                          "end": 3046,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 37
                            },
                            "end": {
                              "line": 80,
                              "column": 9
                            }
                          },
                          "properties": [
                            {
                              "type": "ObjectProperty",
                              "start": 2628,
                              "end": 2645,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 12
                                },
                                "end": {
                                  "line": 70,
                                  "column": 29
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 2628,
                                "end": 2632,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 16
                                  },
                                  "identifierName": "name"
                                },
                                "name": "name"
                              },
                              "value": {
                                "type": "Identifier",
                                "start": 2634,
                                "end": 2645,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 29
                                  },
                                  "identifierName": "programName"
                                },
                                "name": "programName"
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 2659,
                              "end": 2686,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 12
                                },
                                "end": {
                                  "line": 71,
                                  "column": 39
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 2659,
                                "end": 2661,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 14
                                  },
                                  "identifierName": "id"
                                },
                                "name": "id"
                              },
                              "value": {
                                "type": "UpdateExpression",
                                "start": 2663,
                                "end": 2686,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 39
                                  }
                                },
                                "operator": "++",
                                "prefix": false,
                                "argument": {
                                  "type": "MemberExpression",
                                  "start": 2663,
                                  "end": 2684,
                                  "loc": {
                                    "start": {
                                      "line": 71,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 71,
                                      "column": 37
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2663,
                                    "end": 2667,
                                    "loc": {
                                      "start": {
                                        "line": 71,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 71,
                                        "column": 20
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2668,
                                    "end": 2684,
                                    "loc": {
                                      "start": {
                                        "line": 71,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 71,
                                        "column": 37
                                      },
                                      "identifierName": "programIDCounter"
                                    },
                                    "name": "programIDCounter"
                                  },
                                  "computed": false
                                }
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 2700,
                              "end": 2707,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 12
                                },
                                "end": {
                                  "line": 72,
                                  "column": 19
                                }
                              },
                              "method": false,
                              "shorthand": true,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 2700,
                                "end": 2707,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 19
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              },
                              "value": {
                                "type": "Identifier",
                                "start": 2700,
                                "end": 2707,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 19
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              },
                              "extra": {
                                "shorthand": true
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 2721,
                              "end": 2735,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 12
                                },
                                "end": {
                                  "line": 73,
                                  "column": 26
                                }
                              },
                              "method": false,
                              "shorthand": true,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 2721,
                                "end": 2735,
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 26
                                  },
                                  "identifierName": "uniformSetters"
                                },
                                "name": "uniformSetters"
                              },
                              "value": {
                                "type": "Identifier",
                                "start": 2721,
                                "end": 2735,
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 26
                                  },
                                  "identifierName": "uniformSetters"
                                },
                                "name": "uniformSetters"
                              },
                              "extra": {
                                "shorthand": true
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 2749,
                              "end": 3036,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 12
                                },
                                "end": {
                                  "line": 79,
                                  "column": 13
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 2749,
                                "end": 2760,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 23
                                  },
                                  "identifierName": "setUniforms"
                                },
                                "name": "setUniforms"
                              },
                              "value": {
                                "type": "ArrowFunctionExpression",
                                "start": 2762,
                                "end": 3036,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 13
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 2763,
                                    "end": 2781,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 44
                                      },
                                      "identifierName": "uniformDataMapping"
                                    },
                                    "name": "uniformDataMapping"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 2786,
                                  "end": 3036,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 49
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 13
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "start": 2804,
                                      "end": 2850,
                                      "loc": {
                                        "start": {
                                          "line": 75,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 75,
                                          "column": 62
                                        }
                                      },
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "start": 2808,
                                          "end": 2849,
                                          "loc": {
                                            "start": {
                                              "line": 75,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 75,
                                              "column": 61
                                            }
                                          },
                                          "id": {
                                            "type": "Identifier",
                                            "start": 2808,
                                            "end": 2815,
                                            "loc": {
                                              "start": {
                                                "line": 75,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 75,
                                                "column": 27
                                              },
                                              "identifierName": "setters"
                                            },
                                            "name": "setters"
                                          },
                                          "init": {
                                            "type": "CallExpression",
                                            "start": 2818,
                                            "end": 2849,
                                            "loc": {
                                              "start": {
                                                "line": 75,
                                                "column": 30
                                              },
                                              "end": {
                                                "line": 75,
                                                "column": 61
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 2818,
                                              "end": 2829,
                                              "loc": {
                                                "start": {
                                                  "line": 75,
                                                  "column": 30
                                                },
                                                "end": {
                                                  "line": 75,
                                                  "column": 41
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 2818,
                                                "end": 2824,
                                                "loc": {
                                                  "start": {
                                                    "line": 75,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 75,
                                                    "column": 36
                                                  },
                                                  "identifierName": "Object"
                                                },
                                                "name": "Object"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 2825,
                                                "end": 2829,
                                                "loc": {
                                                  "start": {
                                                    "line": 75,
                                                    "column": 37
                                                  },
                                                  "end": {
                                                    "line": 75,
                                                    "column": 41
                                                  },
                                                  "identifierName": "keys"
                                                },
                                                "name": "keys"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "start": 2830,
                                                "end": 2848,
                                                "loc": {
                                                  "start": {
                                                    "line": 75,
                                                    "column": 42
                                                  },
                                                  "end": {
                                                    "line": 75,
                                                    "column": 60
                                                  },
                                                  "identifierName": "uniformDataMapping"
                                                },
                                                "name": "uniformDataMapping"
                                              }
                                            ]
                                          }
                                        }
                                      ],
                                      "kind": "let"
                                    },
                                    {
                                      "type": "ForStatement",
                                      "start": 2867,
                                      "end": 3022,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 17
                                        }
                                      },
                                      "init": {
                                        "type": "VariableDeclaration",
                                        "start": 2872,
                                        "end": 2881,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 30
                                          }
                                        },
                                        "declarations": [
                                          {
                                            "type": "VariableDeclarator",
                                            "start": 2876,
                                            "end": 2881,
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 30
                                              }
                                            },
                                            "id": {
                                              "type": "Identifier",
                                              "start": 2876,
                                              "end": 2877,
                                              "loc": {
                                                "start": {
                                                  "line": 76,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 76,
                                                  "column": 26
                                                },
                                                "identifierName": "i"
                                              },
                                              "name": "i"
                                            },
                                            "init": {
                                              "type": "NumericLiteral",
                                              "start": 2880,
                                              "end": 2881,
                                              "loc": {
                                                "start": {
                                                  "line": 76,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 76,
                                                  "column": 30
                                                }
                                              },
                                              "extra": {
                                                "rawValue": 0,
                                                "raw": "0"
                                              },
                                              "value": 0
                                            }
                                          }
                                        ],
                                        "kind": "let"
                                      },
                                      "test": {
                                        "type": "BinaryExpression",
                                        "start": 2883,
                                        "end": 2901,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 50
                                          }
                                        },
                                        "left": {
                                          "type": "Identifier",
                                          "start": 2883,
                                          "end": 2884,
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 33
                                            },
                                            "identifierName": "i"
                                          },
                                          "name": "i"
                                        },
                                        "operator": "<",
                                        "right": {
                                          "type": "MemberExpression",
                                          "start": 2887,
                                          "end": 2901,
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 50
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 2887,
                                            "end": 2894,
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 36
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 43
                                              },
                                              "identifierName": "setters"
                                            },
                                            "name": "setters"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 2895,
                                            "end": 2901,
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 44
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 50
                                              },
                                              "identifierName": "length"
                                            },
                                            "name": "length"
                                          },
                                          "computed": false
                                        }
                                      },
                                      "update": {
                                        "type": "UpdateExpression",
                                        "start": 2903,
                                        "end": 2906,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 52
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 55
                                          }
                                        },
                                        "operator": "++",
                                        "prefix": false,
                                        "argument": {
                                          "type": "Identifier",
                                          "start": 2903,
                                          "end": 2904,
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 52
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 53
                                            },
                                            "identifierName": "i"
                                          },
                                          "name": "i"
                                        }
                                      },
                                      "body": {
                                        "type": "BlockStatement",
                                        "start": 2908,
                                        "end": 3022,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 57
                                          },
                                          "end": {
                                            "line": 78,
                                            "column": 17
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "ExpressionStatement",
                                            "start": 2930,
                                            "end": 3004,
                                            "loc": {
                                              "start": {
                                                "line": 77,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 77,
                                                "column": 94
                                              }
                                            },
                                            "expression": {
                                              "type": "CallExpression",
                                              "start": 2930,
                                              "end": 3003,
                                              "loc": {
                                                "start": {
                                                  "line": 77,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 77,
                                                  "column": 93
                                                }
                                              },
                                              "callee": {
                                                "type": "MemberExpression",
                                                "start": 2930,
                                                "end": 2956,
                                                "loc": {
                                                  "start": {
                                                    "line": 77,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 77,
                                                    "column": 46
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 2930,
                                                  "end": 2944,
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 34
                                                    },
                                                    "identifierName": "uniformSetters"
                                                  },
                                                  "name": "uniformSetters"
                                                },
                                                "property": {
                                                  "type": "MemberExpression",
                                                  "start": 2945,
                                                  "end": 2955,
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 35
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 45
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 2945,
                                                    "end": 2952,
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 35
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 42
                                                      },
                                                      "identifierName": "setters"
                                                    },
                                                    "name": "setters"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 2953,
                                                    "end": 2954,
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 43
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 44
                                                      },
                                                      "identifierName": "i"
                                                    },
                                                    "name": "i"
                                                  },
                                                  "computed": true
                                                },
                                                "computed": true
                                              },
                                              "arguments": [
                                                {
                                                  "type": "MemberExpression",
                                                  "start": 2957,
                                                  "end": 2970,
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 47
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 60
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 2957,
                                                    "end": 2967,
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 47
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 57
                                                      },
                                                      "identifierName": "DOMManager"
                                                    },
                                                    "name": "DOMManager"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 2968,
                                                    "end": 2970,
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 58
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 60
                                                      },
                                                      "identifierName": "GL"
                                                    },
                                                    "name": "GL"
                                                  },
                                                  "computed": false
                                                },
                                                {
                                                  "type": "MemberExpression",
                                                  "start": 2972,
                                                  "end": 3002,
                                                  "loc": {
                                                    "start": {
                                                      "line": 77,
                                                      "column": 62
                                                    },
                                                    "end": {
                                                      "line": 77,
                                                      "column": 92
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 2972,
                                                    "end": 2990,
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 62
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 80
                                                      },
                                                      "identifierName": "uniformDataMapping"
                                                    },
                                                    "name": "uniformDataMapping"
                                                  },
                                                  "property": {
                                                    "type": "MemberExpression",
                                                    "start": 2991,
                                                    "end": 3001,
                                                    "loc": {
                                                      "start": {
                                                        "line": 77,
                                                        "column": 81
                                                      },
                                                      "end": {
                                                        "line": 77,
                                                        "column": 91
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 2991,
                                                      "end": 2998,
                                                      "loc": {
                                                        "start": {
                                                          "line": 77,
                                                          "column": 81
                                                        },
                                                        "end": {
                                                          "line": 77,
                                                          "column": 88
                                                        },
                                                        "identifierName": "setters"
                                                      },
                                                      "name": "setters"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 2999,
                                                      "end": 3000,
                                                      "loc": {
                                                        "start": {
                                                          "line": 77,
                                                          "column": 89
                                                        },
                                                        "end": {
                                                          "line": 77,
                                                          "column": 90
                                                        },
                                                        "identifierName": "i"
                                                      },
                                                      "name": "i"
                                                    },
                                                    "computed": true
                                                  },
                                                  "computed": true
                                                }
                                              ]
                                            }
                                          }
                                        ],
                                        "directives": []
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates a Program JSON Object and initializes the program and metadata.\n     * The program is added to the programs array.\n     * \n     * @param {string} programName Name of the program.\n     * @param {string} vertexShaderSource Source code of the vertex shader.\n     * @param {string} fragmentShaderSource Source code of the fragment shader.\n     * @param {Object} uniforms An object of 'string': 'number' values indicating the uniform variable name & data type enum value.\n     ",
                    "start": 1832,
                    "end": 2325,
                    "loc": {
                      "start": {
                        "line": 57,
                        "column": 4
                      },
                      "end": {
                        "line": 65,
                        "column": 7
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates a WebGL program from a compiled vertex and fragment shader. The program is returned.\n     * \n     * @param {CompiledVertexShader} vertexShader A compiled vertex shader.\n     * @param {CompiledFragmentShader} fragmentShader A compiled fragment shader.\n     * \n     * @returns {Program} A WebGL program. Null if unsuccessful.\n     ",
                    "start": 3059,
                    "end": 3409,
                    "loc": {
                      "start": {
                        "line": 83,
                        "column": 4
                      },
                      "end": {
                        "line": 90,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 3414,
                "end": 3977,
                "loc": {
                  "start": {
                    "line": 91,
                    "column": 4
                  },
                  "end": {
                    "line": 104,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3414,
                  "end": 3435,
                  "loc": {
                    "start": {
                      "line": 91,
                      "column": 4
                    },
                    "end": {
                      "line": 91,
                      "column": 25
                    },
                    "identifierName": "_createShadersProgram"
                  },
                  "name": "_createShadersProgram",
                  "leadingComments": null
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 3436,
                    "end": 3448,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 26
                      },
                      "end": {
                        "line": 91,
                        "column": 38
                      },
                      "identifierName": "vertexShader"
                    },
                    "name": "vertexShader"
                  },
                  {
                    "type": "Identifier",
                    "start": 3450,
                    "end": 3464,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 40
                      },
                      "end": {
                        "line": 91,
                        "column": 54
                      },
                      "identifierName": "fragmentShader"
                    },
                    "name": "fragmentShader"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3466,
                  "end": 3977,
                  "loc": {
                    "start": {
                      "line": 91,
                      "column": 56
                    },
                    "end": {
                      "line": 104,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 3476,
                      "end": 3520,
                      "loc": {
                        "start": {
                          "line": 92,
                          "column": 8
                        },
                        "end": {
                          "line": 92,
                          "column": 52
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3480,
                          "end": 3519,
                          "loc": {
                            "start": {
                              "line": 92,
                              "column": 12
                            },
                            "end": {
                              "line": 92,
                              "column": 51
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3480,
                            "end": 3487,
                            "loc": {
                              "start": {
                                "line": 92,
                                "column": 12
                              },
                              "end": {
                                "line": 92,
                                "column": 19
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 3490,
                            "end": 3519,
                            "loc": {
                              "start": {
                                "line": 92,
                                "column": 22
                              },
                              "end": {
                                "line": 92,
                                "column": 51
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3490,
                              "end": 3517,
                              "loc": {
                                "start": {
                                  "line": 92,
                                  "column": 22
                                },
                                "end": {
                                  "line": 92,
                                  "column": 49
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 3490,
                                "end": 3503,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3490,
                                  "end": 3500,
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 32
                                    },
                                    "identifierName": "DOMManager"
                                  },
                                  "name": "DOMManager"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3501,
                                  "end": 3503,
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 35
                                    },
                                    "identifierName": "GL"
                                  },
                                  "name": "GL"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3504,
                                "end": 3517,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 49
                                  },
                                  "identifierName": "createProgram"
                                },
                                "name": "createProgram"
                              },
                              "computed": false
                            },
                            "arguments": []
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3529,
                      "end": 3579,
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 8
                        },
                        "end": {
                          "line": 93,
                          "column": 58
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3529,
                        "end": 3578,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 8
                          },
                          "end": {
                            "line": 93,
                            "column": 57
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3529,
                          "end": 3555,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 8
                            },
                            "end": {
                              "line": 93,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3529,
                            "end": 3542,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 8
                              },
                              "end": {
                                "line": 93,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3529,
                              "end": 3539,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 8
                                },
                                "end": {
                                  "line": 93,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3540,
                              "end": 3542,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 19
                                },
                                "end": {
                                  "line": 93,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3543,
                            "end": 3555,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 22
                              },
                              "end": {
                                "line": 93,
                                "column": 34
                              },
                              "identifierName": "attachShader"
                            },
                            "name": "attachShader"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3556,
                            "end": 3563,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 35
                              },
                              "end": {
                                "line": 93,
                                "column": 42
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          },
                          {
                            "type": "Identifier",
                            "start": 3565,
                            "end": 3577,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 44
                              },
                              "end": {
                                "line": 93,
                                "column": 56
                              },
                              "identifierName": "vertexShader"
                            },
                            "name": "vertexShader"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3588,
                      "end": 3640,
                      "loc": {
                        "start": {
                          "line": 94,
                          "column": 8
                        },
                        "end": {
                          "line": 94,
                          "column": 60
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3588,
                        "end": 3639,
                        "loc": {
                          "start": {
                            "line": 94,
                            "column": 8
                          },
                          "end": {
                            "line": 94,
                            "column": 59
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3588,
                          "end": 3614,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 8
                            },
                            "end": {
                              "line": 94,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3588,
                            "end": 3601,
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 8
                              },
                              "end": {
                                "line": 94,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3588,
                              "end": 3598,
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 8
                                },
                                "end": {
                                  "line": 94,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3599,
                              "end": 3601,
                              "loc": {
                                "start": {
                                  "line": 94,
                                  "column": 19
                                },
                                "end": {
                                  "line": 94,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3602,
                            "end": 3614,
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 22
                              },
                              "end": {
                                "line": 94,
                                "column": 34
                              },
                              "identifierName": "attachShader"
                            },
                            "name": "attachShader"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3615,
                            "end": 3622,
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 35
                              },
                              "end": {
                                "line": 94,
                                "column": 42
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          },
                          {
                            "type": "Identifier",
                            "start": 3624,
                            "end": 3638,
                            "loc": {
                              "start": {
                                "line": 94,
                                "column": 44
                              },
                              "end": {
                                "line": 94,
                                "column": 58
                              },
                              "identifierName": "fragmentShader"
                            },
                            "name": "fragmentShader"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3649,
                      "end": 3684,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 8
                        },
                        "end": {
                          "line": 95,
                          "column": 43
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3649,
                        "end": 3683,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 8
                          },
                          "end": {
                            "line": 95,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3649,
                          "end": 3674,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 8
                            },
                            "end": {
                              "line": 95,
                              "column": 33
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3649,
                            "end": 3662,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 8
                              },
                              "end": {
                                "line": 95,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3649,
                              "end": 3659,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 8
                                },
                                "end": {
                                  "line": 95,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3660,
                              "end": 3662,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 19
                                },
                                "end": {
                                  "line": 95,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3663,
                            "end": 3674,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 22
                              },
                              "end": {
                                "line": 95,
                                "column": 33
                              },
                              "identifierName": "linkProgram"
                            },
                            "name": "linkProgram"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3675,
                            "end": 3682,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 34
                              },
                              "end": {
                                "line": 95,
                                "column": 41
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          }
                        ]
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 3693,
                      "end": 3777,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 8
                        },
                        "end": {
                          "line": 96,
                          "column": 92
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3697,
                          "end": 3776,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 12
                            },
                            "end": {
                              "line": 96,
                              "column": 91
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3697,
                            "end": 3704,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 12
                              },
                              "end": {
                                "line": 96,
                                "column": 19
                              },
                              "identifierName": "success"
                            },
                            "name": "success"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 3707,
                            "end": 3776,
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 22
                              },
                              "end": {
                                "line": 96,
                                "column": 91
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3707,
                              "end": 3740,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 22
                                },
                                "end": {
                                  "line": 96,
                                  "column": 55
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 3707,
                                "end": 3720,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3707,
                                  "end": 3717,
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 32
                                    },
                                    "identifierName": "DOMManager"
                                  },
                                  "name": "DOMManager"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3718,
                                  "end": 3720,
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 35
                                    },
                                    "identifierName": "GL"
                                  },
                                  "name": "GL"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3721,
                                "end": 3740,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 55
                                  },
                                  "identifierName": "getProgramParameter"
                                },
                                "name": "getProgramParameter"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 3741,
                                "end": 3748,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 56
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 63
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              },
                              {
                                "type": "MemberExpression",
                                "start": 3750,
                                "end": 3775,
                                "loc": {
                                  "start": {
                                    "line": 96,
                                    "column": 65
                                  },
                                  "end": {
                                    "line": 96,
                                    "column": 90
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 3750,
                                  "end": 3763,
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 65
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 78
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3750,
                                    "end": 3760,
                                    "loc": {
                                      "start": {
                                        "line": 96,
                                        "column": 65
                                      },
                                      "end": {
                                        "line": 96,
                                        "column": 75
                                      },
                                      "identifierName": "DOMManager"
                                    },
                                    "name": "DOMManager"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3761,
                                    "end": 3763,
                                    "loc": {
                                      "start": {
                                        "line": 96,
                                        "column": 76
                                      },
                                      "end": {
                                        "line": 96,
                                        "column": 78
                                      },
                                      "identifierName": "GL"
                                    },
                                    "name": "GL"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3764,
                                  "end": 3775,
                                  "loc": {
                                    "start": {
                                      "line": 96,
                                      "column": 79
                                    },
                                    "end": {
                                      "line": 96,
                                      "column": 90
                                    },
                                    "identifierName": "LINK_STATUS"
                                  },
                                  "name": "LINK_STATUS"
                                },
                                "computed": false
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 3786,
                      "end": 3838,
                      "loc": {
                        "start": {
                          "line": 97,
                          "column": 8
                        },
                        "end": {
                          "line": 99,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 3790,
                        "end": 3797,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 12
                          },
                          "end": {
                            "line": 97,
                            "column": 19
                          },
                          "identifierName": "success"
                        },
                        "name": "success"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 3799,
                        "end": 3838,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 21
                          },
                          "end": {
                            "line": 99,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 3813,
                            "end": 3828,
                            "loc": {
                              "start": {
                                "line": 98,
                                "column": 12
                              },
                              "end": {
                                "line": 98,
                                "column": 27
                              }
                            },
                            "argument": {
                              "type": "Identifier",
                              "start": 3820,
                              "end": 3827,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 19
                                },
                                "end": {
                                  "line": 98,
                                  "column": 26
                                },
                                "identifierName": "program"
                              },
                              "name": "program"
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3848,
                      "end": 3904,
                      "loc": {
                        "start": {
                          "line": 101,
                          "column": 8
                        },
                        "end": {
                          "line": 101,
                          "column": 64
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3848,
                        "end": 3903,
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 8
                          },
                          "end": {
                            "line": 101,
                            "column": 63
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3848,
                          "end": 3861,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 8
                            },
                            "end": {
                              "line": 101,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3848,
                            "end": 3855,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 8
                              },
                              "end": {
                                "line": 101,
                                "column": 15
                              },
                              "identifierName": "console"
                            },
                            "name": "console"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3856,
                            "end": 3861,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 16
                              },
                              "end": {
                                "line": 101,
                                "column": 21
                              },
                              "identifierName": "error"
                            },
                            "name": "error"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "start": 3862,
                            "end": 3902,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 22
                              },
                              "end": {
                                "line": 101,
                                "column": 62
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 3862,
                              "end": 3893,
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 22
                                },
                                "end": {
                                  "line": 101,
                                  "column": 53
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 3862,
                                "end": 3875,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3862,
                                  "end": 3872,
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 32
                                    },
                                    "identifierName": "DOMManager"
                                  },
                                  "name": "DOMManager"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3873,
                                  "end": 3875,
                                  "loc": {
                                    "start": {
                                      "line": 101,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 35
                                    },
                                    "identifierName": "GL"
                                  },
                                  "name": "GL"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3876,
                                "end": 3893,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 53
                                  },
                                  "identifierName": "getProgramInfoLog"
                                },
                                "name": "getProgramInfoLog"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 3894,
                                "end": 3901,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 54
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 61
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              }
                            ]
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3913,
                      "end": 3950,
                      "loc": {
                        "start": {
                          "line": 102,
                          "column": 8
                        },
                        "end": {
                          "line": 102,
                          "column": 45
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3913,
                        "end": 3949,
                        "loc": {
                          "start": {
                            "line": 102,
                            "column": 8
                          },
                          "end": {
                            "line": 102,
                            "column": 44
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3913,
                          "end": 3940,
                          "loc": {
                            "start": {
                              "line": 102,
                              "column": 8
                            },
                            "end": {
                              "line": 102,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3913,
                            "end": 3926,
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 8
                              },
                              "end": {
                                "line": 102,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 3913,
                              "end": 3923,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 8
                                },
                                "end": {
                                  "line": 102,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3924,
                              "end": 3926,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 19
                                },
                                "end": {
                                  "line": 102,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3927,
                            "end": 3940,
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 22
                              },
                              "end": {
                                "line": 102,
                                "column": 35
                              },
                              "identifierName": "deleteProgram"
                            },
                            "name": "deleteProgram"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3941,
                            "end": 3948,
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 36
                              },
                              "end": {
                                "line": 102,
                                "column": 43
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 3959,
                      "end": 3971,
                      "loc": {
                        "start": {
                          "line": 103,
                          "column": 8
                        },
                        "end": {
                          "line": 103,
                          "column": 20
                        }
                      },
                      "argument": {
                        "type": "NullLiteral",
                        "start": 3966,
                        "end": 3970,
                        "loc": {
                          "start": {
                            "line": 103,
                            "column": 15
                          },
                          "end": {
                            "line": 103,
                            "column": 19
                          }
                        }
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates a WebGL program from a compiled vertex and fragment shader. The program is returned.\n     * \n     * @param {CompiledVertexShader} vertexShader A compiled vertex shader.\n     * @param {CompiledFragmentShader} fragmentShader A compiled fragment shader.\n     * \n     * @returns {Program} A WebGL program. Null if unsuccessful.\n     ",
                    "start": 3059,
                    "end": 3409,
                    "loc": {
                      "start": {
                        "line": 83,
                        "column": 4
                      },
                      "end": {
                        "line": 90,
                        "column": 7
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates a shader of either Vertex or Fragment type and returns the compiled version.\n     * \n     * @param {GLShaderType} type A GL shader type of either VERTEX_SHADER or FRAGMENT_SHADER.\n     * @param {string} source Source code for the shader type.\n     * \n     * @returns {CompiledShader} A compiled shader. Null if unsuccessful.\n     ",
                    "start": 3983,
                    "end": 4334,
                    "loc": {
                      "start": {
                        "line": 106,
                        "column": 4
                      },
                      "end": {
                        "line": 113,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 4339,
                "end": 4809,
                "loc": {
                  "start": {
                    "line": 114,
                    "column": 4
                  },
                  "end": {
                    "line": 126,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 4339,
                  "end": 4352,
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 4
                    },
                    "end": {
                      "line": 114,
                      "column": 17
                    },
                    "identifierName": "_createShader"
                  },
                  "name": "_createShader",
                  "leadingComments": null
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 4353,
                    "end": 4357,
                    "loc": {
                      "start": {
                        "line": 114,
                        "column": 18
                      },
                      "end": {
                        "line": 114,
                        "column": 22
                      },
                      "identifierName": "type"
                    },
                    "name": "type"
                  },
                  {
                    "type": "Identifier",
                    "start": 4359,
                    "end": 4365,
                    "loc": {
                      "start": {
                        "line": 114,
                        "column": 24
                      },
                      "end": {
                        "line": 114,
                        "column": 30
                      },
                      "identifierName": "source"
                    },
                    "name": "source"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 4367,
                  "end": 4809,
                  "loc": {
                    "start": {
                      "line": 114,
                      "column": 32
                    },
                    "end": {
                      "line": 126,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 4377,
                      "end": 4423,
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 8
                        },
                        "end": {
                          "line": 115,
                          "column": 54
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 4381,
                          "end": 4422,
                          "loc": {
                            "start": {
                              "line": 115,
                              "column": 12
                            },
                            "end": {
                              "line": 115,
                              "column": 53
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4381,
                            "end": 4387,
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 12
                              },
                              "end": {
                                "line": 115,
                                "column": 18
                              },
                              "identifierName": "shader"
                            },
                            "name": "shader"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 4390,
                            "end": 4422,
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 21
                              },
                              "end": {
                                "line": 115,
                                "column": 53
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 4390,
                              "end": 4416,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 21
                                },
                                "end": {
                                  "line": 115,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 4390,
                                "end": 4403,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 34
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4390,
                                  "end": 4400,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 31
                                    },
                                    "identifierName": "DOMManager"
                                  },
                                  "name": "DOMManager"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4401,
                                  "end": 4403,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 34
                                    },
                                    "identifierName": "GL"
                                  },
                                  "name": "GL"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4404,
                                "end": 4416,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 47
                                  },
                                  "identifierName": "createShader"
                                },
                                "name": "createShader"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4417,
                                "end": 4421,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 52
                                  },
                                  "identifierName": "type"
                                },
                                "name": "type"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4432,
                      "end": 4475,
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 8
                        },
                        "end": {
                          "line": 116,
                          "column": 51
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 4432,
                        "end": 4474,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 8
                          },
                          "end": {
                            "line": 116,
                            "column": 50
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4432,
                          "end": 4458,
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 8
                            },
                            "end": {
                              "line": 116,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 4432,
                            "end": 4445,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 8
                              },
                              "end": {
                                "line": 116,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 4432,
                              "end": 4442,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 8
                                },
                                "end": {
                                  "line": 116,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4443,
                              "end": 4445,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 19
                                },
                                "end": {
                                  "line": 116,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4446,
                            "end": 4458,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 22
                              },
                              "end": {
                                "line": 116,
                                "column": 34
                              },
                              "identifierName": "shaderSource"
                            },
                            "name": "shaderSource"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 4459,
                            "end": 4465,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 35
                              },
                              "end": {
                                "line": 116,
                                "column": 41
                              },
                              "identifierName": "shader"
                            },
                            "name": "shader"
                          },
                          {
                            "type": "Identifier",
                            "start": 4467,
                            "end": 4473,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 43
                              },
                              "end": {
                                "line": 116,
                                "column": 49
                              },
                              "identifierName": "source"
                            },
                            "name": "source"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4484,
                      "end": 4520,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 8
                        },
                        "end": {
                          "line": 117,
                          "column": 44
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 4484,
                        "end": 4519,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 8
                          },
                          "end": {
                            "line": 117,
                            "column": 43
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4484,
                          "end": 4511,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 8
                            },
                            "end": {
                              "line": 117,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 4484,
                            "end": 4497,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 8
                              },
                              "end": {
                                "line": 117,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 4484,
                              "end": 4494,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 8
                                },
                                "end": {
                                  "line": 117,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4495,
                              "end": 4497,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 19
                                },
                                "end": {
                                  "line": 117,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4498,
                            "end": 4511,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 22
                              },
                              "end": {
                                "line": 117,
                                "column": 35
                              },
                              "identifierName": "compileShader"
                            },
                            "name": "compileShader"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 4512,
                            "end": 4518,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 36
                              },
                              "end": {
                                "line": 117,
                                "column": 42
                              },
                              "identifierName": "shader"
                            },
                            "name": "shader"
                          }
                        ]
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 4529,
                      "end": 4614,
                      "loc": {
                        "start": {
                          "line": 118,
                          "column": 8
                        },
                        "end": {
                          "line": 118,
                          "column": 93
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 4533,
                          "end": 4613,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 12
                            },
                            "end": {
                              "line": 118,
                              "column": 92
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4533,
                            "end": 4540,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 12
                              },
                              "end": {
                                "line": 118,
                                "column": 19
                              },
                              "identifierName": "success"
                            },
                            "name": "success"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 4543,
                            "end": 4613,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 22
                              },
                              "end": {
                                "line": 118,
                                "column": 92
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 4543,
                              "end": 4575,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 22
                                },
                                "end": {
                                  "line": 118,
                                  "column": 54
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 4543,
                                "end": 4556,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4543,
                                  "end": 4553,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 32
                                    },
                                    "identifierName": "DOMManager"
                                  },
                                  "name": "DOMManager"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4554,
                                  "end": 4556,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 35
                                    },
                                    "identifierName": "GL"
                                  },
                                  "name": "GL"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4557,
                                "end": 4575,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 54
                                  },
                                  "identifierName": "getShaderParameter"
                                },
                                "name": "getShaderParameter"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4576,
                                "end": 4582,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 55
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 61
                                  },
                                  "identifierName": "shader"
                                },
                                "name": "shader"
                              },
                              {
                                "type": "MemberExpression",
                                "start": 4584,
                                "end": 4612,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 63
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 91
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 4584,
                                  "end": 4597,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 63
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 76
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4584,
                                    "end": 4594,
                                    "loc": {
                                      "start": {
                                        "line": 118,
                                        "column": 63
                                      },
                                      "end": {
                                        "line": 118,
                                        "column": 73
                                      },
                                      "identifierName": "DOMManager"
                                    },
                                    "name": "DOMManager"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4595,
                                    "end": 4597,
                                    "loc": {
                                      "start": {
                                        "line": 118,
                                        "column": 74
                                      },
                                      "end": {
                                        "line": 118,
                                        "column": 76
                                      },
                                      "identifierName": "GL"
                                    },
                                    "name": "GL"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4598,
                                  "end": 4612,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 77
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 91
                                    },
                                    "identifierName": "COMPILE_STATUS"
                                  },
                                  "name": "COMPILE_STATUS"
                                },
                                "computed": false
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 4623,
                      "end": 4674,
                      "loc": {
                        "start": {
                          "line": 119,
                          "column": 8
                        },
                        "end": {
                          "line": 121,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 4627,
                        "end": 4634,
                        "loc": {
                          "start": {
                            "line": 119,
                            "column": 12
                          },
                          "end": {
                            "line": 119,
                            "column": 19
                          },
                          "identifierName": "success"
                        },
                        "name": "success"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 4636,
                        "end": 4674,
                        "loc": {
                          "start": {
                            "line": 119,
                            "column": 21
                          },
                          "end": {
                            "line": 121,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 4650,
                            "end": 4664,
                            "loc": {
                              "start": {
                                "line": 120,
                                "column": 12
                              },
                              "end": {
                                "line": 120,
                                "column": 26
                              }
                            },
                            "argument": {
                              "type": "Identifier",
                              "start": 4657,
                              "end": 4663,
                              "loc": {
                                "start": {
                                  "line": 120,
                                  "column": 19
                                },
                                "end": {
                                  "line": 120,
                                  "column": 25
                                },
                                "identifierName": "shader"
                              },
                              "name": "shader"
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4684,
                      "end": 4738,
                      "loc": {
                        "start": {
                          "line": 123,
                          "column": 8
                        },
                        "end": {
                          "line": 123,
                          "column": 62
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 4684,
                        "end": 4737,
                        "loc": {
                          "start": {
                            "line": 123,
                            "column": 8
                          },
                          "end": {
                            "line": 123,
                            "column": 61
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4684,
                          "end": 4697,
                          "loc": {
                            "start": {
                              "line": 123,
                              "column": 8
                            },
                            "end": {
                              "line": 123,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 4684,
                            "end": 4691,
                            "loc": {
                              "start": {
                                "line": 123,
                                "column": 8
                              },
                              "end": {
                                "line": 123,
                                "column": 15
                              },
                              "identifierName": "console"
                            },
                            "name": "console"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4692,
                            "end": 4697,
                            "loc": {
                              "start": {
                                "line": 123,
                                "column": 16
                              },
                              "end": {
                                "line": 123,
                                "column": 21
                              },
                              "identifierName": "error"
                            },
                            "name": "error"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "start": 4698,
                            "end": 4736,
                            "loc": {
                              "start": {
                                "line": 123,
                                "column": 22
                              },
                              "end": {
                                "line": 123,
                                "column": 60
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 4698,
                              "end": 4728,
                              "loc": {
                                "start": {
                                  "line": 123,
                                  "column": 22
                                },
                                "end": {
                                  "line": 123,
                                  "column": 52
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 4698,
                                "end": 4711,
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4698,
                                  "end": 4708,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 32
                                    },
                                    "identifierName": "DOMManager"
                                  },
                                  "name": "DOMManager"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4709,
                                  "end": 4711,
                                  "loc": {
                                    "start": {
                                      "line": 123,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 123,
                                      "column": 35
                                    },
                                    "identifierName": "GL"
                                  },
                                  "name": "GL"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4712,
                                "end": 4728,
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 52
                                  },
                                  "identifierName": "getShaderInfoLog"
                                },
                                "name": "getShaderInfoLog"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4729,
                                "end": 4735,
                                "loc": {
                                  "start": {
                                    "line": 123,
                                    "column": 53
                                  },
                                  "end": {
                                    "line": 123,
                                    "column": 59
                                  },
                                  "identifierName": "shader"
                                },
                                "name": "shader"
                              }
                            ]
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4747,
                      "end": 4782,
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 8
                        },
                        "end": {
                          "line": 124,
                          "column": 43
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 4747,
                        "end": 4781,
                        "loc": {
                          "start": {
                            "line": 124,
                            "column": 8
                          },
                          "end": {
                            "line": 124,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4747,
                          "end": 4773,
                          "loc": {
                            "start": {
                              "line": 124,
                              "column": 8
                            },
                            "end": {
                              "line": 124,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 4747,
                            "end": 4760,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 8
                              },
                              "end": {
                                "line": 124,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 4747,
                              "end": 4757,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 8
                                },
                                "end": {
                                  "line": 124,
                                  "column": 18
                                },
                                "identifierName": "DOMManager"
                              },
                              "name": "DOMManager"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4758,
                              "end": 4760,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 19
                                },
                                "end": {
                                  "line": 124,
                                  "column": 21
                                },
                                "identifierName": "GL"
                              },
                              "name": "GL"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4761,
                            "end": 4773,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 22
                              },
                              "end": {
                                "line": 124,
                                "column": 34
                              },
                              "identifierName": "deleteShader"
                            },
                            "name": "deleteShader"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 4774,
                            "end": 4780,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 35
                              },
                              "end": {
                                "line": 124,
                                "column": 41
                              },
                              "identifierName": "shader"
                            },
                            "name": "shader"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 4791,
                      "end": 4803,
                      "loc": {
                        "start": {
                          "line": 125,
                          "column": 8
                        },
                        "end": {
                          "line": 125,
                          "column": 20
                        }
                      },
                      "argument": {
                        "type": "NullLiteral",
                        "start": 4798,
                        "end": 4802,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 15
                          },
                          "end": {
                            "line": 125,
                            "column": 19
                          }
                        }
                      }
                    }
                  ],
                  "directives": [],
                  "trailingComments": null
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Creates a shader of either Vertex or Fragment type and returns the compiled version.\n     * \n     * @param {GLShaderType} type A GL shader type of either VERTEX_SHADER or FRAGMENT_SHADER.\n     * @param {string} source Source code for the shader type.\n     * \n     * @returns {CompiledShader} A compiled shader. Null if unsuccessful.\n     ",
                    "start": 3983,
                    "end": 4334,
                    "loc": {
                      "start": {
                        "line": 106,
                        "column": 4
                      },
                      "end": {
                        "line": 113,
                        "column": 7
                      }
                    }
                  }
                ],
                "trailingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Compiles the vertex shader and fragment shader and returns a WebGL program.\n     * \n     * @param {string} vertexShaderSource Source code for a vertex shader.\n     * @param {string} fragmentShaderSource Source code for a fragment shader.\n     * \n     * @returns {Program} A program compiled from the two shader sources.\n     ",
                    "start": 4815,
                    "end": 5153,
                    "loc": {
                      "start": {
                        "line": 128,
                        "column": 4
                      },
                      "end": {
                        "line": 135,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 5158,
                "end": 5494,
                "loc": {
                  "start": {
                    "line": 136,
                    "column": 4
                  },
                  "end": {
                    "line": 141,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 5158,
                  "end": 5172,
                  "loc": {
                    "start": {
                      "line": 136,
                      "column": 4
                    },
                    "end": {
                      "line": 136,
                      "column": 18
                    },
                    "identifierName": "_createProgram"
                  },
                  "name": "_createProgram",
                  "leadingComments": null
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 5173,
                    "end": 5191,
                    "loc": {
                      "start": {
                        "line": 136,
                        "column": 19
                      },
                      "end": {
                        "line": 136,
                        "column": 37
                      },
                      "identifierName": "vertexShaderSource"
                    },
                    "name": "vertexShaderSource"
                  },
                  {
                    "type": "Identifier",
                    "start": 5193,
                    "end": 5213,
                    "loc": {
                      "start": {
                        "line": 136,
                        "column": 39
                      },
                      "end": {
                        "line": 136,
                        "column": 59
                      },
                      "identifierName": "fragmentShaderSource"
                    },
                    "name": "fragmentShaderSource"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 5215,
                  "end": 5494,
                  "loc": {
                    "start": {
                      "line": 136,
                      "column": 61
                    },
                    "end": {
                      "line": 141,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 5225,
                      "end": 5312,
                      "loc": {
                        "start": {
                          "line": 137,
                          "column": 8
                        },
                        "end": {
                          "line": 137,
                          "column": 95
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5229,
                          "end": 5311,
                          "loc": {
                            "start": {
                              "line": 137,
                              "column": 12
                            },
                            "end": {
                              "line": 137,
                              "column": 94
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5229,
                            "end": 5241,
                            "loc": {
                              "start": {
                                "line": 137,
                                "column": 12
                              },
                              "end": {
                                "line": 137,
                                "column": 24
                              },
                              "identifierName": "vertexShader"
                            },
                            "name": "vertexShader"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 5244,
                            "end": 5311,
                            "loc": {
                              "start": {
                                "line": 137,
                                "column": 27
                              },
                              "end": {
                                "line": 137,
                                "column": 94
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5244,
                              "end": 5262,
                              "loc": {
                                "start": {
                                  "line": 137,
                                  "column": 27
                                },
                                "end": {
                                  "line": 137,
                                  "column": 45
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 5244,
                                "end": 5248,
                                "loc": {
                                  "start": {
                                    "line": 137,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 137,
                                    "column": 31
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5249,
                                "end": 5262,
                                "loc": {
                                  "start": {
                                    "line": 137,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 137,
                                    "column": 45
                                  },
                                  "identifierName": "_createShader"
                                },
                                "name": "_createShader"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 5263,
                                "end": 5290,
                                "loc": {
                                  "start": {
                                    "line": 137,
                                    "column": 46
                                  },
                                  "end": {
                                    "line": 137,
                                    "column": 73
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 5263,
                                  "end": 5276,
                                  "loc": {
                                    "start": {
                                      "line": 137,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 137,
                                      "column": 59
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5263,
                                    "end": 5273,
                                    "loc": {
                                      "start": {
                                        "line": 137,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 137,
                                        "column": 56
                                      },
                                      "identifierName": "DOMManager"
                                    },
                                    "name": "DOMManager"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5274,
                                    "end": 5276,
                                    "loc": {
                                      "start": {
                                        "line": 137,
                                        "column": 57
                                      },
                                      "end": {
                                        "line": 137,
                                        "column": 59
                                      },
                                      "identifierName": "GL"
                                    },
                                    "name": "GL"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5277,
                                  "end": 5290,
                                  "loc": {
                                    "start": {
                                      "line": 137,
                                      "column": 60
                                    },
                                    "end": {
                                      "line": 137,
                                      "column": 73
                                    },
                                    "identifierName": "VERTEX_SHADER"
                                  },
                                  "name": "VERTEX_SHADER"
                                },
                                "computed": false
                              },
                              {
                                "type": "Identifier",
                                "start": 5292,
                                "end": 5310,
                                "loc": {
                                  "start": {
                                    "line": 137,
                                    "column": 75
                                  },
                                  "end": {
                                    "line": 137,
                                    "column": 93
                                  },
                                  "identifierName": "vertexShaderSource"
                                },
                                "name": "vertexShaderSource"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 5321,
                      "end": 5414,
                      "loc": {
                        "start": {
                          "line": 138,
                          "column": 8
                        },
                        "end": {
                          "line": 138,
                          "column": 101
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5325,
                          "end": 5413,
                          "loc": {
                            "start": {
                              "line": 138,
                              "column": 12
                            },
                            "end": {
                              "line": 138,
                              "column": 100
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5325,
                            "end": 5339,
                            "loc": {
                              "start": {
                                "line": 138,
                                "column": 12
                              },
                              "end": {
                                "line": 138,
                                "column": 26
                              },
                              "identifierName": "fragmentShader"
                            },
                            "name": "fragmentShader"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 5342,
                            "end": 5413,
                            "loc": {
                              "start": {
                                "line": 138,
                                "column": 29
                              },
                              "end": {
                                "line": 138,
                                "column": 100
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5342,
                              "end": 5360,
                              "loc": {
                                "start": {
                                  "line": 138,
                                  "column": 29
                                },
                                "end": {
                                  "line": 138,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 5342,
                                "end": 5346,
                                "loc": {
                                  "start": {
                                    "line": 138,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 33
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5347,
                                "end": 5360,
                                "loc": {
                                  "start": {
                                    "line": 138,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 47
                                  },
                                  "identifierName": "_createShader"
                                },
                                "name": "_createShader"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "MemberExpression",
                                "start": 5361,
                                "end": 5390,
                                "loc": {
                                  "start": {
                                    "line": 138,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 77
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 5361,
                                  "end": 5374,
                                  "loc": {
                                    "start": {
                                      "line": 138,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 138,
                                      "column": 61
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5361,
                                    "end": 5371,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 48
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 58
                                      },
                                      "identifierName": "DOMManager"
                                    },
                                    "name": "DOMManager"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5372,
                                    "end": 5374,
                                    "loc": {
                                      "start": {
                                        "line": 138,
                                        "column": 59
                                      },
                                      "end": {
                                        "line": 138,
                                        "column": 61
                                      },
                                      "identifierName": "GL"
                                    },
                                    "name": "GL"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5375,
                                  "end": 5390,
                                  "loc": {
                                    "start": {
                                      "line": 138,
                                      "column": 62
                                    },
                                    "end": {
                                      "line": 138,
                                      "column": 77
                                    },
                                    "identifierName": "FRAGMENT_SHADER"
                                  },
                                  "name": "FRAGMENT_SHADER"
                                },
                                "computed": false
                              },
                              {
                                "type": "Identifier",
                                "start": 5392,
                                "end": 5412,
                                "loc": {
                                  "start": {
                                    "line": 138,
                                    "column": 79
                                  },
                                  "end": {
                                    "line": 138,
                                    "column": 99
                                  },
                                  "identifierName": "fragmentShaderSource"
                                },
                                "name": "fragmentShaderSource"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 5424,
                      "end": 5488,
                      "loc": {
                        "start": {
                          "line": 140,
                          "column": 8
                        },
                        "end": {
                          "line": 140,
                          "column": 72
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 5431,
                        "end": 5487,
                        "loc": {
                          "start": {
                            "line": 140,
                            "column": 15
                          },
                          "end": {
                            "line": 140,
                            "column": 71
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5431,
                          "end": 5457,
                          "loc": {
                            "start": {
                              "line": 140,
                              "column": 15
                            },
                            "end": {
                              "line": 140,
                              "column": 41
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5431,
                            "end": 5435,
                            "loc": {
                              "start": {
                                "line": 140,
                                "column": 15
                              },
                              "end": {
                                "line": 140,
                                "column": 19
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5436,
                            "end": 5457,
                            "loc": {
                              "start": {
                                "line": 140,
                                "column": 20
                              },
                              "end": {
                                "line": 140,
                                "column": 41
                              },
                              "identifierName": "_createShadersProgram"
                            },
                            "name": "_createShadersProgram"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 5458,
                            "end": 5470,
                            "loc": {
                              "start": {
                                "line": 140,
                                "column": 42
                              },
                              "end": {
                                "line": 140,
                                "column": 54
                              },
                              "identifierName": "vertexShader"
                            },
                            "name": "vertexShader"
                          },
                          {
                            "type": "Identifier",
                            "start": 5472,
                            "end": 5486,
                            "loc": {
                              "start": {
                                "line": 140,
                                "column": 56
                              },
                              "end": {
                                "line": 140,
                                "column": 70
                              },
                              "identifierName": "fragmentShader"
                            },
                            "name": "fragmentShader"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n     * Compiles the vertex shader and fragment shader and returns a WebGL program.\n     * \n     * @param {string} vertexShaderSource Source code for a vertex shader.\n     * @param {string} fragmentShaderSource Source code for a fragment shader.\n     * \n     * @returns {Program} A program compiled from the two shader sources.\n     ",
                    "start": 4815,
                    "end": 5153,
                    "loc": {
                      "start": {
                        "line": 128,
                        "column": 4
                      },
                      "end": {
                        "line": 135,
                        "column": 7
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 5500,
                "end": 5959,
                "loc": {
                  "start": {
                    "line": 143,
                    "column": 4
                  },
                  "end": {
                    "line": 151,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 5500,
                  "end": 5529,
                  "loc": {
                    "start": {
                      "line": 143,
                      "column": 4
                    },
                    "end": {
                      "line": 143,
                      "column": 33
                    },
                    "identifierName": "_createProgramLocationSetters"
                  },
                  "name": "_createProgramLocationSetters"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 5530,
                    "end": 5537,
                    "loc": {
                      "start": {
                        "line": 143,
                        "column": 34
                      },
                      "end": {
                        "line": 143,
                        "column": 41
                      },
                      "identifierName": "program"
                    },
                    "name": "program"
                  },
                  {
                    "type": "Identifier",
                    "start": 5539,
                    "end": 5547,
                    "loc": {
                      "start": {
                        "line": 143,
                        "column": 43
                      },
                      "end": {
                        "line": 143,
                        "column": 51
                      },
                      "identifierName": "uniforms"
                    },
                    "name": "uniforms"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 5549,
                  "end": 5959,
                  "loc": {
                    "start": {
                      "line": 143,
                      "column": 53
                    },
                    "end": {
                      "line": 151,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 5559,
                      "end": 5591,
                      "loc": {
                        "start": {
                          "line": 144,
                          "column": 8
                        },
                        "end": {
                          "line": 144,
                          "column": 40
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5563,
                          "end": 5590,
                          "loc": {
                            "start": {
                              "line": 144,
                              "column": 12
                            },
                            "end": {
                              "line": 144,
                              "column": 39
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5563,
                            "end": 5585,
                            "loc": {
                              "start": {
                                "line": 144,
                                "column": 12
                              },
                              "end": {
                                "line": 144,
                                "column": 34
                              },
                              "identifierName": "uniformLocationSetters"
                            },
                            "name": "uniformLocationSetters"
                          },
                          "init": {
                            "type": "ObjectExpression",
                            "start": 5588,
                            "end": 5590,
                            "loc": {
                              "start": {
                                "line": 144,
                                "column": 37
                              },
                              "end": {
                                "line": 144,
                                "column": 39
                              }
                            },
                            "properties": []
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 5600,
                      "end": 5640,
                      "loc": {
                        "start": {
                          "line": 145,
                          "column": 8
                        },
                        "end": {
                          "line": 145,
                          "column": 48
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 5604,
                          "end": 5639,
                          "loc": {
                            "start": {
                              "line": 145,
                              "column": 12
                            },
                            "end": {
                              "line": 145,
                              "column": 47
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 5604,
                            "end": 5615,
                            "loc": {
                              "start": {
                                "line": 145,
                                "column": 12
                              },
                              "end": {
                                "line": 145,
                                "column": 23
                              },
                              "identifierName": "uniformKeys"
                            },
                            "name": "uniformKeys"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 5618,
                            "end": 5639,
                            "loc": {
                              "start": {
                                "line": 145,
                                "column": 26
                              },
                              "end": {
                                "line": 145,
                                "column": 47
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5618,
                              "end": 5629,
                              "loc": {
                                "start": {
                                  "line": 145,
                                  "column": 26
                                },
                                "end": {
                                  "line": 145,
                                  "column": 37
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 5618,
                                "end": 5624,
                                "loc": {
                                  "start": {
                                    "line": 145,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 145,
                                    "column": 32
                                  },
                                  "identifierName": "Object"
                                },
                                "name": "Object"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5625,
                                "end": 5629,
                                "loc": {
                                  "start": {
                                    "line": 145,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 145,
                                    "column": 37
                                  },
                                  "identifierName": "keys"
                                },
                                "name": "keys"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 5630,
                                "end": 5638,
                                "loc": {
                                  "start": {
                                    "line": 145,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 145,
                                    "column": 46
                                  },
                                  "identifierName": "uniforms"
                                },
                                "name": "uniforms"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ForStatement",
                      "start": 5649,
                      "end": 5914,
                      "loc": {
                        "start": {
                          "line": 146,
                          "column": 8
                        },
                        "end": {
                          "line": 149,
                          "column": 9
                        }
                      },
                      "init": {
                        "type": "VariableDeclaration",
                        "start": 5654,
                        "end": 5663,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 13
                          },
                          "end": {
                            "line": 146,
                            "column": 22
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 5658,
                            "end": 5663,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 17
                              },
                              "end": {
                                "line": 146,
                                "column": 22
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 5658,
                              "end": 5659,
                              "loc": {
                                "start": {
                                  "line": 146,
                                  "column": 17
                                },
                                "end": {
                                  "line": 146,
                                  "column": 18
                                },
                                "identifierName": "i"
                              },
                              "name": "i"
                            },
                            "init": {
                              "type": "NumericLiteral",
                              "start": 5662,
                              "end": 5663,
                              "loc": {
                                "start": {
                                  "line": 146,
                                  "column": 21
                                },
                                "end": {
                                  "line": 146,
                                  "column": 22
                                }
                              },
                              "extra": {
                                "rawValue": 0,
                                "raw": "0"
                              },
                              "value": 0
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 5665,
                        "end": 5687,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 24
                          },
                          "end": {
                            "line": 146,
                            "column": 46
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 5665,
                          "end": 5666,
                          "loc": {
                            "start": {
                              "line": 146,
                              "column": 24
                            },
                            "end": {
                              "line": 146,
                              "column": 25
                            },
                            "identifierName": "i"
                          },
                          "name": "i"
                        },
                        "operator": "<",
                        "right": {
                          "type": "MemberExpression",
                          "start": 5669,
                          "end": 5687,
                          "loc": {
                            "start": {
                              "line": 146,
                              "column": 28
                            },
                            "end": {
                              "line": 146,
                              "column": 46
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5669,
                            "end": 5680,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 28
                              },
                              "end": {
                                "line": 146,
                                "column": 39
                              },
                              "identifierName": "uniformKeys"
                            },
                            "name": "uniformKeys"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5681,
                            "end": 5687,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 40
                              },
                              "end": {
                                "line": 146,
                                "column": 46
                              },
                              "identifierName": "length"
                            },
                            "name": "length"
                          },
                          "computed": false
                        }
                      },
                      "update": {
                        "type": "UpdateExpression",
                        "start": 5689,
                        "end": 5692,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 48
                          },
                          "end": {
                            "line": 146,
                            "column": 51
                          }
                        },
                        "operator": "++",
                        "prefix": false,
                        "argument": {
                          "type": "Identifier",
                          "start": 5689,
                          "end": 5690,
                          "loc": {
                            "start": {
                              "line": 146,
                              "column": 48
                            },
                            "end": {
                              "line": 146,
                              "column": 49
                            },
                            "identifierName": "i"
                          },
                          "name": "i"
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 5694,
                        "end": 5914,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 53
                          },
                          "end": {
                            "line": 149,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 5708,
                            "end": 5781,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 12
                              },
                              "end": {
                                "line": 147,
                                "column": 85
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 5712,
                                "end": 5780,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 84
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5712,
                                  "end": 5720,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 24
                                    },
                                    "identifierName": "location"
                                  },
                                  "name": "location"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 5723,
                                  "end": 5780,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 84
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 5723,
                                    "end": 5755,
                                    "loc": {
                                      "start": {
                                        "line": 147,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 147,
                                        "column": 59
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 5723,
                                      "end": 5736,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 40
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5723,
                                        "end": 5733,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 37
                                          },
                                          "identifierName": "DOMManager"
                                        },
                                        "name": "DOMManager"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5734,
                                        "end": 5736,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 40
                                          },
                                          "identifierName": "GL"
                                        },
                                        "name": "GL"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 5737,
                                      "end": 5755,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 59
                                        },
                                        "identifierName": "getUniformLocation"
                                      },
                                      "name": "getUniformLocation"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 5756,
                                      "end": 5763,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 67
                                        },
                                        "identifierName": "program"
                                      },
                                      "name": "program"
                                    },
                                    {
                                      "type": "MemberExpression",
                                      "start": 5765,
                                      "end": 5779,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 69
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 83
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5765,
                                        "end": 5776,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 69
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 80
                                          },
                                          "identifierName": "uniformKeys"
                                        },
                                        "name": "uniformKeys"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5777,
                                        "end": 5778,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 81
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 82
                                          },
                                          "identifierName": "i"
                                        },
                                        "name": "i"
                                      },
                                      "computed": true
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 5794,
                            "end": 5904,
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 12
                              },
                              "end": {
                                "line": 148,
                                "column": 122
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 5794,
                              "end": 5903,
                              "loc": {
                                "start": {
                                  "line": 148,
                                  "column": 12
                                },
                                "end": {
                                  "line": 148,
                                  "column": 121
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 5794,
                                "end": 5832,
                                "loc": {
                                  "start": {
                                    "line": 148,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 148,
                                    "column": 50
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 5794,
                                  "end": 5816,
                                  "loc": {
                                    "start": {
                                      "line": 148,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 148,
                                      "column": 34
                                    },
                                    "identifierName": "uniformLocationSetters"
                                  },
                                  "name": "uniformLocationSetters"
                                },
                                "property": {
                                  "type": "MemberExpression",
                                  "start": 5817,
                                  "end": 5831,
                                  "loc": {
                                    "start": {
                                      "line": 148,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 148,
                                      "column": 49
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5817,
                                    "end": 5828,
                                    "loc": {
                                      "start": {
                                        "line": 148,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 148,
                                        "column": 46
                                      },
                                      "identifierName": "uniformKeys"
                                    },
                                    "name": "uniformKeys"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5829,
                                    "end": 5830,
                                    "loc": {
                                      "start": {
                                        "line": 148,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 148,
                                        "column": 48
                                      },
                                      "identifierName": "i"
                                    },
                                    "name": "i"
                                  },
                                  "computed": true
                                },
                                "computed": true
                              },
                              "right": {
                                "type": "CallExpression",
                                "start": 5835,
                                "end": 5903,
                                "loc": {
                                  "start": {
                                    "line": 148,
                                    "column": 53
                                  },
                                  "end": {
                                    "line": 148,
                                    "column": 121
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5835,
                                  "end": 5867,
                                  "loc": {
                                    "start": {
                                      "line": 148,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 148,
                                      "column": 85
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 5835,
                                    "end": 5839,
                                    "loc": {
                                      "start": {
                                        "line": 148,
                                        "column": 53
                                      },
                                      "end": {
                                        "line": 148,
                                        "column": 57
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5840,
                                    "end": 5867,
                                    "loc": {
                                      "start": {
                                        "line": 148,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 148,
                                        "column": 85
                                      },
                                      "identifierName": "_getUniformSetterFromString"
                                    },
                                    "name": "_getUniformSetterFromString"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5868,
                                    "end": 5876,
                                    "loc": {
                                      "start": {
                                        "line": 148,
                                        "column": 86
                                      },
                                      "end": {
                                        "line": 148,
                                        "column": 94
                                      },
                                      "identifierName": "location"
                                    },
                                    "name": "location"
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "start": 5878,
                                    "end": 5902,
                                    "loc": {
                                      "start": {
                                        "line": 148,
                                        "column": 96
                                      },
                                      "end": {
                                        "line": 148,
                                        "column": 120
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 5878,
                                      "end": 5886,
                                      "loc": {
                                        "start": {
                                          "line": 148,
                                          "column": 96
                                        },
                                        "end": {
                                          "line": 148,
                                          "column": 104
                                        },
                                        "identifierName": "uniforms"
                                      },
                                      "name": "uniforms"
                                    },
                                    "property": {
                                      "type": "MemberExpression",
                                      "start": 5887,
                                      "end": 5901,
                                      "loc": {
                                        "start": {
                                          "line": 148,
                                          "column": 105
                                        },
                                        "end": {
                                          "line": 148,
                                          "column": 119
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5887,
                                        "end": 5898,
                                        "loc": {
                                          "start": {
                                            "line": 148,
                                            "column": 105
                                          },
                                          "end": {
                                            "line": 148,
                                            "column": 116
                                          },
                                          "identifierName": "uniformKeys"
                                        },
                                        "name": "uniformKeys"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5899,
                                        "end": 5900,
                                        "loc": {
                                          "start": {
                                            "line": 148,
                                            "column": 117
                                          },
                                          "end": {
                                            "line": 148,
                                            "column": 118
                                          },
                                          "identifierName": "i"
                                        },
                                        "name": "i"
                                      },
                                      "computed": true
                                    },
                                    "computed": true
                                  }
                                ]
                              }
                            }
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 5923,
                      "end": 5953,
                      "loc": {
                        "start": {
                          "line": 150,
                          "column": 8
                        },
                        "end": {
                          "line": 150,
                          "column": 38
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 5930,
                        "end": 5952,
                        "loc": {
                          "start": {
                            "line": 150,
                            "column": 15
                          },
                          "end": {
                            "line": 150,
                            "column": 37
                          },
                          "identifierName": "uniformLocationSetters"
                        },
                        "name": "uniformLocationSetters"
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 5965,
                "end": 6534,
                "loc": {
                  "start": {
                    "line": 153,
                    "column": 4
                  },
                  "end": {
                    "line": 161,
                    "column": 5
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 5965,
                  "end": 5992,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 4
                    },
                    "end": {
                      "line": 153,
                      "column": 31
                    },
                    "identifierName": "_getUniformSetterFromString"
                  },
                  "name": "_getUniformSetterFromString"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 5993,
                    "end": 6001,
                    "loc": {
                      "start": {
                        "line": 153,
                        "column": 32
                      },
                      "end": {
                        "line": 153,
                        "column": 40
                      },
                      "identifierName": "location"
                    },
                    "name": "location"
                  },
                  {
                    "type": "Identifier",
                    "start": 6003,
                    "end": 6007,
                    "loc": {
                      "start": {
                        "line": 153,
                        "column": 42
                      },
                      "end": {
                        "line": 153,
                        "column": 46
                      },
                      "identifierName": "type"
                    },
                    "name": "type"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 6009,
                  "end": 6534,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 48
                    },
                    "end": {
                      "line": 161,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 6019,
                      "end": 6528,
                      "loc": {
                        "start": {
                          "line": 154,
                          "column": 8
                        },
                        "end": {
                          "line": 160,
                          "column": 16
                        }
                      },
                      "argument": {
                        "type": "MemberExpression",
                        "start": 6026,
                        "end": 6527,
                        "loc": {
                          "start": {
                            "line": 154,
                            "column": 15
                          },
                          "end": {
                            "line": 160,
                            "column": 15
                          }
                        },
                        "object": {
                          "type": "ObjectExpression",
                          "start": 6026,
                          "end": 6521,
                          "loc": {
                            "start": {
                              "line": 154,
                              "column": 15
                            },
                            "end": {
                              "line": 160,
                              "column": 9
                            }
                          },
                          "properties": [
                            {
                              "type": "ObjectProperty",
                              "start": 6040,
                              "end": 6116,
                              "loc": {
                                "start": {
                                  "line": 155,
                                  "column": 12
                                },
                                "end": {
                                  "line": 155,
                                  "column": 88
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "StringLiteral",
                                "start": 6040,
                                "end": 6052,
                                "loc": {
                                  "start": {
                                    "line": 155,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 155,
                                    "column": 24
                                  }
                                },
                                "extra": {
                                  "rawValue": "uniform4fv",
                                  "raw": "'uniform4fv'"
                                },
                                "value": "uniform4fv"
                              },
                              "value": {
                                "type": "ArrowFunctionExpression",
                                "start": 6054,
                                "end": 6116,
                                "loc": {
                                  "start": {
                                    "line": 155,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 155,
                                    "column": 88
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 6055,
                                    "end": 6057,
                                    "loc": {
                                      "start": {
                                        "line": 155,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 155,
                                        "column": 29
                                      },
                                      "identifierName": "gl"
                                    },
                                    "name": "gl"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 6059,
                                    "end": 6070,
                                    "loc": {
                                      "start": {
                                        "line": 155,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 155,
                                        "column": 42
                                      },
                                      "identifierName": "uniformData"
                                    },
                                    "name": "uniformData"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 6075,
                                  "end": 6116,
                                  "loc": {
                                    "start": {
                                      "line": 155,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 155,
                                      "column": 88
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 6077,
                                      "end": 6114,
                                      "loc": {
                                        "start": {
                                          "line": 155,
                                          "column": 49
                                        },
                                        "end": {
                                          "line": 155,
                                          "column": 86
                                        }
                                      },
                                      "expression": {
                                        "type": "CallExpression",
                                        "start": 6077,
                                        "end": 6113,
                                        "loc": {
                                          "start": {
                                            "line": 155,
                                            "column": 49
                                          },
                                          "end": {
                                            "line": 155,
                                            "column": 85
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 6077,
                                          "end": 6090,
                                          "loc": {
                                            "start": {
                                              "line": 155,
                                              "column": 49
                                            },
                                            "end": {
                                              "line": 155,
                                              "column": 62
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 6077,
                                            "end": 6079,
                                            "loc": {
                                              "start": {
                                                "line": 155,
                                                "column": 49
                                              },
                                              "end": {
                                                "line": 155,
                                                "column": 51
                                              },
                                              "identifierName": "gl"
                                            },
                                            "name": "gl"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 6080,
                                            "end": 6090,
                                            "loc": {
                                              "start": {
                                                "line": 155,
                                                "column": 52
                                              },
                                              "end": {
                                                "line": 155,
                                                "column": 62
                                              },
                                              "identifierName": "uniform4fv"
                                            },
                                            "name": "uniform4fv"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 6091,
                                            "end": 6099,
                                            "loc": {
                                              "start": {
                                                "line": 155,
                                                "column": 63
                                              },
                                              "end": {
                                                "line": 155,
                                                "column": 71
                                              },
                                              "identifierName": "location"
                                            },
                                            "name": "location"
                                          },
                                          {
                                            "type": "Identifier",
                                            "start": 6101,
                                            "end": 6112,
                                            "loc": {
                                              "start": {
                                                "line": 155,
                                                "column": 73
                                              },
                                              "end": {
                                                "line": 155,
                                                "column": 84
                                              },
                                              "identifierName": "uniformData"
                                            },
                                            "name": "uniformData"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 6130,
                              "end": 6225,
                              "loc": {
                                "start": {
                                  "line": 156,
                                  "column": 12
                                },
                                "end": {
                                  "line": 156,
                                  "column": 107
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "StringLiteral",
                                "start": 6130,
                                "end": 6148,
                                "loc": {
                                  "start": {
                                    "line": 156,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 156,
                                    "column": 30
                                  }
                                },
                                "extra": {
                                  "rawValue": "uniformMatrix3fv",
                                  "raw": "'uniformMatrix3fv'"
                                },
                                "value": "uniformMatrix3fv"
                              },
                              "value": {
                                "type": "ArrowFunctionExpression",
                                "start": 6150,
                                "end": 6225,
                                "loc": {
                                  "start": {
                                    "line": 156,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 156,
                                    "column": 107
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 6151,
                                    "end": 6153,
                                    "loc": {
                                      "start": {
                                        "line": 156,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 156,
                                        "column": 35
                                      },
                                      "identifierName": "gl"
                                    },
                                    "name": "gl"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 6155,
                                    "end": 6166,
                                    "loc": {
                                      "start": {
                                        "line": 156,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 156,
                                        "column": 48
                                      },
                                      "identifierName": "uniformData"
                                    },
                                    "name": "uniformData"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 6171,
                                  "end": 6225,
                                  "loc": {
                                    "start": {
                                      "line": 156,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 156,
                                      "column": 107
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 6173,
                                      "end": 6223,
                                      "loc": {
                                        "start": {
                                          "line": 156,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 156,
                                          "column": 105
                                        }
                                      },
                                      "expression": {
                                        "type": "CallExpression",
                                        "start": 6173,
                                        "end": 6222,
                                        "loc": {
                                          "start": {
                                            "line": 156,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 156,
                                            "column": 104
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 6173,
                                          "end": 6192,
                                          "loc": {
                                            "start": {
                                              "line": 156,
                                              "column": 55
                                            },
                                            "end": {
                                              "line": 156,
                                              "column": 74
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 6173,
                                            "end": 6175,
                                            "loc": {
                                              "start": {
                                                "line": 156,
                                                "column": 55
                                              },
                                              "end": {
                                                "line": 156,
                                                "column": 57
                                              },
                                              "identifierName": "gl"
                                            },
                                            "name": "gl"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 6176,
                                            "end": 6192,
                                            "loc": {
                                              "start": {
                                                "line": 156,
                                                "column": 58
                                              },
                                              "end": {
                                                "line": 156,
                                                "column": 74
                                              },
                                              "identifierName": "uniformMatrix3fv"
                                            },
                                            "name": "uniformMatrix3fv"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 6193,
                                            "end": 6201,
                                            "loc": {
                                              "start": {
                                                "line": 156,
                                                "column": 75
                                              },
                                              "end": {
                                                "line": 156,
                                                "column": 83
                                              },
                                              "identifierName": "location"
                                            },
                                            "name": "location"
                                          },
                                          {
                                            "type": "BooleanLiteral",
                                            "start": 6203,
                                            "end": 6208,
                                            "loc": {
                                              "start": {
                                                "line": 156,
                                                "column": 85
                                              },
                                              "end": {
                                                "line": 156,
                                                "column": 90
                                              }
                                            },
                                            "value": false
                                          },
                                          {
                                            "type": "Identifier",
                                            "start": 6210,
                                            "end": 6221,
                                            "loc": {
                                              "start": {
                                                "line": 156,
                                                "column": 92
                                              },
                                              "end": {
                                                "line": 156,
                                                "column": 103
                                              },
                                              "identifierName": "uniformData"
                                            },
                                            "name": "uniformData"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 6239,
                              "end": 6334,
                              "loc": {
                                "start": {
                                  "line": 157,
                                  "column": 12
                                },
                                "end": {
                                  "line": 157,
                                  "column": 107
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "StringLiteral",
                                "start": 6239,
                                "end": 6257,
                                "loc": {
                                  "start": {
                                    "line": 157,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 157,
                                    "column": 30
                                  }
                                },
                                "extra": {
                                  "rawValue": "uniformMatrix4fv",
                                  "raw": "'uniformMatrix4fv'"
                                },
                                "value": "uniformMatrix4fv"
                              },
                              "value": {
                                "type": "ArrowFunctionExpression",
                                "start": 6259,
                                "end": 6334,
                                "loc": {
                                  "start": {
                                    "line": 157,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 157,
                                    "column": 107
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 6260,
                                    "end": 6262,
                                    "loc": {
                                      "start": {
                                        "line": 157,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 157,
                                        "column": 35
                                      },
                                      "identifierName": "gl"
                                    },
                                    "name": "gl"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 6264,
                                    "end": 6275,
                                    "loc": {
                                      "start": {
                                        "line": 157,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 157,
                                        "column": 48
                                      },
                                      "identifierName": "uniformData"
                                    },
                                    "name": "uniformData"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 6280,
                                  "end": 6334,
                                  "loc": {
                                    "start": {
                                      "line": 157,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 157,
                                      "column": 107
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 6282,
                                      "end": 6332,
                                      "loc": {
                                        "start": {
                                          "line": 157,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 157,
                                          "column": 105
                                        }
                                      },
                                      "expression": {
                                        "type": "CallExpression",
                                        "start": 6282,
                                        "end": 6331,
                                        "loc": {
                                          "start": {
                                            "line": 157,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 157,
                                            "column": 104
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 6282,
                                          "end": 6301,
                                          "loc": {
                                            "start": {
                                              "line": 157,
                                              "column": 55
                                            },
                                            "end": {
                                              "line": 157,
                                              "column": 74
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 6282,
                                            "end": 6284,
                                            "loc": {
                                              "start": {
                                                "line": 157,
                                                "column": 55
                                              },
                                              "end": {
                                                "line": 157,
                                                "column": 57
                                              },
                                              "identifierName": "gl"
                                            },
                                            "name": "gl"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 6285,
                                            "end": 6301,
                                            "loc": {
                                              "start": {
                                                "line": 157,
                                                "column": 58
                                              },
                                              "end": {
                                                "line": 157,
                                                "column": 74
                                              },
                                              "identifierName": "uniformMatrix4fv"
                                            },
                                            "name": "uniformMatrix4fv"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 6302,
                                            "end": 6310,
                                            "loc": {
                                              "start": {
                                                "line": 157,
                                                "column": 75
                                              },
                                              "end": {
                                                "line": 157,
                                                "column": 83
                                              },
                                              "identifierName": "location"
                                            },
                                            "name": "location"
                                          },
                                          {
                                            "type": "BooleanLiteral",
                                            "start": 6312,
                                            "end": 6317,
                                            "loc": {
                                              "start": {
                                                "line": 157,
                                                "column": 85
                                              },
                                              "end": {
                                                "line": 157,
                                                "column": 90
                                              }
                                            },
                                            "value": false
                                          },
                                          {
                                            "type": "Identifier",
                                            "start": 6319,
                                            "end": 6330,
                                            "loc": {
                                              "start": {
                                                "line": 157,
                                                "column": 92
                                              },
                                              "end": {
                                                "line": 157,
                                                "column": 103
                                              },
                                              "identifierName": "uniformData"
                                            },
                                            "name": "uniformData"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 6348,
                              "end": 6422,
                              "loc": {
                                "start": {
                                  "line": 158,
                                  "column": 12
                                },
                                "end": {
                                  "line": 158,
                                  "column": 86
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "StringLiteral",
                                "start": 6348,
                                "end": 6359,
                                "loc": {
                                  "start": {
                                    "line": 158,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 158,
                                    "column": 23
                                  }
                                },
                                "extra": {
                                  "rawValue": "uniform1f",
                                  "raw": "'uniform1f'"
                                },
                                "value": "uniform1f"
                              },
                              "value": {
                                "type": "ArrowFunctionExpression",
                                "start": 6361,
                                "end": 6422,
                                "loc": {
                                  "start": {
                                    "line": 158,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 158,
                                    "column": 86
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 6362,
                                    "end": 6364,
                                    "loc": {
                                      "start": {
                                        "line": 158,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 158,
                                        "column": 28
                                      },
                                      "identifierName": "gl"
                                    },
                                    "name": "gl"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 6366,
                                    "end": 6377,
                                    "loc": {
                                      "start": {
                                        "line": 158,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 158,
                                        "column": 41
                                      },
                                      "identifierName": "uniformData"
                                    },
                                    "name": "uniformData"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 6382,
                                  "end": 6422,
                                  "loc": {
                                    "start": {
                                      "line": 158,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 158,
                                      "column": 86
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 6384,
                                      "end": 6420,
                                      "loc": {
                                        "start": {
                                          "line": 158,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 158,
                                          "column": 84
                                        }
                                      },
                                      "expression": {
                                        "type": "CallExpression",
                                        "start": 6384,
                                        "end": 6419,
                                        "loc": {
                                          "start": {
                                            "line": 158,
                                            "column": 48
                                          },
                                          "end": {
                                            "line": 158,
                                            "column": 83
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 6384,
                                          "end": 6396,
                                          "loc": {
                                            "start": {
                                              "line": 158,
                                              "column": 48
                                            },
                                            "end": {
                                              "line": 158,
                                              "column": 60
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 6384,
                                            "end": 6386,
                                            "loc": {
                                              "start": {
                                                "line": 158,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 158,
                                                "column": 50
                                              },
                                              "identifierName": "gl"
                                            },
                                            "name": "gl"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 6387,
                                            "end": 6396,
                                            "loc": {
                                              "start": {
                                                "line": 158,
                                                "column": 51
                                              },
                                              "end": {
                                                "line": 158,
                                                "column": 60
                                              },
                                              "identifierName": "uniform1f"
                                            },
                                            "name": "uniform1f"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 6397,
                                            "end": 6405,
                                            "loc": {
                                              "start": {
                                                "line": 158,
                                                "column": 61
                                              },
                                              "end": {
                                                "line": 158,
                                                "column": 69
                                              },
                                              "identifierName": "location"
                                            },
                                            "name": "location"
                                          },
                                          {
                                            "type": "Identifier",
                                            "start": 6407,
                                            "end": 6418,
                                            "loc": {
                                              "start": {
                                                "line": 158,
                                                "column": 71
                                              },
                                              "end": {
                                                "line": 158,
                                                "column": 82
                                              },
                                              "identifierName": "uniformData"
                                            },
                                            "name": "uniformData"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            },
                            {
                              "type": "ObjectProperty",
                              "start": 6436,
                              "end": 6510,
                              "loc": {
                                "start": {
                                  "line": 159,
                                  "column": 12
                                },
                                "end": {
                                  "line": 159,
                                  "column": 86
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "StringLiteral",
                                "start": 6436,
                                "end": 6447,
                                "loc": {
                                  "start": {
                                    "line": 159,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 159,
                                    "column": 23
                                  }
                                },
                                "extra": {
                                  "rawValue": "uniform1i",
                                  "raw": "'uniform1i'"
                                },
                                "value": "uniform1i"
                              },
                              "value": {
                                "type": "ArrowFunctionExpression",
                                "start": 6449,
                                "end": 6510,
                                "loc": {
                                  "start": {
                                    "line": 159,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 159,
                                    "column": 86
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": false,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 6450,
                                    "end": 6452,
                                    "loc": {
                                      "start": {
                                        "line": 159,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 159,
                                        "column": 28
                                      },
                                      "identifierName": "gl"
                                    },
                                    "name": "gl"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 6454,
                                    "end": 6465,
                                    "loc": {
                                      "start": {
                                        "line": 159,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 159,
                                        "column": 41
                                      },
                                      "identifierName": "uniformData"
                                    },
                                    "name": "uniformData"
                                  }
                                ],
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 6470,
                                  "end": 6510,
                                  "loc": {
                                    "start": {
                                      "line": 159,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 159,
                                      "column": 86
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 6472,
                                      "end": 6508,
                                      "loc": {
                                        "start": {
                                          "line": 159,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 159,
                                          "column": 84
                                        }
                                      },
                                      "expression": {
                                        "type": "CallExpression",
                                        "start": 6472,
                                        "end": 6507,
                                        "loc": {
                                          "start": {
                                            "line": 159,
                                            "column": 48
                                          },
                                          "end": {
                                            "line": 159,
                                            "column": 83
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 6472,
                                          "end": 6484,
                                          "loc": {
                                            "start": {
                                              "line": 159,
                                              "column": 48
                                            },
                                            "end": {
                                              "line": 159,
                                              "column": 60
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 6472,
                                            "end": 6474,
                                            "loc": {
                                              "start": {
                                                "line": 159,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 159,
                                                "column": 50
                                              },
                                              "identifierName": "gl"
                                            },
                                            "name": "gl"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 6475,
                                            "end": 6484,
                                            "loc": {
                                              "start": {
                                                "line": 159,
                                                "column": 51
                                              },
                                              "end": {
                                                "line": 159,
                                                "column": 60
                                              },
                                              "identifierName": "uniform1i"
                                            },
                                            "name": "uniform1i"
                                          },
                                          "computed": false
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 6485,
                                            "end": 6493,
                                            "loc": {
                                              "start": {
                                                "line": 159,
                                                "column": 61
                                              },
                                              "end": {
                                                "line": 159,
                                                "column": 69
                                              },
                                              "identifierName": "location"
                                            },
                                            "name": "location"
                                          },
                                          {
                                            "type": "Identifier",
                                            "start": 6495,
                                            "end": 6506,
                                            "loc": {
                                              "start": {
                                                "line": 159,
                                                "column": 71
                                              },
                                              "end": {
                                                "line": 159,
                                                "column": 82
                                              },
                                              "identifierName": "uniformData"
                                            },
                                            "name": "uniformData"
                                          }
                                        ]
                                      }
                                    }
                                  ],
                                  "directives": []
                                }
                              }
                            }
                          ]
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6522,
                          "end": 6526,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 10
                            },
                            "end": {
                              "line": 160,
                              "column": 14
                            },
                            "identifierName": "type"
                          },
                          "name": "type"
                        },
                        "computed": true
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ],
            "trailingComments": null
          },
          "leadingComments": [
            {
              "type": "CommentBlock",
              "value": "*\n * Manages WebGL Programs so that they only need to be created once across the engine\n * allowing multiple objects to still share the same reference.\n * \n * Elliminates the need for the programmer to compile shaders and create programs, and eases \n * on-the-fly Shader compiling.\n ",
              "start": 188,
              "end": 475,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 0
                },
                "end": {
                  "line": 13,
                  "column": 3
                }
              }
            }
          ],
          "trailingComments": [
            {
              "type": "CommentBlock",
              "value": "*\n * Singleton reference to the WebGL Program Manager.\n ",
              "start": 6538,
              "end": 6598,
              "loc": {
                "start": {
                  "line": 164,
                  "column": 0
                },
                "end": {
                  "line": 166,
                  "column": 3
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * Manages WebGL Programs so that they only need to be created once across the engine\n * allowing multiple objects to still share the same reference.\n * \n * Elliminates the need for the programmer to compile shaders and create programs, and eases \n * on-the-fly Shader compiling.\n ",
            "start": 188,
            "end": 475,
            "loc": {
              "start": {
                "line": 7,
                "column": 0
              },
              "end": {
                "line": 13,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * Singleton reference to the WebGL Program Manager.\n ",
            "start": 6538,
            "end": 6598,
            "loc": {
              "start": {
                "line": 164,
                "column": 0
              },
              "end": {
                "line": 166,
                "column": 3
              }
            }
          }
        ]
      },
      {
        "type": "Identifier",
        "start": 6599,
        "end": 6644,
        "loc": {
          "start": {
            "line": 167,
            "column": 0
          },
          "end": {
            "line": 167,
            "column": 45
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 6605,
            "end": 6643,
            "loc": {
              "start": {
                "line": 167,
                "column": 6
              },
              "end": {
                "line": 167,
                "column": 44
              }
            },
            "id": {
              "type": "Identifier",
              "start": 6605,
              "end": 6619,
              "loc": {
                "start": {
                  "line": 167,
                  "column": 6
                },
                "end": {
                  "line": 167,
                  "column": 20
                },
                "identifierName": "ProgramManager"
              },
              "name": "ProgramManager",
              "leadingComments": null
            },
            "init": {
              "type": "NewExpression",
              "start": 6622,
              "end": 6643,
              "loc": {
                "start": {
                  "line": 167,
                  "column": 23
                },
                "end": {
                  "line": 167,
                  "column": 44
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 6626,
                "end": 6641,
                "loc": {
                  "start": {
                    "line": 167,
                    "column": 27
                  },
                  "end": {
                    "line": 167,
                    "column": 42
                  },
                  "identifierName": "_ProgramManager"
                },
                "name": "_ProgramManager"
              },
              "arguments": []
            },
            "leadingComments": null
          }
        ],
        "kind": "const",
        "leadingComments": [],
        "name": "_",
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 6645,
        "end": 6675,
        "loc": {
          "start": {
            "line": 168,
            "column": 0
          },
          "end": {
            "line": 168,
            "column": 30
          }
        },
        "declaration": {
          "type": "Identifier",
          "start": 6660,
          "end": 6674,
          "loc": {
            "start": {
              "line": 168,
              "column": 15
            },
            "end": {
              "line": 168,
              "column": 29
            },
            "identifierName": "ProgramManager"
          },
          "name": "ProgramManager"
        },
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "ExportDefaultDeclaration",
        "start": 6645,
        "end": 6675,
        "loc": {
          "start": {
            "line": 168,
            "column": 0
          },
          "end": {
            "line": 168,
            "column": 30
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "kind": "let",
          "loc": {
            "start": {
              "line": 168,
              "column": 0
            },
            "end": {
              "line": 168,
              "column": 30
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "id": {
                "type": "Identifier",
                "name": "ProgramManager"
              },
              "init": {
                "type": "NewExpression",
                "callee": {
                  "type": "Identifier",
                  "name": "_ProgramManager"
                }
              }
            }
          ],
          "leadingComments": [],
          "trailingComments": []
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentBlock",
      "value": "*\n * Manages WebGL Programs so that they only need to be created once across the engine\n * allowing multiple objects to still share the same reference.\n * \n * Elliminates the need for the programmer to compile shaders and create programs, and eases \n * on-the-fly Shader compiling.\n ",
      "start": 188,
      "end": 475,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 13,
          "column": 3
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates default programs for easy reference later on.\n     ",
      "start": 634,
      "end": 706,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 23,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Returns a Program JSON Object containing the program, name and id.\n     * \n     * @param {string} programKey Name of the program.\n     * \n     * @returns {Program Object} Returns a JSON object with Program data.\n     ",
      "start": 1427,
      "end": 1657,
      "loc": {
        "start": {
          "line": 44,
          "column": 4
        },
        "end": {
          "line": 50,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates a Program JSON Object and initializes the program and metadata.\n     * The program is added to the programs array.\n     * \n     * @param {string} programName Name of the program.\n     * @param {string} vertexShaderSource Source code of the vertex shader.\n     * @param {string} fragmentShaderSource Source code of the fragment shader.\n     * @param {Object} uniforms An object of 'string': 'number' values indicating the uniform variable name & data type enum value.\n     ",
      "start": 1832,
      "end": 2325,
      "loc": {
        "start": {
          "line": 57,
          "column": 4
        },
        "end": {
          "line": 65,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates a WebGL program from a compiled vertex and fragment shader. The program is returned.\n     * \n     * @param {CompiledVertexShader} vertexShader A compiled vertex shader.\n     * @param {CompiledFragmentShader} fragmentShader A compiled fragment shader.\n     * \n     * @returns {Program} A WebGL program. Null if unsuccessful.\n     ",
      "start": 3059,
      "end": 3409,
      "loc": {
        "start": {
          "line": 83,
          "column": 4
        },
        "end": {
          "line": 90,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates a shader of either Vertex or Fragment type and returns the compiled version.\n     * \n     * @param {GLShaderType} type A GL shader type of either VERTEX_SHADER or FRAGMENT_SHADER.\n     * @param {string} source Source code for the shader type.\n     * \n     * @returns {CompiledShader} A compiled shader. Null if unsuccessful.\n     ",
      "start": 3983,
      "end": 4334,
      "loc": {
        "start": {
          "line": 106,
          "column": 4
        },
        "end": {
          "line": 113,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Compiles the vertex shader and fragment shader and returns a WebGL program.\n     * \n     * @param {string} vertexShaderSource Source code for a vertex shader.\n     * @param {string} fragmentShaderSource Source code for a fragment shader.\n     * \n     * @returns {Program} A program compiled from the two shader sources.\n     ",
      "start": 4815,
      "end": 5153,
      "loc": {
        "start": {
          "line": 128,
          "column": 4
        },
        "end": {
          "line": 135,
          "column": 7
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n * Singleton reference to the WebGL Program Manager.\n ",
      "start": 6538,
      "end": 6598,
      "loc": {
        "start": {
          "line": 164,
          "column": 0
        },
        "end": {
          "line": 166,
          "column": 3
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Manager",
      "start": 7,
      "end": 14,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 15,
      "end": 19,
      "loc": {
        "start": {
          "line": 1,
          "column": 15
        },
        "end": {
          "line": 1,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./Manager",
      "start": 20,
      "end": 31,
      "loc": {
        "start": {
          "line": 1,
          "column": 20
        },
        "end": {
          "line": 1,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 31,
      "end": 32,
      "loc": {
        "start": {
          "line": 1,
          "column": 31
        },
        "end": {
          "line": 1,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 33,
      "end": 39,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 40,
      "end": 50,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 51,
      "end": 55,
      "loc": {
        "start": {
          "line": 2,
          "column": 18
        },
        "end": {
          "line": 2,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./DOMManager",
      "start": 56,
      "end": 70,
      "loc": {
        "start": {
          "line": 2,
          "column": 23
        },
        "end": {
          "line": 2,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 70,
      "end": 71,
      "loc": {
        "start": {
          "line": 2,
          "column": 37
        },
        "end": {
          "line": 2,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 72,
      "end": 78,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 79,
      "end": 80,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 81,
      "end": 83,
      "loc": {
        "start": {
          "line": 3,
          "column": 9
        },
        "end": {
          "line": 3,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "VertexShader",
      "start": 84,
      "end": 96,
      "loc": {
        "start": {
          "line": 3,
          "column": 12
        },
        "end": {
          "line": 3,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 97,
      "end": 101,
      "loc": {
        "start": {
          "line": 3,
          "column": 25
        },
        "end": {
          "line": 3,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../const/VertexShader",
      "start": 102,
      "end": 125,
      "loc": {
        "start": {
          "line": 3,
          "column": 30
        },
        "end": {
          "line": 3,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 125,
      "end": 126,
      "loc": {
        "start": {
          "line": 3,
          "column": 53
        },
        "end": {
          "line": 3,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 127,
      "end": 133,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 134,
      "end": 135,
      "loc": {
        "start": {
          "line": 4,
          "column": 7
        },
        "end": {
          "line": 4,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 136,
      "end": 138,
      "loc": {
        "start": {
          "line": 4,
          "column": 9
        },
        "end": {
          "line": 4,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "FragmentShader",
      "start": 139,
      "end": 153,
      "loc": {
        "start": {
          "line": 4,
          "column": 12
        },
        "end": {
          "line": 4,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 154,
      "end": 158,
      "loc": {
        "start": {
          "line": 4,
          "column": 27
        },
        "end": {
          "line": 4,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../const/FragmentShader",
      "start": 159,
      "end": 184,
      "loc": {
        "start": {
          "line": 4,
          "column": 32
        },
        "end": {
          "line": 4,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 184,
      "end": 185,
      "loc": {
        "start": {
          "line": 4,
          "column": 57
        },
        "end": {
          "line": 4,
          "column": 58
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n * Manages WebGL Programs so that they only need to be created once across the engine\n * allowing multiple objects to still share the same reference.\n * \n * Elliminates the need for the programmer to compile shaders and create programs, and eases \n * on-the-fly Shader compiling.\n ",
      "start": 188,
      "end": 475,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 13,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 476,
      "end": 482,
      "loc": {
        "start": {
          "line": 14,
          "column": 0
        },
        "end": {
          "line": 14,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 483,
      "end": 488,
      "loc": {
        "start": {
          "line": 14,
          "column": 7
        },
        "end": {
          "line": 14,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_ProgramManager",
      "start": 489,
      "end": 504,
      "loc": {
        "start": {
          "line": 14,
          "column": 13
        },
        "end": {
          "line": 14,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "extends",
        "keyword": "extends",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "extends",
      "start": 505,
      "end": 512,
      "loc": {
        "start": {
          "line": 14,
          "column": 29
        },
        "end": {
          "line": 14,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Manager",
      "start": 513,
      "end": 520,
      "loc": {
        "start": {
          "line": 14,
          "column": 37
        },
        "end": {
          "line": 14,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 521,
      "end": 522,
      "loc": {
        "start": {
          "line": 14,
          "column": 45
        },
        "end": {
          "line": 14,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 527,
      "end": 538,
      "loc": {
        "start": {
          "line": 15,
          "column": 4
        },
        "end": {
          "line": 15,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 538,
      "end": 539,
      "loc": {
        "start": {
          "line": 15,
          "column": 15
        },
        "end": {
          "line": 15,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 539,
      "end": 540,
      "loc": {
        "start": {
          "line": 15,
          "column": 16
        },
        "end": {
          "line": 15,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 541,
      "end": 542,
      "loc": {
        "start": {
          "line": 15,
          "column": 18
        },
        "end": {
          "line": 15,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "super",
        "keyword": "super",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "super",
      "start": 551,
      "end": 556,
      "loc": {
        "start": {
          "line": 16,
          "column": 8
        },
        "end": {
          "line": 16,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 556,
      "end": 557,
      "loc": {
        "start": {
          "line": 16,
          "column": 13
        },
        "end": {
          "line": 16,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 557,
      "end": 558,
      "loc": {
        "start": {
          "line": 16,
          "column": 14
        },
        "end": {
          "line": 16,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 558,
      "end": 559,
      "loc": {
        "start": {
          "line": 16,
          "column": 15
        },
        "end": {
          "line": 16,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 568,
      "end": 572,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 572,
      "end": 573,
      "loc": {
        "start": {
          "line": 17,
          "column": 12
        },
        "end": {
          "line": 17,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programIDCounter",
      "start": 573,
      "end": 589,
      "loc": {
        "start": {
          "line": 17,
          "column": 13
        },
        "end": {
          "line": 17,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 590,
      "end": 591,
      "loc": {
        "start": {
          "line": 17,
          "column": 30
        },
        "end": {
          "line": 17,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 592,
      "end": 593,
      "loc": {
        "start": {
          "line": 17,
          "column": 32
        },
        "end": {
          "line": 17,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 593,
      "end": 594,
      "loc": {
        "start": {
          "line": 17,
          "column": 33
        },
        "end": {
          "line": 17,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 603,
      "end": 607,
      "loc": {
        "start": {
          "line": 18,
          "column": 8
        },
        "end": {
          "line": 18,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 607,
      "end": 608,
      "loc": {
        "start": {
          "line": 18,
          "column": 12
        },
        "end": {
          "line": 18,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programs",
      "start": 608,
      "end": 616,
      "loc": {
        "start": {
          "line": 18,
          "column": 13
        },
        "end": {
          "line": 18,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 617,
      "end": 618,
      "loc": {
        "start": {
          "line": 18,
          "column": 22
        },
        "end": {
          "line": 18,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 619,
      "end": 620,
      "loc": {
        "start": {
          "line": 18,
          "column": 24
        },
        "end": {
          "line": 18,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 620,
      "end": 621,
      "loc": {
        "start": {
          "line": 18,
          "column": 25
        },
        "end": {
          "line": 18,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 621,
      "end": 622,
      "loc": {
        "start": {
          "line": 18,
          "column": 26
        },
        "end": {
          "line": 18,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 627,
      "end": 628,
      "loc": {
        "start": {
          "line": 19,
          "column": 4
        },
        "end": {
          "line": 19,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates default programs for easy reference later on.\n     ",
      "start": 634,
      "end": 706,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 23,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 711,
      "end": 716,
      "loc": {
        "start": {
          "line": 24,
          "column": 4
        },
        "end": {
          "line": 24,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 716,
      "end": 717,
      "loc": {
        "start": {
          "line": 24,
          "column": 9
        },
        "end": {
          "line": 24,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 717,
      "end": 718,
      "loc": {
        "start": {
          "line": 24,
          "column": 10
        },
        "end": {
          "line": 24,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 719,
      "end": 720,
      "loc": {
        "start": {
          "line": 24,
          "column": 12
        },
        "end": {
          "line": 24,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 729,
      "end": 731,
      "loc": {
        "start": {
          "line": 25,
          "column": 8
        },
        "end": {
          "line": 25,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 732,
      "end": 733,
      "loc": {
        "start": {
          "line": 25,
          "column": 11
        },
        "end": {
          "line": 25,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 733,
      "end": 743,
      "loc": {
        "start": {
          "line": 25,
          "column": 12
        },
        "end": {
          "line": 25,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 743,
      "end": 744,
      "loc": {
        "start": {
          "line": 25,
          "column": 22
        },
        "end": {
          "line": 25,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 744,
      "end": 746,
      "loc": {
        "start": {
          "line": 25,
          "column": 23
        },
        "end": {
          "line": 25,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "==",
      "start": 747,
      "end": 749,
      "loc": {
        "start": {
          "line": 25,
          "column": 26
        },
        "end": {
          "line": 25,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 750,
      "end": 754,
      "loc": {
        "start": {
          "line": 25,
          "column": 29
        },
        "end": {
          "line": 25,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 754,
      "end": 755,
      "loc": {
        "start": {
          "line": 25,
          "column": 33
        },
        "end": {
          "line": 25,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 768,
      "end": 774,
      "loc": {
        "start": {
          "line": 26,
          "column": 12
        },
        "end": {
          "line": 26,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 774,
      "end": 775,
      "loc": {
        "start": {
          "line": 26,
          "column": 18
        },
        "end": {
          "line": 26,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 784,
      "end": 788,
      "loc": {
        "start": {
          "line": 27,
          "column": 8
        },
        "end": {
          "line": 27,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 788,
      "end": 789,
      "loc": {
        "start": {
          "line": 27,
          "column": 12
        },
        "end": {
          "line": 27,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "addProgram",
      "start": 789,
      "end": 799,
      "loc": {
        "start": {
          "line": 27,
          "column": 13
        },
        "end": {
          "line": 27,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 799,
      "end": 800,
      "loc": {
        "start": {
          "line": 27,
          "column": 23
        },
        "end": {
          "line": 27,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Default",
      "start": 800,
      "end": 809,
      "loc": {
        "start": {
          "line": 27,
          "column": 24
        },
        "end": {
          "line": 27,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 809,
      "end": 810,
      "loc": {
        "start": {
          "line": 27,
          "column": 33
        },
        "end": {
          "line": 27,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "VertexShader",
      "start": 811,
      "end": 823,
      "loc": {
        "start": {
          "line": 27,
          "column": 35
        },
        "end": {
          "line": 27,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 823,
      "end": 824,
      "loc": {
        "start": {
          "line": 27,
          "column": 47
        },
        "end": {
          "line": 27,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DEFAULT_V",
      "start": 824,
      "end": 833,
      "loc": {
        "start": {
          "line": 27,
          "column": 48
        },
        "end": {
          "line": 27,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 833,
      "end": 834,
      "loc": {
        "start": {
          "line": 27,
          "column": 57
        },
        "end": {
          "line": 27,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "FragmentShader",
      "start": 835,
      "end": 849,
      "loc": {
        "start": {
          "line": 27,
          "column": 59
        },
        "end": {
          "line": 27,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 849,
      "end": 850,
      "loc": {
        "start": {
          "line": 27,
          "column": 73
        },
        "end": {
          "line": 27,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DEFAULT_F",
      "start": 850,
      "end": 859,
      "loc": {
        "start": {
          "line": 27,
          "column": 74
        },
        "end": {
          "line": 27,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 859,
      "end": 860,
      "loc": {
        "start": {
          "line": 27,
          "column": 83
        },
        "end": {
          "line": 27,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 861,
      "end": 862,
      "loc": {
        "start": {
          "line": 27,
          "column": 85
        },
        "end": {
          "line": 27,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_color",
      "start": 875,
      "end": 884,
      "loc": {
        "start": {
          "line": 28,
          "column": 12
        },
        "end": {
          "line": 28,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 884,
      "end": 885,
      "loc": {
        "start": {
          "line": 28,
          "column": 21
        },
        "end": {
          "line": 28,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform4fv",
      "start": 886,
      "end": 898,
      "loc": {
        "start": {
          "line": 28,
          "column": 23
        },
        "end": {
          "line": 28,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 898,
      "end": 899,
      "loc": {
        "start": {
          "line": 28,
          "column": 35
        },
        "end": {
          "line": 28,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_matrix",
      "start": 912,
      "end": 922,
      "loc": {
        "start": {
          "line": 29,
          "column": 12
        },
        "end": {
          "line": 29,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 922,
      "end": 923,
      "loc": {
        "start": {
          "line": 29,
          "column": 22
        },
        "end": {
          "line": 29,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniformMatrix3fv",
      "start": 924,
      "end": 942,
      "loc": {
        "start": {
          "line": 29,
          "column": 24
        },
        "end": {
          "line": 29,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 942,
      "end": 943,
      "loc": {
        "start": {
          "line": 29,
          "column": 42
        },
        "end": {
          "line": 29,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_depth",
      "start": 956,
      "end": 965,
      "loc": {
        "start": {
          "line": 30,
          "column": 12
        },
        "end": {
          "line": 30,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 965,
      "end": 966,
      "loc": {
        "start": {
          "line": 30,
          "column": 21
        },
        "end": {
          "line": 30,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1f",
      "start": 967,
      "end": 978,
      "loc": {
        "start": {
          "line": 30,
          "column": 23
        },
        "end": {
          "line": 30,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 978,
      "end": 979,
      "loc": {
        "start": {
          "line": 30,
          "column": 34
        },
        "end": {
          "line": 30,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_texture",
      "start": 992,
      "end": 1003,
      "loc": {
        "start": {
          "line": 31,
          "column": 12
        },
        "end": {
          "line": 31,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1003,
      "end": 1004,
      "loc": {
        "start": {
          "line": 31,
          "column": 23
        },
        "end": {
          "line": 31,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1i",
      "start": 1005,
      "end": 1016,
      "loc": {
        "start": {
          "line": 31,
          "column": 25
        },
        "end": {
          "line": 31,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1016,
      "end": 1017,
      "loc": {
        "start": {
          "line": 31,
          "column": 36
        },
        "end": {
          "line": 31,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_subTexcoord",
      "start": 1030,
      "end": 1045,
      "loc": {
        "start": {
          "line": 32,
          "column": 12
        },
        "end": {
          "line": 32,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1045,
      "end": 1046,
      "loc": {
        "start": {
          "line": 32,
          "column": 27
        },
        "end": {
          "line": 32,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform4fv",
      "start": 1047,
      "end": 1059,
      "loc": {
        "start": {
          "line": 32,
          "column": 29
        },
        "end": {
          "line": 32,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1059,
      "end": 1060,
      "loc": {
        "start": {
          "line": 32,
          "column": 41
        },
        "end": {
          "line": 32,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1069,
      "end": 1070,
      "loc": {
        "start": {
          "line": 33,
          "column": 8
        },
        "end": {
          "line": 33,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1070,
      "end": 1071,
      "loc": {
        "start": {
          "line": 33,
          "column": 9
        },
        "end": {
          "line": 33,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1071,
      "end": 1072,
      "loc": {
        "start": {
          "line": 33,
          "column": 10
        },
        "end": {
          "line": 33,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1081,
      "end": 1085,
      "loc": {
        "start": {
          "line": 34,
          "column": 8
        },
        "end": {
          "line": 34,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1085,
      "end": 1086,
      "loc": {
        "start": {
          "line": 34,
          "column": 12
        },
        "end": {
          "line": 34,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "addProgram",
      "start": 1086,
      "end": 1096,
      "loc": {
        "start": {
          "line": 34,
          "column": 13
        },
        "end": {
          "line": 34,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1096,
      "end": 1097,
      "loc": {
        "start": {
          "line": 34,
          "column": 23
        },
        "end": {
          "line": 34,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "2DGrid",
      "start": 1097,
      "end": 1105,
      "loc": {
        "start": {
          "line": 34,
          "column": 24
        },
        "end": {
          "line": 34,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1105,
      "end": 1106,
      "loc": {
        "start": {
          "line": 34,
          "column": 32
        },
        "end": {
          "line": 34,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "VertexShader",
      "start": 1107,
      "end": 1119,
      "loc": {
        "start": {
          "line": 34,
          "column": 34
        },
        "end": {
          "line": 34,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1119,
      "end": 1120,
      "loc": {
        "start": {
          "line": 34,
          "column": 46
        },
        "end": {
          "line": 34,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DEFAULT_V",
      "start": 1120,
      "end": 1129,
      "loc": {
        "start": {
          "line": 34,
          "column": 47
        },
        "end": {
          "line": 34,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1129,
      "end": 1130,
      "loc": {
        "start": {
          "line": 34,
          "column": 56
        },
        "end": {
          "line": 34,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "FragmentShader",
      "start": 1131,
      "end": 1145,
      "loc": {
        "start": {
          "line": 34,
          "column": 58
        },
        "end": {
          "line": 34,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1145,
      "end": 1146,
      "loc": {
        "start": {
          "line": 34,
          "column": 72
        },
        "end": {
          "line": 34,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TILEMAP_F",
      "start": 1146,
      "end": 1155,
      "loc": {
        "start": {
          "line": 34,
          "column": 73
        },
        "end": {
          "line": 34,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1155,
      "end": 1156,
      "loc": {
        "start": {
          "line": 34,
          "column": 82
        },
        "end": {
          "line": 34,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1157,
      "end": 1158,
      "loc": {
        "start": {
          "line": 34,
          "column": 84
        },
        "end": {
          "line": 34,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_color",
      "start": 1171,
      "end": 1180,
      "loc": {
        "start": {
          "line": 35,
          "column": 12
        },
        "end": {
          "line": 35,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1180,
      "end": 1181,
      "loc": {
        "start": {
          "line": 35,
          "column": 21
        },
        "end": {
          "line": 35,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform4fv",
      "start": 1182,
      "end": 1194,
      "loc": {
        "start": {
          "line": 35,
          "column": 23
        },
        "end": {
          "line": 35,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1194,
      "end": 1195,
      "loc": {
        "start": {
          "line": 35,
          "column": 35
        },
        "end": {
          "line": 35,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_matrix",
      "start": 1208,
      "end": 1218,
      "loc": {
        "start": {
          "line": 36,
          "column": 12
        },
        "end": {
          "line": 36,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1218,
      "end": 1219,
      "loc": {
        "start": {
          "line": 36,
          "column": 22
        },
        "end": {
          "line": 36,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniformMatrix3fv",
      "start": 1220,
      "end": 1238,
      "loc": {
        "start": {
          "line": 36,
          "column": 24
        },
        "end": {
          "line": 36,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1238,
      "end": 1239,
      "loc": {
        "start": {
          "line": 36,
          "column": 42
        },
        "end": {
          "line": 36,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_depth",
      "start": 1252,
      "end": 1261,
      "loc": {
        "start": {
          "line": 37,
          "column": 12
        },
        "end": {
          "line": 37,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1261,
      "end": 1262,
      "loc": {
        "start": {
          "line": 37,
          "column": 21
        },
        "end": {
          "line": 37,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1f",
      "start": 1263,
      "end": 1274,
      "loc": {
        "start": {
          "line": 37,
          "column": 23
        },
        "end": {
          "line": 37,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1274,
      "end": 1275,
      "loc": {
        "start": {
          "line": 37,
          "column": 34
        },
        "end": {
          "line": 37,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_mapDataTexture",
      "start": 1288,
      "end": 1306,
      "loc": {
        "start": {
          "line": 38,
          "column": 12
        },
        "end": {
          "line": 38,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1306,
      "end": 1307,
      "loc": {
        "start": {
          "line": 38,
          "column": 30
        },
        "end": {
          "line": 38,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1i",
      "start": 1308,
      "end": 1319,
      "loc": {
        "start": {
          "line": 38,
          "column": 32
        },
        "end": {
          "line": 38,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1319,
      "end": 1320,
      "loc": {
        "start": {
          "line": 38,
          "column": 43
        },
        "end": {
          "line": 38,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_texture",
      "start": 1333,
      "end": 1344,
      "loc": {
        "start": {
          "line": 39,
          "column": 12
        },
        "end": {
          "line": 39,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1344,
      "end": 1345,
      "loc": {
        "start": {
          "line": 39,
          "column": 23
        },
        "end": {
          "line": 39,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1i",
      "start": 1346,
      "end": 1357,
      "loc": {
        "start": {
          "line": 39,
          "column": 25
        },
        "end": {
          "line": 39,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1357,
      "end": 1358,
      "loc": {
        "start": {
          "line": 39,
          "column": 36
        },
        "end": {
          "line": 39,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "u_tileData",
      "start": 1371,
      "end": 1383,
      "loc": {
        "start": {
          "line": 40,
          "column": 12
        },
        "end": {
          "line": 40,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1383,
      "end": 1384,
      "loc": {
        "start": {
          "line": 40,
          "column": 24
        },
        "end": {
          "line": 40,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniformMatrix4fv",
      "start": 1385,
      "end": 1403,
      "loc": {
        "start": {
          "line": 40,
          "column": 26
        },
        "end": {
          "line": 40,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1412,
      "end": 1413,
      "loc": {
        "start": {
          "line": 41,
          "column": 8
        },
        "end": {
          "line": 41,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1413,
      "end": 1414,
      "loc": {
        "start": {
          "line": 41,
          "column": 9
        },
        "end": {
          "line": 41,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1414,
      "end": 1415,
      "loc": {
        "start": {
          "line": 41,
          "column": 10
        },
        "end": {
          "line": 41,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1420,
      "end": 1421,
      "loc": {
        "start": {
          "line": 42,
          "column": 4
        },
        "end": {
          "line": 42,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Returns a Program JSON Object containing the program, name and id.\n     * \n     * @param {string} programKey Name of the program.\n     * \n     * @returns {Program Object} Returns a JSON object with Program data.\n     ",
      "start": 1427,
      "end": 1657,
      "loc": {
        "start": {
          "line": 44,
          "column": 4
        },
        "end": {
          "line": 50,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getProgram",
      "start": 1662,
      "end": 1672,
      "loc": {
        "start": {
          "line": 51,
          "column": 4
        },
        "end": {
          "line": 51,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1672,
      "end": 1673,
      "loc": {
        "start": {
          "line": 51,
          "column": 14
        },
        "end": {
          "line": 51,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programKey",
      "start": 1673,
      "end": 1683,
      "loc": {
        "start": {
          "line": 51,
          "column": 15
        },
        "end": {
          "line": 51,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1683,
      "end": 1684,
      "loc": {
        "start": {
          "line": 51,
          "column": 25
        },
        "end": {
          "line": 51,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1685,
      "end": 1686,
      "loc": {
        "start": {
          "line": 51,
          "column": 27
        },
        "end": {
          "line": 51,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1695,
      "end": 1697,
      "loc": {
        "start": {
          "line": 52,
          "column": 8
        },
        "end": {
          "line": 52,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1698,
      "end": 1699,
      "loc": {
        "start": {
          "line": 52,
          "column": 11
        },
        "end": {
          "line": 52,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1699,
      "end": 1703,
      "loc": {
        "start": {
          "line": 52,
          "column": 12
        },
        "end": {
          "line": 52,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1703,
      "end": 1704,
      "loc": {
        "start": {
          "line": 52,
          "column": 16
        },
        "end": {
          "line": 52,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programs",
      "start": 1704,
      "end": 1712,
      "loc": {
        "start": {
          "line": 52,
          "column": 17
        },
        "end": {
          "line": 52,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1712,
      "end": 1713,
      "loc": {
        "start": {
          "line": 52,
          "column": 25
        },
        "end": {
          "line": 52,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programKey",
      "start": 1713,
      "end": 1723,
      "loc": {
        "start": {
          "line": 52,
          "column": 26
        },
        "end": {
          "line": 52,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1723,
      "end": 1724,
      "loc": {
        "start": {
          "line": 52,
          "column": 36
        },
        "end": {
          "line": 52,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "==",
      "start": 1725,
      "end": 1727,
      "loc": {
        "start": {
          "line": 52,
          "column": 38
        },
        "end": {
          "line": 52,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 1728,
      "end": 1732,
      "loc": {
        "start": {
          "line": 52,
          "column": 41
        },
        "end": {
          "line": 52,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1732,
      "end": 1733,
      "loc": {
        "start": {
          "line": 52,
          "column": 45
        },
        "end": {
          "line": 52,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 1746,
      "end": 1751,
      "loc": {
        "start": {
          "line": 53,
          "column": 12
        },
        "end": {
          "line": 53,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Program does not exist!",
      "start": 1752,
      "end": 1777,
      "loc": {
        "start": {
          "line": 53,
          "column": 18
        },
        "end": {
          "line": 53,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1777,
      "end": 1778,
      "loc": {
        "start": {
          "line": 53,
          "column": 43
        },
        "end": {
          "line": 53,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1787,
      "end": 1793,
      "loc": {
        "start": {
          "line": 54,
          "column": 8
        },
        "end": {
          "line": 54,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1794,
      "end": 1798,
      "loc": {
        "start": {
          "line": 54,
          "column": 15
        },
        "end": {
          "line": 54,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1798,
      "end": 1799,
      "loc": {
        "start": {
          "line": 54,
          "column": 19
        },
        "end": {
          "line": 54,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programs",
      "start": 1799,
      "end": 1807,
      "loc": {
        "start": {
          "line": 54,
          "column": 20
        },
        "end": {
          "line": 54,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1807,
      "end": 1808,
      "loc": {
        "start": {
          "line": 54,
          "column": 28
        },
        "end": {
          "line": 54,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programKey",
      "start": 1808,
      "end": 1818,
      "loc": {
        "start": {
          "line": 54,
          "column": 29
        },
        "end": {
          "line": 54,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1818,
      "end": 1819,
      "loc": {
        "start": {
          "line": 54,
          "column": 39
        },
        "end": {
          "line": 54,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1819,
      "end": 1820,
      "loc": {
        "start": {
          "line": 54,
          "column": 40
        },
        "end": {
          "line": 54,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1825,
      "end": 1826,
      "loc": {
        "start": {
          "line": 55,
          "column": 4
        },
        "end": {
          "line": 55,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates a Program JSON Object and initializes the program and metadata.\n     * The program is added to the programs array.\n     * \n     * @param {string} programName Name of the program.\n     * @param {string} vertexShaderSource Source code of the vertex shader.\n     * @param {string} fragmentShaderSource Source code of the fragment shader.\n     * @param {Object} uniforms An object of 'string': 'number' values indicating the uniform variable name & data type enum value.\n     ",
      "start": 1832,
      "end": 2325,
      "loc": {
        "start": {
          "line": 57,
          "column": 4
        },
        "end": {
          "line": 65,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "addProgram",
      "start": 2330,
      "end": 2340,
      "loc": {
        "start": {
          "line": 66,
          "column": 4
        },
        "end": {
          "line": 66,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2340,
      "end": 2341,
      "loc": {
        "start": {
          "line": 66,
          "column": 14
        },
        "end": {
          "line": 66,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programName",
      "start": 2341,
      "end": 2352,
      "loc": {
        "start": {
          "line": 66,
          "column": 15
        },
        "end": {
          "line": 66,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2352,
      "end": 2353,
      "loc": {
        "start": {
          "line": 66,
          "column": 26
        },
        "end": {
          "line": 66,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShaderSource",
      "start": 2354,
      "end": 2372,
      "loc": {
        "start": {
          "line": 66,
          "column": 28
        },
        "end": {
          "line": 66,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2372,
      "end": 2373,
      "loc": {
        "start": {
          "line": 66,
          "column": 46
        },
        "end": {
          "line": 66,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShaderSource",
      "start": 2374,
      "end": 2394,
      "loc": {
        "start": {
          "line": 66,
          "column": 48
        },
        "end": {
          "line": 66,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2394,
      "end": 2395,
      "loc": {
        "start": {
          "line": 66,
          "column": 68
        },
        "end": {
          "line": 66,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniforms",
      "start": 2396,
      "end": 2404,
      "loc": {
        "start": {
          "line": 66,
          "column": 70
        },
        "end": {
          "line": 66,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2404,
      "end": 2405,
      "loc": {
        "start": {
          "line": 66,
          "column": 78
        },
        "end": {
          "line": 66,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2406,
      "end": 2407,
      "loc": {
        "start": {
          "line": 66,
          "column": 80
        },
        "end": {
          "line": 66,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2416,
      "end": 2419,
      "loc": {
        "start": {
          "line": 67,
          "column": 8
        },
        "end": {
          "line": 67,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 2420,
      "end": 2427,
      "loc": {
        "start": {
          "line": 67,
          "column": 12
        },
        "end": {
          "line": 67,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2428,
      "end": 2429,
      "loc": {
        "start": {
          "line": 67,
          "column": 20
        },
        "end": {
          "line": 67,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2430,
      "end": 2434,
      "loc": {
        "start": {
          "line": 67,
          "column": 22
        },
        "end": {
          "line": 67,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2434,
      "end": 2435,
      "loc": {
        "start": {
          "line": 67,
          "column": 26
        },
        "end": {
          "line": 67,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createProgram",
      "start": 2435,
      "end": 2449,
      "loc": {
        "start": {
          "line": 67,
          "column": 27
        },
        "end": {
          "line": 67,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2449,
      "end": 2450,
      "loc": {
        "start": {
          "line": 67,
          "column": 41
        },
        "end": {
          "line": 67,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShaderSource",
      "start": 2450,
      "end": 2468,
      "loc": {
        "start": {
          "line": 67,
          "column": 42
        },
        "end": {
          "line": 67,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2468,
      "end": 2469,
      "loc": {
        "start": {
          "line": 67,
          "column": 60
        },
        "end": {
          "line": 67,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShaderSource",
      "start": 2470,
      "end": 2490,
      "loc": {
        "start": {
          "line": 67,
          "column": 62
        },
        "end": {
          "line": 67,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2490,
      "end": 2491,
      "loc": {
        "start": {
          "line": 67,
          "column": 82
        },
        "end": {
          "line": 67,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2491,
      "end": 2492,
      "loc": {
        "start": {
          "line": 67,
          "column": 83
        },
        "end": {
          "line": 67,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2501,
      "end": 2504,
      "loc": {
        "start": {
          "line": 68,
          "column": 8
        },
        "end": {
          "line": 68,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformSetters",
      "start": 2505,
      "end": 2519,
      "loc": {
        "start": {
          "line": 68,
          "column": 12
        },
        "end": {
          "line": 68,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2520,
      "end": 2521,
      "loc": {
        "start": {
          "line": 68,
          "column": 27
        },
        "end": {
          "line": 68,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2522,
      "end": 2526,
      "loc": {
        "start": {
          "line": 68,
          "column": 29
        },
        "end": {
          "line": 68,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2526,
      "end": 2527,
      "loc": {
        "start": {
          "line": 68,
          "column": 33
        },
        "end": {
          "line": 68,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createProgramLocationSetters",
      "start": 2527,
      "end": 2556,
      "loc": {
        "start": {
          "line": 68,
          "column": 34
        },
        "end": {
          "line": 68,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2556,
      "end": 2557,
      "loc": {
        "start": {
          "line": 68,
          "column": 63
        },
        "end": {
          "line": 68,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 2557,
      "end": 2564,
      "loc": {
        "start": {
          "line": 68,
          "column": 64
        },
        "end": {
          "line": 68,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2564,
      "end": 2565,
      "loc": {
        "start": {
          "line": 68,
          "column": 71
        },
        "end": {
          "line": 68,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniforms",
      "start": 2566,
      "end": 2574,
      "loc": {
        "start": {
          "line": 68,
          "column": 73
        },
        "end": {
          "line": 68,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2574,
      "end": 2575,
      "loc": {
        "start": {
          "line": 68,
          "column": 81
        },
        "end": {
          "line": 68,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2575,
      "end": 2576,
      "loc": {
        "start": {
          "line": 68,
          "column": 82
        },
        "end": {
          "line": 68,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2585,
      "end": 2589,
      "loc": {
        "start": {
          "line": 69,
          "column": 8
        },
        "end": {
          "line": 69,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2589,
      "end": 2590,
      "loc": {
        "start": {
          "line": 69,
          "column": 12
        },
        "end": {
          "line": 69,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programs",
      "start": 2590,
      "end": 2598,
      "loc": {
        "start": {
          "line": 69,
          "column": 13
        },
        "end": {
          "line": 69,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2598,
      "end": 2599,
      "loc": {
        "start": {
          "line": 69,
          "column": 21
        },
        "end": {
          "line": 69,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programName",
      "start": 2599,
      "end": 2610,
      "loc": {
        "start": {
          "line": 69,
          "column": 22
        },
        "end": {
          "line": 69,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2610,
      "end": 2611,
      "loc": {
        "start": {
          "line": 69,
          "column": 33
        },
        "end": {
          "line": 69,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2612,
      "end": 2613,
      "loc": {
        "start": {
          "line": 69,
          "column": 35
        },
        "end": {
          "line": 69,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2614,
      "end": 2615,
      "loc": {
        "start": {
          "line": 69,
          "column": 37
        },
        "end": {
          "line": 69,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 2628,
      "end": 2632,
      "loc": {
        "start": {
          "line": 70,
          "column": 12
        },
        "end": {
          "line": 70,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2632,
      "end": 2633,
      "loc": {
        "start": {
          "line": 70,
          "column": 16
        },
        "end": {
          "line": 70,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programName",
      "start": 2634,
      "end": 2645,
      "loc": {
        "start": {
          "line": 70,
          "column": 18
        },
        "end": {
          "line": 70,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2645,
      "end": 2646,
      "loc": {
        "start": {
          "line": 70,
          "column": 29
        },
        "end": {
          "line": 70,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2659,
      "end": 2661,
      "loc": {
        "start": {
          "line": 71,
          "column": 12
        },
        "end": {
          "line": 71,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2661,
      "end": 2662,
      "loc": {
        "start": {
          "line": 71,
          "column": 14
        },
        "end": {
          "line": 71,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2663,
      "end": 2667,
      "loc": {
        "start": {
          "line": 71,
          "column": 16
        },
        "end": {
          "line": 71,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2667,
      "end": 2668,
      "loc": {
        "start": {
          "line": 71,
          "column": 20
        },
        "end": {
          "line": 71,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "programIDCounter",
      "start": 2668,
      "end": 2684,
      "loc": {
        "start": {
          "line": 71,
          "column": 21
        },
        "end": {
          "line": 71,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 2684,
      "end": 2686,
      "loc": {
        "start": {
          "line": 71,
          "column": 37
        },
        "end": {
          "line": 71,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2686,
      "end": 2687,
      "loc": {
        "start": {
          "line": 71,
          "column": 39
        },
        "end": {
          "line": 71,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 2700,
      "end": 2707,
      "loc": {
        "start": {
          "line": 72,
          "column": 12
        },
        "end": {
          "line": 72,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2707,
      "end": 2708,
      "loc": {
        "start": {
          "line": 72,
          "column": 19
        },
        "end": {
          "line": 72,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformSetters",
      "start": 2721,
      "end": 2735,
      "loc": {
        "start": {
          "line": 73,
          "column": 12
        },
        "end": {
          "line": 73,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2735,
      "end": 2736,
      "loc": {
        "start": {
          "line": 73,
          "column": 26
        },
        "end": {
          "line": 73,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setUniforms",
      "start": 2749,
      "end": 2760,
      "loc": {
        "start": {
          "line": 74,
          "column": 12
        },
        "end": {
          "line": 74,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2760,
      "end": 2761,
      "loc": {
        "start": {
          "line": 74,
          "column": 23
        },
        "end": {
          "line": 74,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2762,
      "end": 2763,
      "loc": {
        "start": {
          "line": 74,
          "column": 25
        },
        "end": {
          "line": 74,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformDataMapping",
      "start": 2763,
      "end": 2781,
      "loc": {
        "start": {
          "line": 74,
          "column": 26
        },
        "end": {
          "line": 74,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2781,
      "end": 2782,
      "loc": {
        "start": {
          "line": 74,
          "column": 44
        },
        "end": {
          "line": 74,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2783,
      "end": 2785,
      "loc": {
        "start": {
          "line": 74,
          "column": 46
        },
        "end": {
          "line": 74,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2786,
      "end": 2787,
      "loc": {
        "start": {
          "line": 74,
          "column": 49
        },
        "end": {
          "line": 74,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2804,
      "end": 2807,
      "loc": {
        "start": {
          "line": 75,
          "column": 16
        },
        "end": {
          "line": 75,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setters",
      "start": 2808,
      "end": 2815,
      "loc": {
        "start": {
          "line": 75,
          "column": 20
        },
        "end": {
          "line": 75,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2816,
      "end": 2817,
      "loc": {
        "start": {
          "line": 75,
          "column": 28
        },
        "end": {
          "line": 75,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Object",
      "start": 2818,
      "end": 2824,
      "loc": {
        "start": {
          "line": 75,
          "column": 30
        },
        "end": {
          "line": 75,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2824,
      "end": 2825,
      "loc": {
        "start": {
          "line": 75,
          "column": 36
        },
        "end": {
          "line": 75,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keys",
      "start": 2825,
      "end": 2829,
      "loc": {
        "start": {
          "line": 75,
          "column": 37
        },
        "end": {
          "line": 75,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2829,
      "end": 2830,
      "loc": {
        "start": {
          "line": 75,
          "column": 41
        },
        "end": {
          "line": 75,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformDataMapping",
      "start": 2830,
      "end": 2848,
      "loc": {
        "start": {
          "line": 75,
          "column": 42
        },
        "end": {
          "line": 75,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2848,
      "end": 2849,
      "loc": {
        "start": {
          "line": 75,
          "column": 60
        },
        "end": {
          "line": 75,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2849,
      "end": 2850,
      "loc": {
        "start": {
          "line": 75,
          "column": 61
        },
        "end": {
          "line": 75,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 2867,
      "end": 2870,
      "loc": {
        "start": {
          "line": 76,
          "column": 16
        },
        "end": {
          "line": 76,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2871,
      "end": 2872,
      "loc": {
        "start": {
          "line": 76,
          "column": 20
        },
        "end": {
          "line": 76,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2872,
      "end": 2875,
      "loc": {
        "start": {
          "line": 76,
          "column": 21
        },
        "end": {
          "line": 76,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 2876,
      "end": 2877,
      "loc": {
        "start": {
          "line": 76,
          "column": 25
        },
        "end": {
          "line": 76,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2878,
      "end": 2879,
      "loc": {
        "start": {
          "line": 76,
          "column": 27
        },
        "end": {
          "line": 76,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 2880,
      "end": 2881,
      "loc": {
        "start": {
          "line": 76,
          "column": 29
        },
        "end": {
          "line": 76,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2881,
      "end": 2882,
      "loc": {
        "start": {
          "line": 76,
          "column": 30
        },
        "end": {
          "line": 76,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 2883,
      "end": 2884,
      "loc": {
        "start": {
          "line": 76,
          "column": 32
        },
        "end": {
          "line": 76,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 2885,
      "end": 2886,
      "loc": {
        "start": {
          "line": 76,
          "column": 34
        },
        "end": {
          "line": 76,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setters",
      "start": 2887,
      "end": 2894,
      "loc": {
        "start": {
          "line": 76,
          "column": 36
        },
        "end": {
          "line": 76,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2894,
      "end": 2895,
      "loc": {
        "start": {
          "line": 76,
          "column": 43
        },
        "end": {
          "line": 76,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 2895,
      "end": 2901,
      "loc": {
        "start": {
          "line": 76,
          "column": 44
        },
        "end": {
          "line": 76,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2901,
      "end": 2902,
      "loc": {
        "start": {
          "line": 76,
          "column": 50
        },
        "end": {
          "line": 76,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 2903,
      "end": 2904,
      "loc": {
        "start": {
          "line": 76,
          "column": 52
        },
        "end": {
          "line": 76,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 2904,
      "end": 2906,
      "loc": {
        "start": {
          "line": 76,
          "column": 53
        },
        "end": {
          "line": 76,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2906,
      "end": 2907,
      "loc": {
        "start": {
          "line": 76,
          "column": 55
        },
        "end": {
          "line": 76,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2908,
      "end": 2909,
      "loc": {
        "start": {
          "line": 76,
          "column": 57
        },
        "end": {
          "line": 76,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformSetters",
      "start": 2930,
      "end": 2944,
      "loc": {
        "start": {
          "line": 77,
          "column": 20
        },
        "end": {
          "line": 77,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2944,
      "end": 2945,
      "loc": {
        "start": {
          "line": 77,
          "column": 34
        },
        "end": {
          "line": 77,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setters",
      "start": 2945,
      "end": 2952,
      "loc": {
        "start": {
          "line": 77,
          "column": 35
        },
        "end": {
          "line": 77,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2952,
      "end": 2953,
      "loc": {
        "start": {
          "line": 77,
          "column": 42
        },
        "end": {
          "line": 77,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 2953,
      "end": 2954,
      "loc": {
        "start": {
          "line": 77,
          "column": 43
        },
        "end": {
          "line": 77,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2954,
      "end": 2955,
      "loc": {
        "start": {
          "line": 77,
          "column": 44
        },
        "end": {
          "line": 77,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2955,
      "end": 2956,
      "loc": {
        "start": {
          "line": 77,
          "column": 45
        },
        "end": {
          "line": 77,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2956,
      "end": 2957,
      "loc": {
        "start": {
          "line": 77,
          "column": 46
        },
        "end": {
          "line": 77,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 2957,
      "end": 2967,
      "loc": {
        "start": {
          "line": 77,
          "column": 47
        },
        "end": {
          "line": 77,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2967,
      "end": 2968,
      "loc": {
        "start": {
          "line": 77,
          "column": 57
        },
        "end": {
          "line": 77,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 2968,
      "end": 2970,
      "loc": {
        "start": {
          "line": 77,
          "column": 58
        },
        "end": {
          "line": 77,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2970,
      "end": 2971,
      "loc": {
        "start": {
          "line": 77,
          "column": 60
        },
        "end": {
          "line": 77,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformDataMapping",
      "start": 2972,
      "end": 2990,
      "loc": {
        "start": {
          "line": 77,
          "column": 62
        },
        "end": {
          "line": 77,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2990,
      "end": 2991,
      "loc": {
        "start": {
          "line": 77,
          "column": 80
        },
        "end": {
          "line": 77,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setters",
      "start": 2991,
      "end": 2998,
      "loc": {
        "start": {
          "line": 77,
          "column": 81
        },
        "end": {
          "line": 77,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2998,
      "end": 2999,
      "loc": {
        "start": {
          "line": 77,
          "column": 88
        },
        "end": {
          "line": 77,
          "column": 89
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 2999,
      "end": 3000,
      "loc": {
        "start": {
          "line": 77,
          "column": 89
        },
        "end": {
          "line": 77,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3000,
      "end": 3001,
      "loc": {
        "start": {
          "line": 77,
          "column": 90
        },
        "end": {
          "line": 77,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3001,
      "end": 3002,
      "loc": {
        "start": {
          "line": 77,
          "column": 91
        },
        "end": {
          "line": 77,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3002,
      "end": 3003,
      "loc": {
        "start": {
          "line": 77,
          "column": 92
        },
        "end": {
          "line": 77,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3003,
      "end": 3004,
      "loc": {
        "start": {
          "line": 77,
          "column": 93
        },
        "end": {
          "line": 77,
          "column": 94
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3021,
      "end": 3022,
      "loc": {
        "start": {
          "line": 78,
          "column": 16
        },
        "end": {
          "line": 78,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3035,
      "end": 3036,
      "loc": {
        "start": {
          "line": 79,
          "column": 12
        },
        "end": {
          "line": 79,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3045,
      "end": 3046,
      "loc": {
        "start": {
          "line": 80,
          "column": 8
        },
        "end": {
          "line": 80,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3046,
      "end": 3047,
      "loc": {
        "start": {
          "line": 80,
          "column": 9
        },
        "end": {
          "line": 80,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3052,
      "end": 3053,
      "loc": {
        "start": {
          "line": 81,
          "column": 4
        },
        "end": {
          "line": 81,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates a WebGL program from a compiled vertex and fragment shader. The program is returned.\n     * \n     * @param {CompiledVertexShader} vertexShader A compiled vertex shader.\n     * @param {CompiledFragmentShader} fragmentShader A compiled fragment shader.\n     * \n     * @returns {Program} A WebGL program. Null if unsuccessful.\n     ",
      "start": 3059,
      "end": 3409,
      "loc": {
        "start": {
          "line": 83,
          "column": 4
        },
        "end": {
          "line": 90,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createShadersProgram",
      "start": 3414,
      "end": 3435,
      "loc": {
        "start": {
          "line": 91,
          "column": 4
        },
        "end": {
          "line": 91,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3435,
      "end": 3436,
      "loc": {
        "start": {
          "line": 91,
          "column": 25
        },
        "end": {
          "line": 91,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShader",
      "start": 3436,
      "end": 3448,
      "loc": {
        "start": {
          "line": 91,
          "column": 26
        },
        "end": {
          "line": 91,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3448,
      "end": 3449,
      "loc": {
        "start": {
          "line": 91,
          "column": 38
        },
        "end": {
          "line": 91,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShader",
      "start": 3450,
      "end": 3464,
      "loc": {
        "start": {
          "line": 91,
          "column": 40
        },
        "end": {
          "line": 91,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3464,
      "end": 3465,
      "loc": {
        "start": {
          "line": 91,
          "column": 54
        },
        "end": {
          "line": 91,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3466,
      "end": 3467,
      "loc": {
        "start": {
          "line": 91,
          "column": 56
        },
        "end": {
          "line": 91,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3476,
      "end": 3479,
      "loc": {
        "start": {
          "line": 92,
          "column": 8
        },
        "end": {
          "line": 92,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3480,
      "end": 3487,
      "loc": {
        "start": {
          "line": 92,
          "column": 12
        },
        "end": {
          "line": 92,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3488,
      "end": 3489,
      "loc": {
        "start": {
          "line": 92,
          "column": 20
        },
        "end": {
          "line": 92,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3490,
      "end": 3500,
      "loc": {
        "start": {
          "line": 92,
          "column": 22
        },
        "end": {
          "line": 92,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3500,
      "end": 3501,
      "loc": {
        "start": {
          "line": 92,
          "column": 32
        },
        "end": {
          "line": 92,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3501,
      "end": 3503,
      "loc": {
        "start": {
          "line": 92,
          "column": 33
        },
        "end": {
          "line": 92,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3503,
      "end": 3504,
      "loc": {
        "start": {
          "line": 92,
          "column": 35
        },
        "end": {
          "line": 92,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "createProgram",
      "start": 3504,
      "end": 3517,
      "loc": {
        "start": {
          "line": 92,
          "column": 36
        },
        "end": {
          "line": 92,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3517,
      "end": 3518,
      "loc": {
        "start": {
          "line": 92,
          "column": 49
        },
        "end": {
          "line": 92,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3518,
      "end": 3519,
      "loc": {
        "start": {
          "line": 92,
          "column": 50
        },
        "end": {
          "line": 92,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3519,
      "end": 3520,
      "loc": {
        "start": {
          "line": 92,
          "column": 51
        },
        "end": {
          "line": 92,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3529,
      "end": 3539,
      "loc": {
        "start": {
          "line": 93,
          "column": 8
        },
        "end": {
          "line": 93,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3539,
      "end": 3540,
      "loc": {
        "start": {
          "line": 93,
          "column": 18
        },
        "end": {
          "line": 93,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3540,
      "end": 3542,
      "loc": {
        "start": {
          "line": 93,
          "column": 19
        },
        "end": {
          "line": 93,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3542,
      "end": 3543,
      "loc": {
        "start": {
          "line": 93,
          "column": 21
        },
        "end": {
          "line": 93,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "attachShader",
      "start": 3543,
      "end": 3555,
      "loc": {
        "start": {
          "line": 93,
          "column": 22
        },
        "end": {
          "line": 93,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3555,
      "end": 3556,
      "loc": {
        "start": {
          "line": 93,
          "column": 34
        },
        "end": {
          "line": 93,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3556,
      "end": 3563,
      "loc": {
        "start": {
          "line": 93,
          "column": 35
        },
        "end": {
          "line": 93,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3563,
      "end": 3564,
      "loc": {
        "start": {
          "line": 93,
          "column": 42
        },
        "end": {
          "line": 93,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShader",
      "start": 3565,
      "end": 3577,
      "loc": {
        "start": {
          "line": 93,
          "column": 44
        },
        "end": {
          "line": 93,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3577,
      "end": 3578,
      "loc": {
        "start": {
          "line": 93,
          "column": 56
        },
        "end": {
          "line": 93,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3578,
      "end": 3579,
      "loc": {
        "start": {
          "line": 93,
          "column": 57
        },
        "end": {
          "line": 93,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3588,
      "end": 3598,
      "loc": {
        "start": {
          "line": 94,
          "column": 8
        },
        "end": {
          "line": 94,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3598,
      "end": 3599,
      "loc": {
        "start": {
          "line": 94,
          "column": 18
        },
        "end": {
          "line": 94,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3599,
      "end": 3601,
      "loc": {
        "start": {
          "line": 94,
          "column": 19
        },
        "end": {
          "line": 94,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3601,
      "end": 3602,
      "loc": {
        "start": {
          "line": 94,
          "column": 21
        },
        "end": {
          "line": 94,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "attachShader",
      "start": 3602,
      "end": 3614,
      "loc": {
        "start": {
          "line": 94,
          "column": 22
        },
        "end": {
          "line": 94,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3614,
      "end": 3615,
      "loc": {
        "start": {
          "line": 94,
          "column": 34
        },
        "end": {
          "line": 94,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3615,
      "end": 3622,
      "loc": {
        "start": {
          "line": 94,
          "column": 35
        },
        "end": {
          "line": 94,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3622,
      "end": 3623,
      "loc": {
        "start": {
          "line": 94,
          "column": 42
        },
        "end": {
          "line": 94,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShader",
      "start": 3624,
      "end": 3638,
      "loc": {
        "start": {
          "line": 94,
          "column": 44
        },
        "end": {
          "line": 94,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3638,
      "end": 3639,
      "loc": {
        "start": {
          "line": 94,
          "column": 58
        },
        "end": {
          "line": 94,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3639,
      "end": 3640,
      "loc": {
        "start": {
          "line": 94,
          "column": 59
        },
        "end": {
          "line": 94,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3649,
      "end": 3659,
      "loc": {
        "start": {
          "line": 95,
          "column": 8
        },
        "end": {
          "line": 95,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3659,
      "end": 3660,
      "loc": {
        "start": {
          "line": 95,
          "column": 18
        },
        "end": {
          "line": 95,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3660,
      "end": 3662,
      "loc": {
        "start": {
          "line": 95,
          "column": 19
        },
        "end": {
          "line": 95,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3662,
      "end": 3663,
      "loc": {
        "start": {
          "line": 95,
          "column": 21
        },
        "end": {
          "line": 95,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "linkProgram",
      "start": 3663,
      "end": 3674,
      "loc": {
        "start": {
          "line": 95,
          "column": 22
        },
        "end": {
          "line": 95,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3674,
      "end": 3675,
      "loc": {
        "start": {
          "line": 95,
          "column": 33
        },
        "end": {
          "line": 95,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3675,
      "end": 3682,
      "loc": {
        "start": {
          "line": 95,
          "column": 34
        },
        "end": {
          "line": 95,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3682,
      "end": 3683,
      "loc": {
        "start": {
          "line": 95,
          "column": 41
        },
        "end": {
          "line": 95,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3683,
      "end": 3684,
      "loc": {
        "start": {
          "line": 95,
          "column": 42
        },
        "end": {
          "line": 95,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3693,
      "end": 3696,
      "loc": {
        "start": {
          "line": 96,
          "column": 8
        },
        "end": {
          "line": 96,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "success",
      "start": 3697,
      "end": 3704,
      "loc": {
        "start": {
          "line": 96,
          "column": 12
        },
        "end": {
          "line": 96,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3705,
      "end": 3706,
      "loc": {
        "start": {
          "line": 96,
          "column": 20
        },
        "end": {
          "line": 96,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3707,
      "end": 3717,
      "loc": {
        "start": {
          "line": 96,
          "column": 22
        },
        "end": {
          "line": 96,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3717,
      "end": 3718,
      "loc": {
        "start": {
          "line": 96,
          "column": 32
        },
        "end": {
          "line": 96,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3718,
      "end": 3720,
      "loc": {
        "start": {
          "line": 96,
          "column": 33
        },
        "end": {
          "line": 96,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3720,
      "end": 3721,
      "loc": {
        "start": {
          "line": 96,
          "column": 35
        },
        "end": {
          "line": 96,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getProgramParameter",
      "start": 3721,
      "end": 3740,
      "loc": {
        "start": {
          "line": 96,
          "column": 36
        },
        "end": {
          "line": 96,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3740,
      "end": 3741,
      "loc": {
        "start": {
          "line": 96,
          "column": 55
        },
        "end": {
          "line": 96,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3741,
      "end": 3748,
      "loc": {
        "start": {
          "line": 96,
          "column": 56
        },
        "end": {
          "line": 96,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3748,
      "end": 3749,
      "loc": {
        "start": {
          "line": 96,
          "column": 63
        },
        "end": {
          "line": 96,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3750,
      "end": 3760,
      "loc": {
        "start": {
          "line": 96,
          "column": 65
        },
        "end": {
          "line": 96,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3760,
      "end": 3761,
      "loc": {
        "start": {
          "line": 96,
          "column": 75
        },
        "end": {
          "line": 96,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3761,
      "end": 3763,
      "loc": {
        "start": {
          "line": 96,
          "column": 76
        },
        "end": {
          "line": 96,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3763,
      "end": 3764,
      "loc": {
        "start": {
          "line": 96,
          "column": 78
        },
        "end": {
          "line": 96,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "LINK_STATUS",
      "start": 3764,
      "end": 3775,
      "loc": {
        "start": {
          "line": 96,
          "column": 79
        },
        "end": {
          "line": 96,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3775,
      "end": 3776,
      "loc": {
        "start": {
          "line": 96,
          "column": 90
        },
        "end": {
          "line": 96,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3776,
      "end": 3777,
      "loc": {
        "start": {
          "line": 96,
          "column": 91
        },
        "end": {
          "line": 96,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 3786,
      "end": 3788,
      "loc": {
        "start": {
          "line": 97,
          "column": 8
        },
        "end": {
          "line": 97,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3789,
      "end": 3790,
      "loc": {
        "start": {
          "line": 97,
          "column": 11
        },
        "end": {
          "line": 97,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "success",
      "start": 3790,
      "end": 3797,
      "loc": {
        "start": {
          "line": 97,
          "column": 12
        },
        "end": {
          "line": 97,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3797,
      "end": 3798,
      "loc": {
        "start": {
          "line": 97,
          "column": 19
        },
        "end": {
          "line": 97,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3799,
      "end": 3800,
      "loc": {
        "start": {
          "line": 97,
          "column": 21
        },
        "end": {
          "line": 97,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 3813,
      "end": 3819,
      "loc": {
        "start": {
          "line": 98,
          "column": 12
        },
        "end": {
          "line": 98,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3820,
      "end": 3827,
      "loc": {
        "start": {
          "line": 98,
          "column": 19
        },
        "end": {
          "line": 98,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3827,
      "end": 3828,
      "loc": {
        "start": {
          "line": 98,
          "column": 26
        },
        "end": {
          "line": 98,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3837,
      "end": 3838,
      "loc": {
        "start": {
          "line": 99,
          "column": 8
        },
        "end": {
          "line": 99,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "console",
      "start": 3848,
      "end": 3855,
      "loc": {
        "start": {
          "line": 101,
          "column": 8
        },
        "end": {
          "line": 101,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3855,
      "end": 3856,
      "loc": {
        "start": {
          "line": 101,
          "column": 15
        },
        "end": {
          "line": 101,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "error",
      "start": 3856,
      "end": 3861,
      "loc": {
        "start": {
          "line": 101,
          "column": 16
        },
        "end": {
          "line": 101,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3861,
      "end": 3862,
      "loc": {
        "start": {
          "line": 101,
          "column": 21
        },
        "end": {
          "line": 101,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3862,
      "end": 3872,
      "loc": {
        "start": {
          "line": 101,
          "column": 22
        },
        "end": {
          "line": 101,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3872,
      "end": 3873,
      "loc": {
        "start": {
          "line": 101,
          "column": 32
        },
        "end": {
          "line": 101,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3873,
      "end": 3875,
      "loc": {
        "start": {
          "line": 101,
          "column": 33
        },
        "end": {
          "line": 101,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3875,
      "end": 3876,
      "loc": {
        "start": {
          "line": 101,
          "column": 35
        },
        "end": {
          "line": 101,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getProgramInfoLog",
      "start": 3876,
      "end": 3893,
      "loc": {
        "start": {
          "line": 101,
          "column": 36
        },
        "end": {
          "line": 101,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3893,
      "end": 3894,
      "loc": {
        "start": {
          "line": 101,
          "column": 53
        },
        "end": {
          "line": 101,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3894,
      "end": 3901,
      "loc": {
        "start": {
          "line": 101,
          "column": 54
        },
        "end": {
          "line": 101,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3901,
      "end": 3902,
      "loc": {
        "start": {
          "line": 101,
          "column": 61
        },
        "end": {
          "line": 101,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3902,
      "end": 3903,
      "loc": {
        "start": {
          "line": 101,
          "column": 62
        },
        "end": {
          "line": 101,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3903,
      "end": 3904,
      "loc": {
        "start": {
          "line": 101,
          "column": 63
        },
        "end": {
          "line": 101,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 3913,
      "end": 3923,
      "loc": {
        "start": {
          "line": 102,
          "column": 8
        },
        "end": {
          "line": 102,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3923,
      "end": 3924,
      "loc": {
        "start": {
          "line": 102,
          "column": 18
        },
        "end": {
          "line": 102,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 3924,
      "end": 3926,
      "loc": {
        "start": {
          "line": 102,
          "column": 19
        },
        "end": {
          "line": 102,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3926,
      "end": 3927,
      "loc": {
        "start": {
          "line": 102,
          "column": 21
        },
        "end": {
          "line": 102,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "deleteProgram",
      "start": 3927,
      "end": 3940,
      "loc": {
        "start": {
          "line": 102,
          "column": 22
        },
        "end": {
          "line": 102,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3940,
      "end": 3941,
      "loc": {
        "start": {
          "line": 102,
          "column": 35
        },
        "end": {
          "line": 102,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3941,
      "end": 3948,
      "loc": {
        "start": {
          "line": 102,
          "column": 36
        },
        "end": {
          "line": 102,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3948,
      "end": 3949,
      "loc": {
        "start": {
          "line": 102,
          "column": 43
        },
        "end": {
          "line": 102,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3949,
      "end": 3950,
      "loc": {
        "start": {
          "line": 102,
          "column": 44
        },
        "end": {
          "line": 102,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 3959,
      "end": 3965,
      "loc": {
        "start": {
          "line": 103,
          "column": 8
        },
        "end": {
          "line": 103,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 3966,
      "end": 3970,
      "loc": {
        "start": {
          "line": 103,
          "column": 15
        },
        "end": {
          "line": 103,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3970,
      "end": 3971,
      "loc": {
        "start": {
          "line": 103,
          "column": 19
        },
        "end": {
          "line": 103,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3976,
      "end": 3977,
      "loc": {
        "start": {
          "line": 104,
          "column": 4
        },
        "end": {
          "line": 104,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Creates a shader of either Vertex or Fragment type and returns the compiled version.\n     * \n     * @param {GLShaderType} type A GL shader type of either VERTEX_SHADER or FRAGMENT_SHADER.\n     * @param {string} source Source code for the shader type.\n     * \n     * @returns {CompiledShader} A compiled shader. Null if unsuccessful.\n     ",
      "start": 3983,
      "end": 4334,
      "loc": {
        "start": {
          "line": 106,
          "column": 4
        },
        "end": {
          "line": 113,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createShader",
      "start": 4339,
      "end": 4352,
      "loc": {
        "start": {
          "line": 114,
          "column": 4
        },
        "end": {
          "line": 114,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4352,
      "end": 4353,
      "loc": {
        "start": {
          "line": 114,
          "column": 17
        },
        "end": {
          "line": 114,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 4353,
      "end": 4357,
      "loc": {
        "start": {
          "line": 114,
          "column": 18
        },
        "end": {
          "line": 114,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4357,
      "end": 4358,
      "loc": {
        "start": {
          "line": 114,
          "column": 22
        },
        "end": {
          "line": 114,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 4359,
      "end": 4365,
      "loc": {
        "start": {
          "line": 114,
          "column": 24
        },
        "end": {
          "line": 114,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4365,
      "end": 4366,
      "loc": {
        "start": {
          "line": 114,
          "column": 30
        },
        "end": {
          "line": 114,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4367,
      "end": 4368,
      "loc": {
        "start": {
          "line": 114,
          "column": 32
        },
        "end": {
          "line": 114,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 4377,
      "end": 4380,
      "loc": {
        "start": {
          "line": 115,
          "column": 8
        },
        "end": {
          "line": 115,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4381,
      "end": 4387,
      "loc": {
        "start": {
          "line": 115,
          "column": 12
        },
        "end": {
          "line": 115,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4388,
      "end": 4389,
      "loc": {
        "start": {
          "line": 115,
          "column": 19
        },
        "end": {
          "line": 115,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4390,
      "end": 4400,
      "loc": {
        "start": {
          "line": 115,
          "column": 21
        },
        "end": {
          "line": 115,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4400,
      "end": 4401,
      "loc": {
        "start": {
          "line": 115,
          "column": 31
        },
        "end": {
          "line": 115,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4401,
      "end": 4403,
      "loc": {
        "start": {
          "line": 115,
          "column": 32
        },
        "end": {
          "line": 115,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4403,
      "end": 4404,
      "loc": {
        "start": {
          "line": 115,
          "column": 34
        },
        "end": {
          "line": 115,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "createShader",
      "start": 4404,
      "end": 4416,
      "loc": {
        "start": {
          "line": 115,
          "column": 35
        },
        "end": {
          "line": 115,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4416,
      "end": 4417,
      "loc": {
        "start": {
          "line": 115,
          "column": 47
        },
        "end": {
          "line": 115,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 4417,
      "end": 4421,
      "loc": {
        "start": {
          "line": 115,
          "column": 48
        },
        "end": {
          "line": 115,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4421,
      "end": 4422,
      "loc": {
        "start": {
          "line": 115,
          "column": 52
        },
        "end": {
          "line": 115,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4422,
      "end": 4423,
      "loc": {
        "start": {
          "line": 115,
          "column": 53
        },
        "end": {
          "line": 115,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4432,
      "end": 4442,
      "loc": {
        "start": {
          "line": 116,
          "column": 8
        },
        "end": {
          "line": 116,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4442,
      "end": 4443,
      "loc": {
        "start": {
          "line": 116,
          "column": 18
        },
        "end": {
          "line": 116,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4443,
      "end": 4445,
      "loc": {
        "start": {
          "line": 116,
          "column": 19
        },
        "end": {
          "line": 116,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4445,
      "end": 4446,
      "loc": {
        "start": {
          "line": 116,
          "column": 21
        },
        "end": {
          "line": 116,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shaderSource",
      "start": 4446,
      "end": 4458,
      "loc": {
        "start": {
          "line": 116,
          "column": 22
        },
        "end": {
          "line": 116,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4458,
      "end": 4459,
      "loc": {
        "start": {
          "line": 116,
          "column": 34
        },
        "end": {
          "line": 116,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4459,
      "end": 4465,
      "loc": {
        "start": {
          "line": 116,
          "column": 35
        },
        "end": {
          "line": 116,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4465,
      "end": 4466,
      "loc": {
        "start": {
          "line": 116,
          "column": 41
        },
        "end": {
          "line": 116,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "source",
      "start": 4467,
      "end": 4473,
      "loc": {
        "start": {
          "line": 116,
          "column": 43
        },
        "end": {
          "line": 116,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4473,
      "end": 4474,
      "loc": {
        "start": {
          "line": 116,
          "column": 49
        },
        "end": {
          "line": 116,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4474,
      "end": 4475,
      "loc": {
        "start": {
          "line": 116,
          "column": 50
        },
        "end": {
          "line": 116,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4484,
      "end": 4494,
      "loc": {
        "start": {
          "line": 117,
          "column": 8
        },
        "end": {
          "line": 117,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4494,
      "end": 4495,
      "loc": {
        "start": {
          "line": 117,
          "column": 18
        },
        "end": {
          "line": 117,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4495,
      "end": 4497,
      "loc": {
        "start": {
          "line": 117,
          "column": 19
        },
        "end": {
          "line": 117,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4497,
      "end": 4498,
      "loc": {
        "start": {
          "line": 117,
          "column": 21
        },
        "end": {
          "line": 117,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "compileShader",
      "start": 4498,
      "end": 4511,
      "loc": {
        "start": {
          "line": 117,
          "column": 22
        },
        "end": {
          "line": 117,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4511,
      "end": 4512,
      "loc": {
        "start": {
          "line": 117,
          "column": 35
        },
        "end": {
          "line": 117,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4512,
      "end": 4518,
      "loc": {
        "start": {
          "line": 117,
          "column": 36
        },
        "end": {
          "line": 117,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4518,
      "end": 4519,
      "loc": {
        "start": {
          "line": 117,
          "column": 42
        },
        "end": {
          "line": 117,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4519,
      "end": 4520,
      "loc": {
        "start": {
          "line": 117,
          "column": 43
        },
        "end": {
          "line": 117,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 4529,
      "end": 4532,
      "loc": {
        "start": {
          "line": 118,
          "column": 8
        },
        "end": {
          "line": 118,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "success",
      "start": 4533,
      "end": 4540,
      "loc": {
        "start": {
          "line": 118,
          "column": 12
        },
        "end": {
          "line": 118,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 4541,
      "end": 4542,
      "loc": {
        "start": {
          "line": 118,
          "column": 20
        },
        "end": {
          "line": 118,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4543,
      "end": 4553,
      "loc": {
        "start": {
          "line": 118,
          "column": 22
        },
        "end": {
          "line": 118,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4553,
      "end": 4554,
      "loc": {
        "start": {
          "line": 118,
          "column": 32
        },
        "end": {
          "line": 118,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4554,
      "end": 4556,
      "loc": {
        "start": {
          "line": 118,
          "column": 33
        },
        "end": {
          "line": 118,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4556,
      "end": 4557,
      "loc": {
        "start": {
          "line": 118,
          "column": 35
        },
        "end": {
          "line": 118,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getShaderParameter",
      "start": 4557,
      "end": 4575,
      "loc": {
        "start": {
          "line": 118,
          "column": 36
        },
        "end": {
          "line": 118,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4575,
      "end": 4576,
      "loc": {
        "start": {
          "line": 118,
          "column": 54
        },
        "end": {
          "line": 118,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4576,
      "end": 4582,
      "loc": {
        "start": {
          "line": 118,
          "column": 55
        },
        "end": {
          "line": 118,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4582,
      "end": 4583,
      "loc": {
        "start": {
          "line": 118,
          "column": 61
        },
        "end": {
          "line": 118,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4584,
      "end": 4594,
      "loc": {
        "start": {
          "line": 118,
          "column": 63
        },
        "end": {
          "line": 118,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4594,
      "end": 4595,
      "loc": {
        "start": {
          "line": 118,
          "column": 73
        },
        "end": {
          "line": 118,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4595,
      "end": 4597,
      "loc": {
        "start": {
          "line": 118,
          "column": 74
        },
        "end": {
          "line": 118,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4597,
      "end": 4598,
      "loc": {
        "start": {
          "line": 118,
          "column": 76
        },
        "end": {
          "line": 118,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "COMPILE_STATUS",
      "start": 4598,
      "end": 4612,
      "loc": {
        "start": {
          "line": 118,
          "column": 77
        },
        "end": {
          "line": 118,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4612,
      "end": 4613,
      "loc": {
        "start": {
          "line": 118,
          "column": 91
        },
        "end": {
          "line": 118,
          "column": 92
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4613,
      "end": 4614,
      "loc": {
        "start": {
          "line": 118,
          "column": 92
        },
        "end": {
          "line": 118,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 4623,
      "end": 4625,
      "loc": {
        "start": {
          "line": 119,
          "column": 8
        },
        "end": {
          "line": 119,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4626,
      "end": 4627,
      "loc": {
        "start": {
          "line": 119,
          "column": 11
        },
        "end": {
          "line": 119,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "success",
      "start": 4627,
      "end": 4634,
      "loc": {
        "start": {
          "line": 119,
          "column": 12
        },
        "end": {
          "line": 119,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4634,
      "end": 4635,
      "loc": {
        "start": {
          "line": 119,
          "column": 19
        },
        "end": {
          "line": 119,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4636,
      "end": 4637,
      "loc": {
        "start": {
          "line": 119,
          "column": 21
        },
        "end": {
          "line": 119,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 4650,
      "end": 4656,
      "loc": {
        "start": {
          "line": 120,
          "column": 12
        },
        "end": {
          "line": 120,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4657,
      "end": 4663,
      "loc": {
        "start": {
          "line": 120,
          "column": 19
        },
        "end": {
          "line": 120,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4663,
      "end": 4664,
      "loc": {
        "start": {
          "line": 120,
          "column": 25
        },
        "end": {
          "line": 120,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4673,
      "end": 4674,
      "loc": {
        "start": {
          "line": 121,
          "column": 8
        },
        "end": {
          "line": 121,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "console",
      "start": 4684,
      "end": 4691,
      "loc": {
        "start": {
          "line": 123,
          "column": 8
        },
        "end": {
          "line": 123,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4691,
      "end": 4692,
      "loc": {
        "start": {
          "line": 123,
          "column": 15
        },
        "end": {
          "line": 123,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "error",
      "start": 4692,
      "end": 4697,
      "loc": {
        "start": {
          "line": 123,
          "column": 16
        },
        "end": {
          "line": 123,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4697,
      "end": 4698,
      "loc": {
        "start": {
          "line": 123,
          "column": 21
        },
        "end": {
          "line": 123,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4698,
      "end": 4708,
      "loc": {
        "start": {
          "line": 123,
          "column": 22
        },
        "end": {
          "line": 123,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4708,
      "end": 4709,
      "loc": {
        "start": {
          "line": 123,
          "column": 32
        },
        "end": {
          "line": 123,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4709,
      "end": 4711,
      "loc": {
        "start": {
          "line": 123,
          "column": 33
        },
        "end": {
          "line": 123,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4711,
      "end": 4712,
      "loc": {
        "start": {
          "line": 123,
          "column": 35
        },
        "end": {
          "line": 123,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getShaderInfoLog",
      "start": 4712,
      "end": 4728,
      "loc": {
        "start": {
          "line": 123,
          "column": 36
        },
        "end": {
          "line": 123,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4728,
      "end": 4729,
      "loc": {
        "start": {
          "line": 123,
          "column": 52
        },
        "end": {
          "line": 123,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4729,
      "end": 4735,
      "loc": {
        "start": {
          "line": 123,
          "column": 53
        },
        "end": {
          "line": 123,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4735,
      "end": 4736,
      "loc": {
        "start": {
          "line": 123,
          "column": 59
        },
        "end": {
          "line": 123,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4736,
      "end": 4737,
      "loc": {
        "start": {
          "line": 123,
          "column": 60
        },
        "end": {
          "line": 123,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4737,
      "end": 4738,
      "loc": {
        "start": {
          "line": 123,
          "column": 61
        },
        "end": {
          "line": 123,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 4747,
      "end": 4757,
      "loc": {
        "start": {
          "line": 124,
          "column": 8
        },
        "end": {
          "line": 124,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4757,
      "end": 4758,
      "loc": {
        "start": {
          "line": 124,
          "column": 18
        },
        "end": {
          "line": 124,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 4758,
      "end": 4760,
      "loc": {
        "start": {
          "line": 124,
          "column": 19
        },
        "end": {
          "line": 124,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4760,
      "end": 4761,
      "loc": {
        "start": {
          "line": 124,
          "column": 21
        },
        "end": {
          "line": 124,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "deleteShader",
      "start": 4761,
      "end": 4773,
      "loc": {
        "start": {
          "line": 124,
          "column": 22
        },
        "end": {
          "line": 124,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4773,
      "end": 4774,
      "loc": {
        "start": {
          "line": 124,
          "column": 34
        },
        "end": {
          "line": 124,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "shader",
      "start": 4774,
      "end": 4780,
      "loc": {
        "start": {
          "line": 124,
          "column": 35
        },
        "end": {
          "line": 124,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4780,
      "end": 4781,
      "loc": {
        "start": {
          "line": 124,
          "column": 41
        },
        "end": {
          "line": 124,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4781,
      "end": 4782,
      "loc": {
        "start": {
          "line": 124,
          "column": 42
        },
        "end": {
          "line": 124,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 4791,
      "end": 4797,
      "loc": {
        "start": {
          "line": 125,
          "column": 8
        },
        "end": {
          "line": 125,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 4798,
      "end": 4802,
      "loc": {
        "start": {
          "line": 125,
          "column": 15
        },
        "end": {
          "line": 125,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4802,
      "end": 4803,
      "loc": {
        "start": {
          "line": 125,
          "column": 19
        },
        "end": {
          "line": 125,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4808,
      "end": 4809,
      "loc": {
        "start": {
          "line": 126,
          "column": 4
        },
        "end": {
          "line": 126,
          "column": 5
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n     * Compiles the vertex shader and fragment shader and returns a WebGL program.\n     * \n     * @param {string} vertexShaderSource Source code for a vertex shader.\n     * @param {string} fragmentShaderSource Source code for a fragment shader.\n     * \n     * @returns {Program} A program compiled from the two shader sources.\n     ",
      "start": 4815,
      "end": 5153,
      "loc": {
        "start": {
          "line": 128,
          "column": 4
        },
        "end": {
          "line": 135,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createProgram",
      "start": 5158,
      "end": 5172,
      "loc": {
        "start": {
          "line": 136,
          "column": 4
        },
        "end": {
          "line": 136,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5172,
      "end": 5173,
      "loc": {
        "start": {
          "line": 136,
          "column": 18
        },
        "end": {
          "line": 136,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShaderSource",
      "start": 5173,
      "end": 5191,
      "loc": {
        "start": {
          "line": 136,
          "column": 19
        },
        "end": {
          "line": 136,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5191,
      "end": 5192,
      "loc": {
        "start": {
          "line": 136,
          "column": 37
        },
        "end": {
          "line": 136,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShaderSource",
      "start": 5193,
      "end": 5213,
      "loc": {
        "start": {
          "line": 136,
          "column": 39
        },
        "end": {
          "line": 136,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5213,
      "end": 5214,
      "loc": {
        "start": {
          "line": 136,
          "column": 59
        },
        "end": {
          "line": 136,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5215,
      "end": 5216,
      "loc": {
        "start": {
          "line": 136,
          "column": 61
        },
        "end": {
          "line": 136,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 5225,
      "end": 5228,
      "loc": {
        "start": {
          "line": 137,
          "column": 8
        },
        "end": {
          "line": 137,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShader",
      "start": 5229,
      "end": 5241,
      "loc": {
        "start": {
          "line": 137,
          "column": 12
        },
        "end": {
          "line": 137,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5242,
      "end": 5243,
      "loc": {
        "start": {
          "line": 137,
          "column": 25
        },
        "end": {
          "line": 137,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5244,
      "end": 5248,
      "loc": {
        "start": {
          "line": 137,
          "column": 27
        },
        "end": {
          "line": 137,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5248,
      "end": 5249,
      "loc": {
        "start": {
          "line": 137,
          "column": 31
        },
        "end": {
          "line": 137,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createShader",
      "start": 5249,
      "end": 5262,
      "loc": {
        "start": {
          "line": 137,
          "column": 32
        },
        "end": {
          "line": 137,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5262,
      "end": 5263,
      "loc": {
        "start": {
          "line": 137,
          "column": 45
        },
        "end": {
          "line": 137,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 5263,
      "end": 5273,
      "loc": {
        "start": {
          "line": 137,
          "column": 46
        },
        "end": {
          "line": 137,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5273,
      "end": 5274,
      "loc": {
        "start": {
          "line": 137,
          "column": 56
        },
        "end": {
          "line": 137,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 5274,
      "end": 5276,
      "loc": {
        "start": {
          "line": 137,
          "column": 57
        },
        "end": {
          "line": 137,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5276,
      "end": 5277,
      "loc": {
        "start": {
          "line": 137,
          "column": 59
        },
        "end": {
          "line": 137,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "VERTEX_SHADER",
      "start": 5277,
      "end": 5290,
      "loc": {
        "start": {
          "line": 137,
          "column": 60
        },
        "end": {
          "line": 137,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5290,
      "end": 5291,
      "loc": {
        "start": {
          "line": 137,
          "column": 73
        },
        "end": {
          "line": 137,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShaderSource",
      "start": 5292,
      "end": 5310,
      "loc": {
        "start": {
          "line": 137,
          "column": 75
        },
        "end": {
          "line": 137,
          "column": 93
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5310,
      "end": 5311,
      "loc": {
        "start": {
          "line": 137,
          "column": 93
        },
        "end": {
          "line": 137,
          "column": 94
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5311,
      "end": 5312,
      "loc": {
        "start": {
          "line": 137,
          "column": 94
        },
        "end": {
          "line": 137,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 5321,
      "end": 5324,
      "loc": {
        "start": {
          "line": 138,
          "column": 8
        },
        "end": {
          "line": 138,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShader",
      "start": 5325,
      "end": 5339,
      "loc": {
        "start": {
          "line": 138,
          "column": 12
        },
        "end": {
          "line": 138,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5340,
      "end": 5341,
      "loc": {
        "start": {
          "line": 138,
          "column": 27
        },
        "end": {
          "line": 138,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5342,
      "end": 5346,
      "loc": {
        "start": {
          "line": 138,
          "column": 29
        },
        "end": {
          "line": 138,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5346,
      "end": 5347,
      "loc": {
        "start": {
          "line": 138,
          "column": 33
        },
        "end": {
          "line": 138,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createShader",
      "start": 5347,
      "end": 5360,
      "loc": {
        "start": {
          "line": 138,
          "column": 34
        },
        "end": {
          "line": 138,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5360,
      "end": 5361,
      "loc": {
        "start": {
          "line": 138,
          "column": 47
        },
        "end": {
          "line": 138,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 5361,
      "end": 5371,
      "loc": {
        "start": {
          "line": 138,
          "column": 48
        },
        "end": {
          "line": 138,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5371,
      "end": 5372,
      "loc": {
        "start": {
          "line": 138,
          "column": 58
        },
        "end": {
          "line": 138,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 5372,
      "end": 5374,
      "loc": {
        "start": {
          "line": 138,
          "column": 59
        },
        "end": {
          "line": 138,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5374,
      "end": 5375,
      "loc": {
        "start": {
          "line": 138,
          "column": 61
        },
        "end": {
          "line": 138,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "FRAGMENT_SHADER",
      "start": 5375,
      "end": 5390,
      "loc": {
        "start": {
          "line": 138,
          "column": 62
        },
        "end": {
          "line": 138,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5390,
      "end": 5391,
      "loc": {
        "start": {
          "line": 138,
          "column": 77
        },
        "end": {
          "line": 138,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShaderSource",
      "start": 5392,
      "end": 5412,
      "loc": {
        "start": {
          "line": 138,
          "column": 79
        },
        "end": {
          "line": 138,
          "column": 99
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5412,
      "end": 5413,
      "loc": {
        "start": {
          "line": 138,
          "column": 99
        },
        "end": {
          "line": 138,
          "column": 100
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5413,
      "end": 5414,
      "loc": {
        "start": {
          "line": 138,
          "column": 100
        },
        "end": {
          "line": 138,
          "column": 101
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 5424,
      "end": 5430,
      "loc": {
        "start": {
          "line": 140,
          "column": 8
        },
        "end": {
          "line": 140,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5431,
      "end": 5435,
      "loc": {
        "start": {
          "line": 140,
          "column": 15
        },
        "end": {
          "line": 140,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5435,
      "end": 5436,
      "loc": {
        "start": {
          "line": 140,
          "column": 19
        },
        "end": {
          "line": 140,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createShadersProgram",
      "start": 5436,
      "end": 5457,
      "loc": {
        "start": {
          "line": 140,
          "column": 20
        },
        "end": {
          "line": 140,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5457,
      "end": 5458,
      "loc": {
        "start": {
          "line": 140,
          "column": 41
        },
        "end": {
          "line": 140,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "vertexShader",
      "start": 5458,
      "end": 5470,
      "loc": {
        "start": {
          "line": 140,
          "column": 42
        },
        "end": {
          "line": 140,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5470,
      "end": 5471,
      "loc": {
        "start": {
          "line": 140,
          "column": 54
        },
        "end": {
          "line": 140,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fragmentShader",
      "start": 5472,
      "end": 5486,
      "loc": {
        "start": {
          "line": 140,
          "column": 56
        },
        "end": {
          "line": 140,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5486,
      "end": 5487,
      "loc": {
        "start": {
          "line": 140,
          "column": 70
        },
        "end": {
          "line": 140,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5487,
      "end": 5488,
      "loc": {
        "start": {
          "line": 140,
          "column": 71
        },
        "end": {
          "line": 140,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5493,
      "end": 5494,
      "loc": {
        "start": {
          "line": 141,
          "column": 4
        },
        "end": {
          "line": 141,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_createProgramLocationSetters",
      "start": 5500,
      "end": 5529,
      "loc": {
        "start": {
          "line": 143,
          "column": 4
        },
        "end": {
          "line": 143,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5529,
      "end": 5530,
      "loc": {
        "start": {
          "line": 143,
          "column": 33
        },
        "end": {
          "line": 143,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 5530,
      "end": 5537,
      "loc": {
        "start": {
          "line": 143,
          "column": 34
        },
        "end": {
          "line": 143,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5537,
      "end": 5538,
      "loc": {
        "start": {
          "line": 143,
          "column": 41
        },
        "end": {
          "line": 143,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniforms",
      "start": 5539,
      "end": 5547,
      "loc": {
        "start": {
          "line": 143,
          "column": 43
        },
        "end": {
          "line": 143,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5547,
      "end": 5548,
      "loc": {
        "start": {
          "line": 143,
          "column": 51
        },
        "end": {
          "line": 143,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5549,
      "end": 5550,
      "loc": {
        "start": {
          "line": 143,
          "column": 53
        },
        "end": {
          "line": 143,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 5559,
      "end": 5562,
      "loc": {
        "start": {
          "line": 144,
          "column": 8
        },
        "end": {
          "line": 144,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformLocationSetters",
      "start": 5563,
      "end": 5585,
      "loc": {
        "start": {
          "line": 144,
          "column": 12
        },
        "end": {
          "line": 144,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5586,
      "end": 5587,
      "loc": {
        "start": {
          "line": 144,
          "column": 35
        },
        "end": {
          "line": 144,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5588,
      "end": 5589,
      "loc": {
        "start": {
          "line": 144,
          "column": 37
        },
        "end": {
          "line": 144,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5589,
      "end": 5590,
      "loc": {
        "start": {
          "line": 144,
          "column": 38
        },
        "end": {
          "line": 144,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5590,
      "end": 5591,
      "loc": {
        "start": {
          "line": 144,
          "column": 39
        },
        "end": {
          "line": 144,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 5600,
      "end": 5603,
      "loc": {
        "start": {
          "line": 145,
          "column": 8
        },
        "end": {
          "line": 145,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformKeys",
      "start": 5604,
      "end": 5615,
      "loc": {
        "start": {
          "line": 145,
          "column": 12
        },
        "end": {
          "line": 145,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5616,
      "end": 5617,
      "loc": {
        "start": {
          "line": 145,
          "column": 24
        },
        "end": {
          "line": 145,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Object",
      "start": 5618,
      "end": 5624,
      "loc": {
        "start": {
          "line": 145,
          "column": 26
        },
        "end": {
          "line": 145,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5624,
      "end": 5625,
      "loc": {
        "start": {
          "line": 145,
          "column": 32
        },
        "end": {
          "line": 145,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "keys",
      "start": 5625,
      "end": 5629,
      "loc": {
        "start": {
          "line": 145,
          "column": 33
        },
        "end": {
          "line": 145,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5629,
      "end": 5630,
      "loc": {
        "start": {
          "line": 145,
          "column": 37
        },
        "end": {
          "line": 145,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniforms",
      "start": 5630,
      "end": 5638,
      "loc": {
        "start": {
          "line": 145,
          "column": 38
        },
        "end": {
          "line": 145,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5638,
      "end": 5639,
      "loc": {
        "start": {
          "line": 145,
          "column": 46
        },
        "end": {
          "line": 145,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5639,
      "end": 5640,
      "loc": {
        "start": {
          "line": 145,
          "column": 47
        },
        "end": {
          "line": 145,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 5649,
      "end": 5652,
      "loc": {
        "start": {
          "line": 146,
          "column": 8
        },
        "end": {
          "line": 146,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5653,
      "end": 5654,
      "loc": {
        "start": {
          "line": 146,
          "column": 12
        },
        "end": {
          "line": 146,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 5654,
      "end": 5657,
      "loc": {
        "start": {
          "line": 146,
          "column": 13
        },
        "end": {
          "line": 146,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5658,
      "end": 5659,
      "loc": {
        "start": {
          "line": 146,
          "column": 17
        },
        "end": {
          "line": 146,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5660,
      "end": 5661,
      "loc": {
        "start": {
          "line": 146,
          "column": 19
        },
        "end": {
          "line": 146,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 5662,
      "end": 5663,
      "loc": {
        "start": {
          "line": 146,
          "column": 21
        },
        "end": {
          "line": 146,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5663,
      "end": 5664,
      "loc": {
        "start": {
          "line": 146,
          "column": 22
        },
        "end": {
          "line": 146,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5665,
      "end": 5666,
      "loc": {
        "start": {
          "line": 146,
          "column": 24
        },
        "end": {
          "line": 146,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 5667,
      "end": 5668,
      "loc": {
        "start": {
          "line": 146,
          "column": 26
        },
        "end": {
          "line": 146,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformKeys",
      "start": 5669,
      "end": 5680,
      "loc": {
        "start": {
          "line": 146,
          "column": 28
        },
        "end": {
          "line": 146,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5680,
      "end": 5681,
      "loc": {
        "start": {
          "line": 146,
          "column": 39
        },
        "end": {
          "line": 146,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 5681,
      "end": 5687,
      "loc": {
        "start": {
          "line": 146,
          "column": 40
        },
        "end": {
          "line": 146,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5687,
      "end": 5688,
      "loc": {
        "start": {
          "line": 146,
          "column": 46
        },
        "end": {
          "line": 146,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5689,
      "end": 5690,
      "loc": {
        "start": {
          "line": 146,
          "column": 48
        },
        "end": {
          "line": 146,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 5690,
      "end": 5692,
      "loc": {
        "start": {
          "line": 146,
          "column": 49
        },
        "end": {
          "line": 146,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5692,
      "end": 5693,
      "loc": {
        "start": {
          "line": 146,
          "column": 51
        },
        "end": {
          "line": 146,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5694,
      "end": 5695,
      "loc": {
        "start": {
          "line": 146,
          "column": 53
        },
        "end": {
          "line": 146,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 5708,
      "end": 5711,
      "loc": {
        "start": {
          "line": 147,
          "column": 12
        },
        "end": {
          "line": 147,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 5712,
      "end": 5720,
      "loc": {
        "start": {
          "line": 147,
          "column": 16
        },
        "end": {
          "line": 147,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5721,
      "end": 5722,
      "loc": {
        "start": {
          "line": 147,
          "column": 25
        },
        "end": {
          "line": 147,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "DOMManager",
      "start": 5723,
      "end": 5733,
      "loc": {
        "start": {
          "line": 147,
          "column": 27
        },
        "end": {
          "line": 147,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5733,
      "end": 5734,
      "loc": {
        "start": {
          "line": 147,
          "column": 37
        },
        "end": {
          "line": 147,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "GL",
      "start": 5734,
      "end": 5736,
      "loc": {
        "start": {
          "line": 147,
          "column": 38
        },
        "end": {
          "line": 147,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5736,
      "end": 5737,
      "loc": {
        "start": {
          "line": 147,
          "column": 40
        },
        "end": {
          "line": 147,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getUniformLocation",
      "start": 5737,
      "end": 5755,
      "loc": {
        "start": {
          "line": 147,
          "column": 41
        },
        "end": {
          "line": 147,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5755,
      "end": 5756,
      "loc": {
        "start": {
          "line": 147,
          "column": 59
        },
        "end": {
          "line": 147,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 5756,
      "end": 5763,
      "loc": {
        "start": {
          "line": 147,
          "column": 60
        },
        "end": {
          "line": 147,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5763,
      "end": 5764,
      "loc": {
        "start": {
          "line": 147,
          "column": 67
        },
        "end": {
          "line": 147,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformKeys",
      "start": 5765,
      "end": 5776,
      "loc": {
        "start": {
          "line": 147,
          "column": 69
        },
        "end": {
          "line": 147,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5776,
      "end": 5777,
      "loc": {
        "start": {
          "line": 147,
          "column": 80
        },
        "end": {
          "line": 147,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5777,
      "end": 5778,
      "loc": {
        "start": {
          "line": 147,
          "column": 81
        },
        "end": {
          "line": 147,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5778,
      "end": 5779,
      "loc": {
        "start": {
          "line": 147,
          "column": 82
        },
        "end": {
          "line": 147,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5779,
      "end": 5780,
      "loc": {
        "start": {
          "line": 147,
          "column": 83
        },
        "end": {
          "line": 147,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5780,
      "end": 5781,
      "loc": {
        "start": {
          "line": 147,
          "column": 84
        },
        "end": {
          "line": 147,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformLocationSetters",
      "start": 5794,
      "end": 5816,
      "loc": {
        "start": {
          "line": 148,
          "column": 12
        },
        "end": {
          "line": 148,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5816,
      "end": 5817,
      "loc": {
        "start": {
          "line": 148,
          "column": 34
        },
        "end": {
          "line": 148,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformKeys",
      "start": 5817,
      "end": 5828,
      "loc": {
        "start": {
          "line": 148,
          "column": 35
        },
        "end": {
          "line": 148,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5828,
      "end": 5829,
      "loc": {
        "start": {
          "line": 148,
          "column": 46
        },
        "end": {
          "line": 148,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5829,
      "end": 5830,
      "loc": {
        "start": {
          "line": 148,
          "column": 47
        },
        "end": {
          "line": 148,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5830,
      "end": 5831,
      "loc": {
        "start": {
          "line": 148,
          "column": 48
        },
        "end": {
          "line": 148,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5831,
      "end": 5832,
      "loc": {
        "start": {
          "line": 148,
          "column": 49
        },
        "end": {
          "line": 148,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 5833,
      "end": 5834,
      "loc": {
        "start": {
          "line": 148,
          "column": 51
        },
        "end": {
          "line": 148,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 5835,
      "end": 5839,
      "loc": {
        "start": {
          "line": 148,
          "column": 53
        },
        "end": {
          "line": 148,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5839,
      "end": 5840,
      "loc": {
        "start": {
          "line": 148,
          "column": 57
        },
        "end": {
          "line": 148,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_getUniformSetterFromString",
      "start": 5840,
      "end": 5867,
      "loc": {
        "start": {
          "line": 148,
          "column": 58
        },
        "end": {
          "line": 148,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5867,
      "end": 5868,
      "loc": {
        "start": {
          "line": 148,
          "column": 85
        },
        "end": {
          "line": 148,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 5868,
      "end": 5876,
      "loc": {
        "start": {
          "line": 148,
          "column": 86
        },
        "end": {
          "line": 148,
          "column": 94
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5876,
      "end": 5877,
      "loc": {
        "start": {
          "line": 148,
          "column": 94
        },
        "end": {
          "line": 148,
          "column": 95
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniforms",
      "start": 5878,
      "end": 5886,
      "loc": {
        "start": {
          "line": 148,
          "column": 96
        },
        "end": {
          "line": 148,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5886,
      "end": 5887,
      "loc": {
        "start": {
          "line": 148,
          "column": 104
        },
        "end": {
          "line": 148,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformKeys",
      "start": 5887,
      "end": 5898,
      "loc": {
        "start": {
          "line": 148,
          "column": 105
        },
        "end": {
          "line": 148,
          "column": 116
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5898,
      "end": 5899,
      "loc": {
        "start": {
          "line": 148,
          "column": 116
        },
        "end": {
          "line": 148,
          "column": 117
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "i",
      "start": 5899,
      "end": 5900,
      "loc": {
        "start": {
          "line": 148,
          "column": 117
        },
        "end": {
          "line": 148,
          "column": 118
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5900,
      "end": 5901,
      "loc": {
        "start": {
          "line": 148,
          "column": 118
        },
        "end": {
          "line": 148,
          "column": 119
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5901,
      "end": 5902,
      "loc": {
        "start": {
          "line": 148,
          "column": 119
        },
        "end": {
          "line": 148,
          "column": 120
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5902,
      "end": 5903,
      "loc": {
        "start": {
          "line": 148,
          "column": 120
        },
        "end": {
          "line": 148,
          "column": 121
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5903,
      "end": 5904,
      "loc": {
        "start": {
          "line": 148,
          "column": 121
        },
        "end": {
          "line": 148,
          "column": 122
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5913,
      "end": 5914,
      "loc": {
        "start": {
          "line": 149,
          "column": 8
        },
        "end": {
          "line": 149,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 5923,
      "end": 5929,
      "loc": {
        "start": {
          "line": 150,
          "column": 8
        },
        "end": {
          "line": 150,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformLocationSetters",
      "start": 5930,
      "end": 5952,
      "loc": {
        "start": {
          "line": 150,
          "column": 15
        },
        "end": {
          "line": 150,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 5952,
      "end": 5953,
      "loc": {
        "start": {
          "line": 150,
          "column": 37
        },
        "end": {
          "line": 150,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5958,
      "end": 5959,
      "loc": {
        "start": {
          "line": 151,
          "column": 4
        },
        "end": {
          "line": 151,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_getUniformSetterFromString",
      "start": 5965,
      "end": 5992,
      "loc": {
        "start": {
          "line": 153,
          "column": 4
        },
        "end": {
          "line": 153,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 5992,
      "end": 5993,
      "loc": {
        "start": {
          "line": 153,
          "column": 31
        },
        "end": {
          "line": 153,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 5993,
      "end": 6001,
      "loc": {
        "start": {
          "line": 153,
          "column": 32
        },
        "end": {
          "line": 153,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6001,
      "end": 6002,
      "loc": {
        "start": {
          "line": 153,
          "column": 40
        },
        "end": {
          "line": 153,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 6003,
      "end": 6007,
      "loc": {
        "start": {
          "line": 153,
          "column": 42
        },
        "end": {
          "line": 153,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6007,
      "end": 6008,
      "loc": {
        "start": {
          "line": 153,
          "column": 46
        },
        "end": {
          "line": 153,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6009,
      "end": 6010,
      "loc": {
        "start": {
          "line": 153,
          "column": 48
        },
        "end": {
          "line": 153,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 6019,
      "end": 6025,
      "loc": {
        "start": {
          "line": 154,
          "column": 8
        },
        "end": {
          "line": 154,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6026,
      "end": 6027,
      "loc": {
        "start": {
          "line": 154,
          "column": 15
        },
        "end": {
          "line": 154,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform4fv",
      "start": 6040,
      "end": 6052,
      "loc": {
        "start": {
          "line": 155,
          "column": 12
        },
        "end": {
          "line": 155,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6052,
      "end": 6053,
      "loc": {
        "start": {
          "line": 155,
          "column": 24
        },
        "end": {
          "line": 155,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6054,
      "end": 6055,
      "loc": {
        "start": {
          "line": 155,
          "column": 26
        },
        "end": {
          "line": 155,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6055,
      "end": 6057,
      "loc": {
        "start": {
          "line": 155,
          "column": 27
        },
        "end": {
          "line": 155,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6057,
      "end": 6058,
      "loc": {
        "start": {
          "line": 155,
          "column": 29
        },
        "end": {
          "line": 155,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6059,
      "end": 6070,
      "loc": {
        "start": {
          "line": 155,
          "column": 31
        },
        "end": {
          "line": 155,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6070,
      "end": 6071,
      "loc": {
        "start": {
          "line": 155,
          "column": 42
        },
        "end": {
          "line": 155,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6072,
      "end": 6074,
      "loc": {
        "start": {
          "line": 155,
          "column": 44
        },
        "end": {
          "line": 155,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6075,
      "end": 6076,
      "loc": {
        "start": {
          "line": 155,
          "column": 47
        },
        "end": {
          "line": 155,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6077,
      "end": 6079,
      "loc": {
        "start": {
          "line": 155,
          "column": 49
        },
        "end": {
          "line": 155,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6079,
      "end": 6080,
      "loc": {
        "start": {
          "line": 155,
          "column": 51
        },
        "end": {
          "line": 155,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniform4fv",
      "start": 6080,
      "end": 6090,
      "loc": {
        "start": {
          "line": 155,
          "column": 52
        },
        "end": {
          "line": 155,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6090,
      "end": 6091,
      "loc": {
        "start": {
          "line": 155,
          "column": 62
        },
        "end": {
          "line": 155,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 6091,
      "end": 6099,
      "loc": {
        "start": {
          "line": 155,
          "column": 63
        },
        "end": {
          "line": 155,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6099,
      "end": 6100,
      "loc": {
        "start": {
          "line": 155,
          "column": 71
        },
        "end": {
          "line": 155,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6101,
      "end": 6112,
      "loc": {
        "start": {
          "line": 155,
          "column": 73
        },
        "end": {
          "line": 155,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6112,
      "end": 6113,
      "loc": {
        "start": {
          "line": 155,
          "column": 84
        },
        "end": {
          "line": 155,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6113,
      "end": 6114,
      "loc": {
        "start": {
          "line": 155,
          "column": 85
        },
        "end": {
          "line": 155,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6115,
      "end": 6116,
      "loc": {
        "start": {
          "line": 155,
          "column": 87
        },
        "end": {
          "line": 155,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6116,
      "end": 6117,
      "loc": {
        "start": {
          "line": 155,
          "column": 88
        },
        "end": {
          "line": 155,
          "column": 89
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniformMatrix3fv",
      "start": 6130,
      "end": 6148,
      "loc": {
        "start": {
          "line": 156,
          "column": 12
        },
        "end": {
          "line": 156,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6148,
      "end": 6149,
      "loc": {
        "start": {
          "line": 156,
          "column": 30
        },
        "end": {
          "line": 156,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6150,
      "end": 6151,
      "loc": {
        "start": {
          "line": 156,
          "column": 32
        },
        "end": {
          "line": 156,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6151,
      "end": 6153,
      "loc": {
        "start": {
          "line": 156,
          "column": 33
        },
        "end": {
          "line": 156,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6153,
      "end": 6154,
      "loc": {
        "start": {
          "line": 156,
          "column": 35
        },
        "end": {
          "line": 156,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6155,
      "end": 6166,
      "loc": {
        "start": {
          "line": 156,
          "column": 37
        },
        "end": {
          "line": 156,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6166,
      "end": 6167,
      "loc": {
        "start": {
          "line": 156,
          "column": 48
        },
        "end": {
          "line": 156,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6168,
      "end": 6170,
      "loc": {
        "start": {
          "line": 156,
          "column": 50
        },
        "end": {
          "line": 156,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6171,
      "end": 6172,
      "loc": {
        "start": {
          "line": 156,
          "column": 53
        },
        "end": {
          "line": 156,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6173,
      "end": 6175,
      "loc": {
        "start": {
          "line": 156,
          "column": 55
        },
        "end": {
          "line": 156,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6175,
      "end": 6176,
      "loc": {
        "start": {
          "line": 156,
          "column": 57
        },
        "end": {
          "line": 156,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformMatrix3fv",
      "start": 6176,
      "end": 6192,
      "loc": {
        "start": {
          "line": 156,
          "column": 58
        },
        "end": {
          "line": 156,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6192,
      "end": 6193,
      "loc": {
        "start": {
          "line": 156,
          "column": 74
        },
        "end": {
          "line": 156,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 6193,
      "end": 6201,
      "loc": {
        "start": {
          "line": 156,
          "column": 75
        },
        "end": {
          "line": 156,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6201,
      "end": 6202,
      "loc": {
        "start": {
          "line": 156,
          "column": 83
        },
        "end": {
          "line": 156,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 6203,
      "end": 6208,
      "loc": {
        "start": {
          "line": 156,
          "column": 85
        },
        "end": {
          "line": 156,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6208,
      "end": 6209,
      "loc": {
        "start": {
          "line": 156,
          "column": 90
        },
        "end": {
          "line": 156,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6210,
      "end": 6221,
      "loc": {
        "start": {
          "line": 156,
          "column": 92
        },
        "end": {
          "line": 156,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6221,
      "end": 6222,
      "loc": {
        "start": {
          "line": 156,
          "column": 103
        },
        "end": {
          "line": 156,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6222,
      "end": 6223,
      "loc": {
        "start": {
          "line": 156,
          "column": 104
        },
        "end": {
          "line": 156,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6224,
      "end": 6225,
      "loc": {
        "start": {
          "line": 156,
          "column": 106
        },
        "end": {
          "line": 156,
          "column": 107
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6225,
      "end": 6226,
      "loc": {
        "start": {
          "line": 156,
          "column": 107
        },
        "end": {
          "line": 156,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniformMatrix4fv",
      "start": 6239,
      "end": 6257,
      "loc": {
        "start": {
          "line": 157,
          "column": 12
        },
        "end": {
          "line": 157,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6257,
      "end": 6258,
      "loc": {
        "start": {
          "line": 157,
          "column": 30
        },
        "end": {
          "line": 157,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6259,
      "end": 6260,
      "loc": {
        "start": {
          "line": 157,
          "column": 32
        },
        "end": {
          "line": 157,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6260,
      "end": 6262,
      "loc": {
        "start": {
          "line": 157,
          "column": 33
        },
        "end": {
          "line": 157,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6262,
      "end": 6263,
      "loc": {
        "start": {
          "line": 157,
          "column": 35
        },
        "end": {
          "line": 157,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6264,
      "end": 6275,
      "loc": {
        "start": {
          "line": 157,
          "column": 37
        },
        "end": {
          "line": 157,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6275,
      "end": 6276,
      "loc": {
        "start": {
          "line": 157,
          "column": 48
        },
        "end": {
          "line": 157,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6277,
      "end": 6279,
      "loc": {
        "start": {
          "line": 157,
          "column": 50
        },
        "end": {
          "line": 157,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6280,
      "end": 6281,
      "loc": {
        "start": {
          "line": 157,
          "column": 53
        },
        "end": {
          "line": 157,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6282,
      "end": 6284,
      "loc": {
        "start": {
          "line": 157,
          "column": 55
        },
        "end": {
          "line": 157,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6284,
      "end": 6285,
      "loc": {
        "start": {
          "line": 157,
          "column": 57
        },
        "end": {
          "line": 157,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformMatrix4fv",
      "start": 6285,
      "end": 6301,
      "loc": {
        "start": {
          "line": 157,
          "column": 58
        },
        "end": {
          "line": 157,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6301,
      "end": 6302,
      "loc": {
        "start": {
          "line": 157,
          "column": 74
        },
        "end": {
          "line": 157,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 6302,
      "end": 6310,
      "loc": {
        "start": {
          "line": 157,
          "column": 75
        },
        "end": {
          "line": 157,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6310,
      "end": 6311,
      "loc": {
        "start": {
          "line": 157,
          "column": 83
        },
        "end": {
          "line": 157,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "false",
        "keyword": "false",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "false",
      "start": 6312,
      "end": 6317,
      "loc": {
        "start": {
          "line": 157,
          "column": 85
        },
        "end": {
          "line": 157,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6317,
      "end": 6318,
      "loc": {
        "start": {
          "line": 157,
          "column": 90
        },
        "end": {
          "line": 157,
          "column": 91
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6319,
      "end": 6330,
      "loc": {
        "start": {
          "line": 157,
          "column": 92
        },
        "end": {
          "line": 157,
          "column": 103
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6330,
      "end": 6331,
      "loc": {
        "start": {
          "line": 157,
          "column": 103
        },
        "end": {
          "line": 157,
          "column": 104
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6331,
      "end": 6332,
      "loc": {
        "start": {
          "line": 157,
          "column": 104
        },
        "end": {
          "line": 157,
          "column": 105
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6333,
      "end": 6334,
      "loc": {
        "start": {
          "line": 157,
          "column": 106
        },
        "end": {
          "line": 157,
          "column": 107
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6334,
      "end": 6335,
      "loc": {
        "start": {
          "line": 157,
          "column": 107
        },
        "end": {
          "line": 157,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1f",
      "start": 6348,
      "end": 6359,
      "loc": {
        "start": {
          "line": 158,
          "column": 12
        },
        "end": {
          "line": 158,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6359,
      "end": 6360,
      "loc": {
        "start": {
          "line": 158,
          "column": 23
        },
        "end": {
          "line": 158,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6361,
      "end": 6362,
      "loc": {
        "start": {
          "line": 158,
          "column": 25
        },
        "end": {
          "line": 158,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6362,
      "end": 6364,
      "loc": {
        "start": {
          "line": 158,
          "column": 26
        },
        "end": {
          "line": 158,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6364,
      "end": 6365,
      "loc": {
        "start": {
          "line": 158,
          "column": 28
        },
        "end": {
          "line": 158,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6366,
      "end": 6377,
      "loc": {
        "start": {
          "line": 158,
          "column": 30
        },
        "end": {
          "line": 158,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6377,
      "end": 6378,
      "loc": {
        "start": {
          "line": 158,
          "column": 41
        },
        "end": {
          "line": 158,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6379,
      "end": 6381,
      "loc": {
        "start": {
          "line": 158,
          "column": 43
        },
        "end": {
          "line": 158,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6382,
      "end": 6383,
      "loc": {
        "start": {
          "line": 158,
          "column": 46
        },
        "end": {
          "line": 158,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6384,
      "end": 6386,
      "loc": {
        "start": {
          "line": 158,
          "column": 48
        },
        "end": {
          "line": 158,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6386,
      "end": 6387,
      "loc": {
        "start": {
          "line": 158,
          "column": 50
        },
        "end": {
          "line": 158,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniform1f",
      "start": 6387,
      "end": 6396,
      "loc": {
        "start": {
          "line": 158,
          "column": 51
        },
        "end": {
          "line": 158,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6396,
      "end": 6397,
      "loc": {
        "start": {
          "line": 158,
          "column": 60
        },
        "end": {
          "line": 158,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 6397,
      "end": 6405,
      "loc": {
        "start": {
          "line": 158,
          "column": 61
        },
        "end": {
          "line": 158,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6405,
      "end": 6406,
      "loc": {
        "start": {
          "line": 158,
          "column": 69
        },
        "end": {
          "line": 158,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6407,
      "end": 6418,
      "loc": {
        "start": {
          "line": 158,
          "column": 71
        },
        "end": {
          "line": 158,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6418,
      "end": 6419,
      "loc": {
        "start": {
          "line": 158,
          "column": 82
        },
        "end": {
          "line": 158,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6419,
      "end": 6420,
      "loc": {
        "start": {
          "line": 158,
          "column": 83
        },
        "end": {
          "line": 158,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6421,
      "end": 6422,
      "loc": {
        "start": {
          "line": 158,
          "column": 85
        },
        "end": {
          "line": 158,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6422,
      "end": 6423,
      "loc": {
        "start": {
          "line": 158,
          "column": 86
        },
        "end": {
          "line": 158,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "uniform1i",
      "start": 6436,
      "end": 6447,
      "loc": {
        "start": {
          "line": 159,
          "column": 12
        },
        "end": {
          "line": 159,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6447,
      "end": 6448,
      "loc": {
        "start": {
          "line": 159,
          "column": 23
        },
        "end": {
          "line": 159,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6449,
      "end": 6450,
      "loc": {
        "start": {
          "line": 159,
          "column": 25
        },
        "end": {
          "line": 159,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6450,
      "end": 6452,
      "loc": {
        "start": {
          "line": 159,
          "column": 26
        },
        "end": {
          "line": 159,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6452,
      "end": 6453,
      "loc": {
        "start": {
          "line": 159,
          "column": 28
        },
        "end": {
          "line": 159,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6454,
      "end": 6465,
      "loc": {
        "start": {
          "line": 159,
          "column": 30
        },
        "end": {
          "line": 159,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6465,
      "end": 6466,
      "loc": {
        "start": {
          "line": 159,
          "column": 41
        },
        "end": {
          "line": 159,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "=>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6467,
      "end": 6469,
      "loc": {
        "start": {
          "line": 159,
          "column": 43
        },
        "end": {
          "line": 159,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6470,
      "end": 6471,
      "loc": {
        "start": {
          "line": 159,
          "column": 46
        },
        "end": {
          "line": 159,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gl",
      "start": 6472,
      "end": 6474,
      "loc": {
        "start": {
          "line": 159,
          "column": 48
        },
        "end": {
          "line": 159,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6474,
      "end": 6475,
      "loc": {
        "start": {
          "line": 159,
          "column": 50
        },
        "end": {
          "line": 159,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniform1i",
      "start": 6475,
      "end": 6484,
      "loc": {
        "start": {
          "line": 159,
          "column": 51
        },
        "end": {
          "line": 159,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6484,
      "end": 6485,
      "loc": {
        "start": {
          "line": 159,
          "column": 60
        },
        "end": {
          "line": 159,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "location",
      "start": 6485,
      "end": 6493,
      "loc": {
        "start": {
          "line": 159,
          "column": 61
        },
        "end": {
          "line": 159,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6493,
      "end": 6494,
      "loc": {
        "start": {
          "line": 159,
          "column": 69
        },
        "end": {
          "line": 159,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "uniformData",
      "start": 6495,
      "end": 6506,
      "loc": {
        "start": {
          "line": 159,
          "column": 71
        },
        "end": {
          "line": 159,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6506,
      "end": 6507,
      "loc": {
        "start": {
          "line": 159,
          "column": 82
        },
        "end": {
          "line": 159,
          "column": 83
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6507,
      "end": 6508,
      "loc": {
        "start": {
          "line": 159,
          "column": 83
        },
        "end": {
          "line": 159,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6509,
      "end": 6510,
      "loc": {
        "start": {
          "line": 159,
          "column": 85
        },
        "end": {
          "line": 159,
          "column": 86
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6510,
      "end": 6511,
      "loc": {
        "start": {
          "line": 159,
          "column": 86
        },
        "end": {
          "line": 159,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6520,
      "end": 6521,
      "loc": {
        "start": {
          "line": 160,
          "column": 8
        },
        "end": {
          "line": 160,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6521,
      "end": 6522,
      "loc": {
        "start": {
          "line": 160,
          "column": 9
        },
        "end": {
          "line": 160,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 6522,
      "end": 6526,
      "loc": {
        "start": {
          "line": 160,
          "column": 10
        },
        "end": {
          "line": 160,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6526,
      "end": 6527,
      "loc": {
        "start": {
          "line": 160,
          "column": 14
        },
        "end": {
          "line": 160,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6527,
      "end": 6528,
      "loc": {
        "start": {
          "line": 160,
          "column": 15
        },
        "end": {
          "line": 160,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6533,
      "end": 6534,
      "loc": {
        "start": {
          "line": 161,
          "column": 4
        },
        "end": {
          "line": 161,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6535,
      "end": 6536,
      "loc": {
        "start": {
          "line": 162,
          "column": 0
        },
        "end": {
          "line": 162,
          "column": 1
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n * Singleton reference to the WebGL Program Manager.\n ",
      "start": 6538,
      "end": 6598,
      "loc": {
        "start": {
          "line": 164,
          "column": 0
        },
        "end": {
          "line": 166,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 6599,
      "end": 6604,
      "loc": {
        "start": {
          "line": 167,
          "column": 0
        },
        "end": {
          "line": 167,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ProgramManager",
      "start": 6605,
      "end": 6619,
      "loc": {
        "start": {
          "line": 167,
          "column": 6
        },
        "end": {
          "line": 167,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 6620,
      "end": 6621,
      "loc": {
        "start": {
          "line": 167,
          "column": 21
        },
        "end": {
          "line": 167,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 6622,
      "end": 6625,
      "loc": {
        "start": {
          "line": 167,
          "column": 23
        },
        "end": {
          "line": 167,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "_ProgramManager",
      "start": 6626,
      "end": 6641,
      "loc": {
        "start": {
          "line": 167,
          "column": 27
        },
        "end": {
          "line": 167,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6641,
      "end": 6642,
      "loc": {
        "start": {
          "line": 167,
          "column": 42
        },
        "end": {
          "line": 167,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 6642,
      "end": 6643,
      "loc": {
        "start": {
          "line": 167,
          "column": 43
        },
        "end": {
          "line": 167,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6643,
      "end": 6644,
      "loc": {
        "start": {
          "line": 167,
          "column": 44
        },
        "end": {
          "line": 167,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 6645,
      "end": 6651,
      "loc": {
        "start": {
          "line": 168,
          "column": 0
        },
        "end": {
          "line": 168,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 6652,
      "end": 6659,
      "loc": {
        "start": {
          "line": 168,
          "column": 7
        },
        "end": {
          "line": 168,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ProgramManager",
      "start": 6660,
      "end": 6674,
      "loc": {
        "start": {
          "line": 168,
          "column": 15
        },
        "end": {
          "line": 168,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6674,
      "end": 6675,
      "loc": {
        "start": {
          "line": 168,
          "column": 29
        },
        "end": {
          "line": 168,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 6675,
      "end": 6675,
      "loc": {
        "start": {
          "line": 168,
          "column": 30
        },
        "end": {
          "line": 168,
          "column": 30
        }
      }
    }
  ]
}